EU Open Data Portal Registry API (hub-repo)

The piveau hub-repo registry service: the DCAT-AP write surface of data.europa.eu. Manages catalogues, DCAT resources (datasets, data services, dataset series), distributions, drafts, vocabularies, quality metrics and persistent identifiers in the Virtuoso triplestore, in RDF/XML, Turtle, JSON-LD, N-Triples, N-Quads, TriG, TriX and N3. Writes require a catalogue-scoped API key or an EU Login / service-account party token.

Operations 91

GET /organizations List organizations #
HEAD /organizations Headers only for "List organizations" #
GET /organizations/{organizationId} Get organization #
HEAD /organizations/{organizationId} Headers only for "Get organization" #
PUT /organizations/{organizationId} Create or update organization #
DELETE /organizations/{organizationId} Delete organization #
GET /catalogues List catalogues #
HEAD /catalogues Headers only for "List catalogues" #
GET /catalogues/{catalogueId} Get catalogue #
HEAD /catalogues/{catalogueId} Headers only for "Get catalogue" #
PUT /catalogues/{catalogueId} Create or update catalogue #
DELETE /catalogues/{catalogueId} Delete catalogue #
GET /catalogues/{catalogueId}/datasets List datasets of catalogue #
HEAD /catalogues/{catalogueId}/datasets Headers only for "List datasets of catalogue" #
POST /catalogues/{catalogueId}/datasets Add dataset to catalogue #
GET /catalogues/{catalogueId}/datasets/origin Get datasets of catalogue by means of an original id #
HEAD /catalogues/{catalogueId}/datasets/origin Headers only for "Get dataset of a catalogue by means of an original id" #
PUT /catalogues/{catalogueId}/datasets/origin Create or update dataset of catalogue by means of an original id #
DELETE /catalogues/{catalogueId}/datasets/origin Delete dataset of catalogue by means of an original id #
GET /catalogues/{catalogueId}/resources List DCAT resources of catalogue #
HEAD /catalogues/{catalogueId}/resources Headers only for "List DCAT resources of catalogue" #
POST /catalogues/{catalogueId}/resources Add a new DCAT resource to catalogue #
GET /catalogues/{catalogueId}/resources/origin Get DCAT resources of catalogue by means of an original id #
HEAD /catalogues/{catalogueId}/resources/origin Headers only for "Get DCAT resource of a catalogue by means of an original id" #
PUT /catalogues/{catalogueId}/resources/origin Create or update DCAT resource of catalogue by means of an original id #
DELETE /catalogues/{catalogueId}/resources/origin Delete DCAT resource of catalogue by means of an original id #
GET /resources #
HEAD /resources #
GET /resources/{resourceId} #
HEAD /resources/{resourceId} #
DELETE /resources/{resourceId} #
GET /resources/{resourceId}/record Get catalogue record #
HEAD /resources/{resourceId}/record Headers only for "Get catalogue record" #
GET /resources/{resourceId}/metrics Get DCAT resources metrics #
HEAD /resources/{resourceId}/metrics Headers only for "Get DCAT resource metrics" #
PUT /resources/{resourceId}/metrics Create/Update metrics for a dataset #
DELETE /resources/{resourceId}/metrics Delete DCAT resource metrics #
GET /datasets List datasets #
HEAD /datasets Headers only for "List datasets" #
POST /datasets Add dataset #
PUT /datasets Create or update dataset #
DELETE /datasets Delete a dataset #
GET /datasets/{datasetId} Get dataset #
HEAD /datasets/{datasetId} Headers only for "Get dataset" #
PUT /datasets/{datasetId} Update a Dataset #
DELETE /datasets/{datasetId} Delete a dataset #
GET /datasets/revisions/{revisionId} Get dataset revision #
GET /datasets/{datasetId}/diff Get difference between two revisions #
GET /datasets/{datasetId}/distributions List dataset distributions #
HEAD /datasets/{datasetId}/distributions Headers only for "List dataset distributions" #
POST /datasets/{datasetId}/distributions Add distribution to dataset #
GET /distributions/{distributionId} Get distribution #
HEAD /distributions/{distributionId} Headers only for "Get distribution" #
PUT /distributions/{distributionId} Update distribution #
DELETE /distributions/{distributionId} Delete distribution #
GET /datasets/{datasetId}/metrics Get dataset metrics #
HEAD /datasets/{datasetId}/metrics Headers only for "Get dataset metrics" #
PUT /datasets/{datasetId}/metrics Create/Update metrics for a dataset #
DELETE /datasets/{datasetId}/metrics Delete metrics #
GET /datasets/{datasetId}/record Get catalogue record #
HEAD /datasets/{datasetId}/record Headers only for "Get catalogue record" #
GET /records/revisionRecord/{revisionId} Get catalogue record of a dataset revision #
GET /records/{datasetId} Get catalogue record #
HEAD /records/{datasetId} Headers only for "Get catalogue record" #
GET /datasets/{datasetId}/index Index/Reindex a dataset #
GET /drafts/datasets Get dataset drafts #
POST /drafts/datasets Create a dataset draft #
GET /drafts/datasets/{id} Get a dataset draft #
PUT /drafts/datasets/{id} Create or Update a dataset draft #
DELETE /drafts/datasets/{id} Delete a dataset draft #
PUT /drafts/datasets/publish/{id} Publish a dataset draft #
PUT /drafts/datasets/hide/{id} Hide a published dataset #
GET /vocabularies Get list of vocabularies #
HEAD /vocabularies Head get list of vocabularies #
PUT /vocabularies Create or Update a vocabulary #
GET /vocabularies/{vocabularyId} Get a vocabulary #
HEAD /vocabularies/{vocabularyId} Head get a vocabulary #
PUT /vocabularies/{vocabularyId} Create or update a vocabulary #
DELETE /vocabularies/{vocabularyId} Delete a vocabulary #
POST /translation Post a completed translation. #
PUT /identifiers/datasets/{datasetId} Create a persistent identifier for a dataset #
GET /identifiers/datasets/{datasetId}/eligibility Check if an identifier can be issued for the given dataset. #
GET /customresources List custom resource types #
GET /customresources/{type} List custom resources #
POST /customresources/{type} Create a custom resource #
PUT /customresources/{type} Create or Update a custom resource #
GET /customresources/{type}/{id} Get a custom resource #
HEAD /customresources/{type}/{id} HEAD a custom resource #
DELETE /customresources/{type}/{id} Delete a custom resource #
GET /customresources/{type}/origin Get custom resource #
POST /action Call an Action #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/eu-open-data-portal-registry-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

