EU Open Data Portal Datasets API
Search and retrieve EU open datasets
Search and retrieve EU open datasets
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/