EU Open Data Portal Datasets API

Search and retrieve EU open datasets

OpenAPI Specification

eu-open-data-portal-datasets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: EU Open Data Portal Search Catalogs Datasets API
  description: The EU Open Data Portal Search API (data.europa.eu) provides REST access for discovering, searching, and querying European Union open datasets. The API follows DCAT-AP metadata standards and supports discovery of datasets from EU institutions, member state portals, and federated open data sources. No authentication required.
  version: 1.0.0
  contact:
    name: EU Open Data Portal Support
    url: https://data.europa.eu/en/contact
  license:
    name: Creative Commons Attribution 4.0
    url: https://creativecommons.org/licenses/by/4.0/
servers:
- url: https://data.europa.eu/api/hub/search
  description: EU Open Data Portal Search API
tags:
- name: Datasets
  description: Search and retrieve EU open datasets
paths:
  /datasets:
    get:
      operationId: searchDatasets
      summary: Search datasets
      description: Search for datasets in the EU Open Data Portal using full-text search and faceted filtering. Returns DCAT-AP compliant metadata for matching datasets including titles, descriptions, keywords, publishers, and distribution links.
      tags:
      - Datasets
      parameters:
      - name: q
        in: query
        required: false
        schema:
          type: string
        description: Free-text search query
      - name: page
        in: query
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Page number (1-based)
      - name: limit
        in: query
        schema:
          type: integer
          default: 10
          maximum: 100
        description: Number of results per page
      - name: filter
        in: query
        schema:
          type: string
        description: SOLR filter query (e.g., "publisher.id:http://publications.europa.eu/resource/authority/corporate-body/ESTAT")
      - name: facets
        in: query
        schema:
          type: string
        description: Comma-separated list of facet fields to include
      - name: sort
        in: query
        schema:
          type: string
          enum:
          - relevance
          - modified
          - issued
          - title
          default: relevance
      - name: language
        in: query
        schema:
          type: string
        description: Preferred language for multilingual fields (ISO 639-1, e.g. "en")
      responses:
        '200':
          description: Dataset search results returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatasetSearchResponse'
        '400':
          description: Invalid query parameters
  /datasets/{datasetId}:
    get:
      operationId: getDataset
      summary: Get dataset by ID
      description: Returns full DCAT-AP metadata for a specific dataset including all distributions, publisher information, themes, and temporal coverage.
      tags:
      - Datasets
      parameters:
      - name: datasetId
        in: path
        required: true
        schema:
          type: string
        description: Unique dataset identifier (URL-encoded URI)
      - name: language
        in: query
        schema:
          type: string
        description: Preferred language for multilingual fields
      responses:
        '200':
          description: Dataset metadata returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '404':
          description: Dataset not found
components:
  schemas:
    FacetValue:
      type: object
      properties:
        id:
          type: string
        label:
          type: object
          additionalProperties:
            type: string
        count:
          type: integer
    Publisher:
      type: object
      properties:
        id:
          type: string
          description: Publisher URI from the EU corporate body authority
        name:
          type: object
          additionalProperties:
            type: string
          description: Multilingual publisher name
        type:
          type: string
    TemporalCoverage:
      type: object
      properties:
        startDate:
          type: string
          format: date
        endDate:
          type: string
          format: date
    DatasetSummary:
      type: object
      properties:
        id:
          type: string
          description: Dataset URI
        title:
          type: object
          additionalProperties:
            type: string
          description: Multilingual title map (language code to text)
        description:
          type: object
          additionalProperties:
            type: string
          description: Multilingual description map
        issued:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
        publisher:
          $ref: '#/components/schemas/Publisher'
        theme:
          type: array
          items:
            type: string
          description: Dataset theme URIs from the EU Data Theme vocabulary
        keyword:
          type: array
          items:
            type: string
        distributionCount:
          type: integer
        license:
          type: string
    Dataset:
      type: object
      properties:
        id:
          type: string
        title:
          type: object
          additionalProperties:
            type: string
        description:
          type: object
          additionalProperties:
            type: string
        issued:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
        publisher:
          $ref: '#/components/schemas/Publisher'
        contactPoint:
          $ref: '#/components/schemas/ContactPoint'
        theme:
          type: array
          items:
            type: string
        keyword:
          type: array
          items:
            type: string
        language:
          type: array
          items:
            type: string
        spatial:
          type: array
          items:
            type: string
          description: Geographic coverage URIs
        temporal:
          $ref: '#/components/schemas/TemporalCoverage'
        accrualPeriodicity:
          type: string
          description: Update frequency URI (from EU frequency vocabulary)
        conformsTo:
          type: array
          items:
            type: string
        distributions:
          type: array
          items:
            $ref: '#/components/schemas/Distribution'
        license:
          type: string
        rights:
          type: string
        accessRights:
          type: string
    Distribution:
      type: object
      properties:
        id:
          type: string
        title:
          type: object
          additionalProperties:
            type: string
        description:
          type: object
          additionalProperties:
            type: string
        accessURL:
          type: string
          format: uri
        downloadURL:
          type: string
          format: uri
        format:
          type: string
          description: File format URI from the EU file type vocabulary
        mediaType:
          type: string
          description: MIME type
        byteSize:
          type: integer
        issued:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
        license:
          type: string
        conformsTo:
          type: array
          items:
            type: string
    DatasetSearchResponse:
      type: object
      properties:
        success:
          type: boolean
        result:
          type: object
          properties:
            count:
              type: integer
              description: Total number of matching datasets
            facets:
              type: object
              additionalProperties:
                type: array
                items:
                  $ref: '#/components/schemas/FacetValue'
            results:
              type: array
              items:
                $ref: '#/components/schemas/DatasetSummary'
    ContactPoint:
      type: object
      properties:
        fn:
          type: string
        hasEmail:
          type: string
        hasURL:
          type: string
          format: uri
externalDocs:
  description: EU Data Provider Manual
  url: https://dataeuropa.gitlab.io/data-provider-manual/