eu-open-data-portal-hub-repo-openapi.yaml Raw ↑
openapi: 3.1.2
info:
  version: 4.3.3
  title: piveau hub-repo service
  description: 'The API simplifies the management of DCAT resources, adhering to the DCAT-AP standard
    for structured data descriptions.

    It integrates seamlessly with Virtuoso, an efficient database server and Triplestore, making dataset
    management more

    accessible. The DCAT-AP standard ensures consistent, comprehensive data descriptions, enhancing data
    sharing and

    discovery. The API simplifies the process of making datasets accessible to a wider audience. This
    promotes

    transparency, knowledge sharing, and collaboration. This introduction lays the groundwork for exploring
    the hub-repo

    Open API. Detailed information on authentication, API endpoints, error handling, and practical examples
    can be found

    in the subsequent sections to gain a comprehensive understanding of the API''s functionality.

    '
  x-logo:
    url: images/logo
tags:
- name: Organizations
  x-displayName: Organizations
- name: Catalogues
  x-displayName: Catalogues
- name: Datasets
  x-displayName: Datasets
  description: '**Deprecated !** Please use general DCAT Resources API instead

    '
- name: DCAT Resources
  x-displayName: DCAT Resources
  description: 'Manage DCAT resources and its sub-classes, except DCAT Catalogues.

    '
- name: Distributions
  x-displayName: Distributions
  description: '**Deprecated !** Will be removed completely in the future

    '
- name: Vocabularies
  x-displayName: Vocabularies
- name: Drafts
  x-displayName: Drafts
