EU Open Data Portal Dataset (DCAT-AP)

JSON Schema for an EU Open Data Portal dataset following the DCAT-AP 2.1 metadata standard. Used for describing datasets published by EU institutions and member states.

GovernmentOpen DataSPARQLEURegulatoryLinked DataDCAT-APData QualityMetadataCatalogs

Properties

Name Type Description
id string Unique dataset URI identifier
title object Multilingual title (ISO 639-1 language code to string)
description object Multilingual description
issued string Date of formal issuance of the dataset
modified string Most recent date on which the dataset was changed
publisher object
contactPoint object
theme array Dataset themes from the EU Data Theme vocabulary (http://publications.europa.eu/resource/authority/data-theme/)
keyword array Free-text keywords describing the dataset
language array Language(s) of the dataset content (ISO 639-1)
spatial array Geographic coverage as URIs from EU country/place vocabulary
temporal object
accrualPeriodicity string Update frequency URI from EU frequency vocabulary
license string License under which the dataset is published
accessRights string Access rights classification
conformsTo array Standards or specifications the dataset conforms to
distributions array Available distributions (download files, API endpoints) for this dataset
View JSON Schema on GitHub

JSON Schema

eu-open-data-portal-dataset-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/eu-open-data-portal/json-schema/eu-open-data-portal-dataset-schema.json",
  "title": "EU Open Data Portal Dataset (DCAT-AP)",
  "description": "JSON Schema for an EU Open Data Portal dataset following the DCAT-AP 2.1 metadata standard. Used for describing datasets published by EU institutions and member states.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uri",
      "description": "Unique dataset URI identifier"
    },
    "title": {
      "type": "object",
      "additionalProperties": { "type": "string" },
      "description": "Multilingual title (ISO 639-1 language code to string)",
      "examples": [{ "en": "EU Budget 2023", "fr": "Budget UE 2023" }]
    },
    "description": {
      "type": "object",
      "additionalProperties": { "type": "string" },
      "description": "Multilingual description"
    },
    "issued": {
      "type": "string",
      "format": "date-time",
      "description": "Date of formal issuance of the dataset"
    },
    "modified": {
      "type": "string",
      "format": "date-time",
      "description": "Most recent date on which the dataset was changed"
    },
    "publisher": {
      "$ref": "#/$defs/Publisher"
    },
    "contactPoint": {
      "$ref": "#/$defs/ContactPoint"
    },
    "theme": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "description": "Dataset themes from the EU Data Theme vocabulary (http://publications.europa.eu/resource/authority/data-theme/)"
    },
    "keyword": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Free-text keywords describing the dataset"
    },
    "language": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Language(s) of the dataset content (ISO 639-1)"
    },
    "spatial": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "description": "Geographic coverage as URIs from EU country/place vocabulary"
    },
    "temporal": {
      "$ref": "#/$defs/TemporalCoverage"
    },
    "accrualPeriodicity": {
      "type": "string",
      "format": "uri",
      "description": "Update frequency URI from EU frequency vocabulary"
    },
    "license": {
      "type": "string",
      "format": "uri",
      "description": "License under which the dataset is published"
    },
    "accessRights": {
      "type": "string",
      "enum": ["PUBLIC", "RESTRICTED", "NON_PUBLIC"],
      "description": "Access rights classification"
    },
    "conformsTo": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "description": "Standards or specifications the dataset conforms to"
    },
    "distributions": {
      "type": "array",
      "items": { "$ref": "#/$defs/Distribution" },
      "description": "Available distributions (download files, API endpoints) for this dataset"
    }
  },
  "required": ["id", "title"],
  "$defs": {
    "Publisher": {
      "type": "object",
      "description": "Entity responsible for publishing the dataset",
      "properties": {
        "id": {
          "type": "string",
          "format": "uri",
          "description": "Publisher URI from the EU corporate body authority table"
        },
        "name": {
          "type": "object",
          "additionalProperties": { "type": "string" },
          "description": "Multilingual publisher name"
        },
        "type": {
          "type": "string",
          "description": "Publisher type URI"
        }
      },
      "required": ["id"]
    },
    "ContactPoint": {
      "type": "object",
      "description": "Contact information for the dataset (vCard-based)",
      "properties": {
        "fn": {
          "type": "string",
          "description": "Full name of the contact"
        },
        "hasEmail": {
          "type": "string",
          "description": "Email address (may be prefixed with 'mailto:')"
        },
        "hasURL": {
          "type": "string",
          "format": "uri",
          "description": "Contact web page URL"
        }
      }
    },
    "TemporalCoverage": {
      "type": "object",
      "description": "Temporal period covered by the dataset",
      "properties": {
        "startDate": {
          "type": "string",
          "format": "date",
          "description": "Start date of temporal coverage"
        },
        "endDate": {
          "type": "string",
          "format": "date",
          "description": "End date of temporal coverage (may be null for ongoing datasets)"
        }
      }
    },
    "Distribution": {
      "type": "object",
      "description": "A specific representation of a dataset (file download, API service, etc.)",
      "properties": {
        "id": {
          "type": "string",
          "format": "uri"
        },
        "title": {
          "type": "object",
          "additionalProperties": { "type": "string" }
        },
        "description": {
          "type": "object",
          "additionalProperties": { "type": "string" }
        },
        "accessURL": {
          "type": "string",
          "format": "uri",
          "description": "URL providing access to the distribution"
        },
        "downloadURL": {
          "type": "string",
          "format": "uri",
          "description": "Direct download URL for the distribution file"
        },
        "format": {
          "type": "string",
          "format": "uri",
          "description": "File format from EU file type vocabulary"
        },
        "mediaType": {
          "type": "string",
          "description": "IANA media type (e.g., 'text/csv', 'application/json')"
        },
        "byteSize": {
          "type": "integer",
          "minimum": 0,
          "description": "File size in bytes"
        },
        "issued": {
          "type": "string",
          "format": "date-time"
        },
        "modified": {
          "type": "string",
          "format": "date-time"
        },
        "license": {
          "type": "string",
          "format": "uri"
        },
        "conformsTo": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "required": ["accessURL"]
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/eu-open-data-portal-dataset"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.