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/