- name: Persistent Identifiers
  x-displayName: Persistent Identifiers
  description: 'Create persistent identifiers for data artifacts.

    '
- name: Custom Resources
  x-displayName: Custom Resources
  description: '**Deprecated !** Will be replaced with the generic DCAT resource API (endpoints will be
    reused). Any future custom resource

    definitions must be sub-classed from DCAT Resource.

    '
- name: Actions
  x-displayName: Action API
  description: 'The action API utilizes the [JSON-RPC 2.0](https://www.jsonrpc.org/specification) specification
    with the following constraints:


    * `id` reference needs to be a string

    * `params` are passed as object map, not as array list

    * `data` of an error is an object

    * Batch processing of actions is not yet supported


    Although a correlation identifier (`id`) is not necessary on top of HTTP, you should always include
    it to allow

    the server to distinguish between sync calls and notifications. Omit the `id` only in case of a notification.

    For notifications, the server will immediately respond with a `202 Accepted` without a body.

    '
paths:
  /organizations:
    get:
      summary: List organizations
      operationId: listOrganizations
      tags:
      - Organizations
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/RDFLIST200'
        '400':
          description: Bad Request
    head:
      summary: Headers only for "List organizations"
      operationId: headListOrganizations
      tags:
      - Organizations
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Headers of list organizations
        '400':
          description: Bad Request
  /organizations/{organizationId}:
    parameters:
    - $ref: '#/components/parameters/OrganizationId'
    get:
      summary: Get organization
      operationId: getOrganization
      tags:
      - Organizations
      responses:
        '200':
          $ref: '#/components/responses/RDF200'
        '404':
          description: Organization Not Found
    head:
      summary: Headers only for "Get organization"
      operationId: headGetOrganization
      tags:
      - Organizations
      responses:
        '200':
          description: Headers of get organization
        '404':
          description: Organization Not Found
    put:
      summary: Create or update organization
      operationId: putOrganization
      tags:
      - Organizations
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      requestBody:
        $ref: '#/components/requestBodies/RDFBody'
      responses:
        '201':
          description: Organization created
          headers:
            Location:
              $ref: '#/components/headers/LocationURIRef'
        '204':
          description: Organization updated
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    delete:
      summary: Delete organization
      operationId: deleteOrganization
      tags:
      - Organizations
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '204':
          description: Organization deleted
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Organization Not Found
  /catalogues:
    get:
      description: To retrieve the list of catalogues, send a GET request to the specified URL of the
        API with the resource path "catalogues". The query parameter "limit" specifies the number of resources
        to retrieve, while the query parameter "offset" determines the starting point for counting. Upon
        success, the response will contain, by default, an array with the URLs of the chosen number of
        catalogues (with 100 being the default limit). To retrieve identifiers (normalized IDs), metadata,
        or original IDs (IDs as by data provider) , you can choose a different value for the parameter
        "valueType".
      summary: List catalogues
      operationId: listCatalogues
      tags:
      - Catalogues
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/RDFLIST200'
        '400':
          description: Bad Request
    head:
      description: To retrieve only the headers for the list of catalogues, send a HEAD request to the
        specified URL of the API with the resource path "catalogues". The query parameter "limit" specifies
        the number of catalogues to retrieve, while the query parameter "offset" determines the starting
        point for counting. Upon success, the response will contain, by default, the headers for chosen
        number of catalogues' URLs (with 100 being the default limit). To retrieve the headers for the
        other data of catalogues select a different value for the parameter "valueType".
      summary: Headers only for "List catalogues"
      operationId: headListCatalogues
      tags:
      - Catalogues
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Headers of list catalogues
        '400':
          description: Bad request
  /catalogues/{catalogueId}:
    parameters:
    - $ref: '#/components/parameters/CatalogueId'
    get:
      description: You can get a catalogue making a GET request to the specified URL of the API endpoint
        with the resource path "catalogues/{catalogueId}" set the unique ID of the catalogue as {catalogueId}
        element of the URL. If successful, the response contains the information about the specified catalogue.
      summary: Get catalogue
      operationId: getCatalogue
      tags:
      - Catalogues
      responses:
        '200':
          $ref: '#/components/responses/RDF200'
        '404':
          description: Catalogue Not Found
    head:
      description: You can get only the headers for catalogue making a HEAD request to the specified URL
        of the API endpoint with the resource path "catalogues/{catalogueId}" set the unique ID of the
        catalogue as {catalogueId} element of the URL. If successful, the response contains the headers
        of the specified catalogue.
      summary: Headers only for "Get catalogue"
      operationId: headGetCatalogue
      tags:
      - Catalogues
      responses:
        '200':
          description: Headers of get catalogue
        '404':
          description: Catalogue Not Found
    put:
      description: This function is reserved for internal use only and is not part of our public API offerings.
        As an authorized user you can create or update the information of a specific catalog. Send a PUT
        request to the specified URL of the API endpoint, including the unique ID of the catalogue as
        {catalogueId} element of the URL and the updated information in the request. If the request is
        successful and the catalogueID already exists, the information in the catalogue will be updated
        with the newly provided information. If the catalogueID is new, a new catalogue will be created.
      summary: Create or update catalogue
      operationId: putCatalogue
      tags:
      - Catalogues
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      requestBody:
        $ref: '#/components/requestBodies/RDFBody'
      responses:
        '201':
          description: Catalogue created
          headers:
            Location:
              $ref: '#/components/headers/LocationURIRef'
        '204':
          description: Catalogue updated
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    delete:
      description: 'This function is reserved for internal use only and is not part of our public API
        offerings. As an authorized user you can delete a specific catalogue. Send a DELETE request to
        the specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}" at the
        end of URL, set the unique ID of the catalogue as {catalogueId} element of the URL. This operation
        deletes a catalogue''s metadata, as well as the metadata of all referenced datasets, from the
        repository and the index. It also removes any related quality measurements if they exist. Caution:
        you cannot revert this operation'
      summary: Delete catalogue
      operationId: deleteCatalogue
      tags:
      - Catalogues
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '204':
          description: Catalogue deleted
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Catalogue Not Found
  /catalogues/{catalogueId}/datasets:
    description: Deprecated!
    parameters:
    - $ref: '#/components/parameters/CatalogueId'
    get:
      deprecated: true
      description: To retrieve a list of datasets of a specific catalogue make a GET request to the specified
        URL of the API endpoint with the resource path "/catalogues/{catalogueId}/datasets" at the end
        of the URL, including the unique ID of the catalogue as {catalogueId} element of the URL. The
        query parameter "limit" specifies the number of datasets to retrieve, while the query parameter
        "offset" determines the starting point for counting. If the request is successful, by default,
        the response will contain an array with the URLs of the chosen number of datasets (with 100 being
        the default limit) from the specified catalogue. To retrieve other data of the datasets from the
        specified catalogue select a different value for the parameter "valueType".
      summary: List datasets of catalogue
      operationId: listCatalogueDatasets
      tags:
      - Datasets
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/RDFLIST200'
        '400':
          description: Bad Request
        '404':
          description: Catalogue Not Found
    head:
      deprecated: true
      description: To retrieve only the headers for the list of datasets from a specific catalogue, you
        can make a HEAD request to the specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}/datasets"
        at the end of the URL, including the unique ID of the catalogue as {catalogueId} element of the
        URL. The query parameter "limit" specifies the number of datasets to retrieve, while the query
        parameter "offset" determines the starting point for counting. If the request is successful, by
        default, the response will contain the headers for chosen number of datasets' URLs (with 100 being
        the default limit) from the specified catalogue. To retrieve the headers for other data of the
        datasets from the specified catalogue select a different value for the parameter "valueType".
      summary: Headers only for "List datasets of catalogue"
      operationId: headListCatalogueDatasets
      tags:
      - Datasets
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Headers of list dataset of catalogue
        '400':
          description: Bad Request
        '404':
          description: Catalogue Not Found
    post:
      deprecated: true
      description: This function is reserved for internal use only and is not part of our public API offerings.
        You must be authorized to add a dataset. As an authorized user, you make a POST request to the
        specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}/datasets"
        at the end of the URL and specify the unique ID of the catalogues as the {catalogueId} element
        of the URL.
      summary: Add dataset to catalogue
      operationId: postCatalogueDataset
      tags:
      - Datasets
      parameters:
      - in: query
        name: publicationStatus
        schema:
          type: string
          enum:
          - draft
          - published
        required: false
      - in: query
        name: accessLevel
        schema:
          type: string
          enum:
          - public
          - internal
          - restricted
        required: false
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      requestBody:
        $ref: '#/components/requestBodies/RDFBody'
      responses:
        '201':
          description: Dataset created
          headers:
            Location:
              $ref: '#/components/headers/LocationURIRef'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Catalogue Not Found
  /catalogues/{catalogueId}/datasets/origin:
    description: Deprecated!
    parameters:
    - $ref: '#/components/parameters/CatalogueId'
    - name: originalId
      required: true
      in: query
      description: The original id of the dataset
      schema:
        type: string
    get:
      deprecated: true
      description: To retrieve a specific dataset send a GET request to the specified URL of the API endpoint
        with the resource path "/catalogues/{catalogueId}/datasets/origin" at the end of the URL, set
        the unique ID of the catalogue as {catalogueId} element and the unique ID of the dataset as {origin}
        element of the URL.
      summary: Get datasets of catalogue by means of an original id
      operationId: getCatalogueDatasetsOrigin
      tags:
      - Datasets
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '200':
          $ref: '#/components/responses/RDF200'
        '400':
          description: Bad Request
        '404':
          description: Catalogue or Dataset Not Found
    head:
      deprecated: true
      description: To retrieve the headers for a specific dataset send a HEAD request to the specified
        URL of the API endpoint with the resource path "/catalogues/{catalogueId}/datasets/origin" at
        the end of the URL, set the unique ID of the catalogue as {catalogueId} element and the unique
        ID of the dataset as {origin} element of the URL.
      summary: Headers only for "Get dataset of a catalogue by means of an original id"
      operationId: headGetCatalogueDatasetsOrigin
      tags:
      - Datasets
      responses:
        '200':
          description: Headers of get dataset of catalogue by means of an original id
        '400':
          description: Bad Request
        '404':
          description: Catalogue or Dataset Not Found
    put:
      deprecated: true
      description: This function is reserved for internal use only and is not part of our public API offerings.
        You must be authorized to create or update a dataset. As an authorized user, you make a PUT request
        to the specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}/datasets/origin"
        at the end of the URL. Specify the unique ID of the catalogue, where the dataset is created, as
        the {catalogueId} and the unique ID of the dataset as the {origin} element of the URL accordingly.
        If the dataset with this ID already exists, it is updated.
      summary: Create or update dataset of catalogue by means of an original id
      operationId: putCatalogueDatasetsOrigin
      tags:
      - Datasets
      parameters:
      - in: query
        name: publicationStatus
        schema:
          type: string
          enum:
          - draft
          - published
        required: false
      - in: query
        name: accessLevel
        schema:
          type: string
          enum:
          - public
          - internal
          - restricted
        required: false
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      requestBody:
        $ref: '#/components/requestBodies/RDFBody'
      responses:
        '201':
          description: Dataset created
          headers:
            Location:
              $ref: '#/components/headers/LocationURIRef'
        '204':
          description: Dataset updated
        '304':
          description: Not modified, no update necessary
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Catalogue Not Found
    delete:
      deprecated: true
      description: 'This function is reserved for internal use only and is not part of our public API
        offerings. As an authorized user you can delete a dataset of a specific catalogue. Send a DELETE
        request to the specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}/datasets/origin".
        Specify the unique ID of the catalogue as the {catalogueId} and the unique ID of the dataset as
        the {origin} element of the URL accordingly. This operation deletes the specified dataset, as
        well as all referenced distributions, from the repository and the index. It also removes any related
        quality measurements if they exist. Caution: you cannot revert this operation'
      summary: Delete dataset of catalogue by means of an original id
      operationId: deleteCatalogueDatasetsOrigin
      tags:
      - Datasets
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '204':
          description: Dataset deleted
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Catalogue or Dataset Not Found
  /catalogues/{catalogueId}/resources:
    parameters:
    - $ref: '#/components/parameters/CatalogueId'
    get:
      description: To retrieve a list of DCAT resources of a specific catalogue make a GET request to
        the specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}/resources"
        at the end of the URL, including the unique ID of the catalogue as {catalogueId} element of the
        URL. The query parameter "limit" specifies the number of DCAT resources to retrieve, while the
        query parameter "offset" determines the starting point for counting. If the request is successful,
        by default, the response will contain an array with the URLs of the chosen number of DCAT resources
        (with 100 being the default limit) from the specified catalogue. To retrieve other data of the
        DCAT resources from the specified catalogue select a different value for the parameter "valueType".
      summary: List DCAT resources of catalogue
      operationId: listCatalogueResources
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - name: resourceTypes
        description: Return only values for specific DCAT resource types. If not provided or empty, all
          DCAT resource types are returned.
        in: query
        schema:
          type: array
          items:
            enum:
            - Dataset
            - DataService
            - DatasetSeries
      responses:
        '200':
          $ref: '#/components/responses/RDFLIST200'
        '400':
          description: Bad Request
        '404':
          description: Catalogue Not Found
    head:
      description: To retrieve only the headers for the list of DCAT resources from a specific catalogue,
        you can make a HEAD request to the specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}/resources"
        at the end of the URL, including the unique ID of the catalogue as {catalogueId} element of the
        URL. The query parameter "limit" specifies the number of DCAT resources to retrieve, while the
        query parameter "offset" determines the starting point for counting. If the request is successful,
        by default, the response will contain the headers for chosen number of DCAT resources URLs (with
        100 being the default limit) from the specified catalogue. To retrieve the headers for other data
        of the DCAT resources from the specified catalogue select a different value for the parameter
        "valueType".
      summary: Headers only for "List DCAT resources of catalogue"
      operationId: headListCatalogueResources
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - name: resourceTypes
        description: Return only values for specific DCAT resource types. If not provided or empty, all
          DCAT resource types are returned.
        in: query
        schema:
          type: array
          items:
            enum:
            - dataset
            - dataService
            - datasetSeries
            - other
      responses:
        '200':
          description: Headers of list DCAT resources of catalogue
        '400':
          description: Bad Request
        '404':
          description: Catalogue Not Found
    post:
      description: Create a new DCAT resource. For the final id check the LOCATION response header
      summary: Add a new DCAT resource to catalogue
      operationId: postCatalogueResources
      tags:
      - DCAT Resources
      parameters:
      - in: query
        name: resourceId
        description: If not exists in this catalogue, use this id as resource id. If it already exists,
          the service will assign it a generated new id.
        schema:
          type: string
        required: false
      - in: query
        name: publicationStatus
        schema:
          type: string
          enum:
          - draft
          - published
          default: published
        required: false
      - in: query
        name: accessLevel
        schema:
          type: string
          enum:
          - public
          - internal
          - restricted
          default: public
        required: false
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      requestBody:
        $ref: '#/components/requestBodies/RDFBody'
      responses:
        '201':
          description: DCAT Resource created
          headers:
            Location:
              $ref: '#/components/headers/LocationURIRef'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Catalogue Not Found
  /catalogues/{catalogueId}/resources/origin:
    parameters:
    - $ref: '#/components/parameters/CatalogueId'
    - name: originalId
      required: true
      in: query
      description: The original id of the DCAT resource
      schema:
        type: string
    get:
      description: To retrieve a specific dataset send a GET request to the specified URL of the API endpoint
        with the resource path "/catalogues/{catalogueId}/datasets/origin" at the end of the URL, set
        the unique ID of the catalogue as {catalogueId} element and the unique ID of the dataset as {origin}
        element of the URL.
      summary: Get DCAT resources of catalogue by means of an original id
      operationId: getCatalogueResourcesOrigin
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '200':
          $ref: '#/components/responses/RDF200'
        '400':
          description: Bad Request
        '404':
          description: Catalogue or DCAT Resource Not Found
    head:
      description: To retrieve the headers for a specific dataset send a HEAD request to the specified
        URL of the API endpoint with the resource path "/catalogues/{catalogueId}/resources/origin" at
        the end of the URL, set the unique ID of the catalogue as {catalogueId} element and the unique
        ID of the DCAT resource as {origin} element of the URL.
      summary: Headers only for "Get DCAT resource of a catalogue by means of an original id"
      operationId: headGetCatalogueResourcesOrigin
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '200':
          description: Headers of get resource of catalogue by means of an original id
        '400':
          description: Bad Request
        '404':
          description: Catalogue or DCAT Resource Not Found
    put:
      description: This function is reserved for internal use only and is not part of our public API offerings.
        You must be authorized to create or update a DCAT resource. As an authorized user, you make a
        PUT request to the specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}/resources/origin"
        at the end of the URL. Specify the unique ID of the catalogue, where the DCAT resource is created,
        as the {catalogueId} and the unique ID of the DCAT resource as the {origin} element of the URL
        accordingly. If the DCAT resource with this ID already exists, it is updated.
      summary: Create or update DCAT resource of catalogue by means of an original id
      operationId: putCatalogueResourcesOrigin
      tags:
      - DCAT Resources
      parameters:
      - in: query
        name: recordModified
        description: If set the DCAT resource is only updated when the server side is not newer
        schema:
          type: string
          format: date-time
        required: false
      - in: query
        name: enforceUpdate
        description: If set to true, the resource is updated, regardless of the hash comparison result
        schema:
          type: boolean
          default: false
        required: false
      - in: query
        name: publicationStatus
        schema:
          type: string
          enum:
          - draft
          - published
          default: published
        required: false
      - in: query
        name: accessLevel
        schema:
          type: string
          enum:
          - public
          - internal
          - restricted
          default: public
        required: false
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      requestBody:
        $ref: '#/components/requestBodies/RDFBody'
      responses:
        '201':
          description: DCAT resource created
          headers:
            Location:
              $ref: '#/components/headers/LocationURIRef'
        '204':
          description: DCAT resource updated
        '304':
          description: Not modified, no update necessary
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Catalogue Not Found
        '409':
          description: DCAT resource on server side is newer
    delete:
      description: 'This function is reserved for internal use only and is not part of our public API
        offerings. As an authorized user you can delete a DCAT resource of a specific catalogue. Send
        a DELETE request to the specified URL of the API endpoint with the resource path "/catalogues/{catalogueId}/resources/origin".
        Specify the unique ID of the catalogue as the {catalogueId} and the unique ID of the DCAT resource
        as the {origin} element of the URL accordingly. This operation deletes the specified DCAT resource
        from the repository and the index. It also removes any related quality measurements if they exist.
        Caution: you cannot revert this operation'
      summary: Delete DCAT resource of catalogue by means of an original id
      operationId: deleteCatalogueResourcesOrigin
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '204':
          description: DCAT resource deleted
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Catalogue or DCAT Resource Not Found
  /resources:
    get:
      operationId: listDCATResources
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/UsePagedCollection'
      responses:
        '200':
          $ref: '#/components/responses/RDFLIST200'
        '400':
          description: Bad Request
    head:
      operationId: headListDCATResources
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      parameters:
      - $ref: '#/components/parameters/ValueType'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/UsePagedCollection'
      responses:
        '200':
          $ref: '#/components/responses/RDFLIST200'
        '400':
          description: Bad Request
  /resources/{resourceId}:
    parameters:
    - $ref: '#/components/parameters/ResourceId'
    get:
      operationId: getDCATResource
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '200':
          $ref: '#/components/responses/RDF200'
        '400':
          description: Bad Request
        '404':
          description: Catalogue or DCAT Resource Not Found
    head:
      operationId: headGetDCATResource
      tags:
      - DCAT Resources
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      responses:
        '200':
          description: Headers of get dataset
        '400':
          description: Bad request
        '404':
          description: 

# --- truncated at 32 KB (100 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eu-open-data-portal/refs/heads/main/openapi/eu-open-data-portal-hub-repo-openapi.yaml