BYTETOOLS

data.overheid.nl API

Free Dutch government open data API with no key: 20,000+ datasets tagged with full EU DCAT-AP vocabulary URIs for language, access rights and authority. Tested example included.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the data.overheid.nl API?

data.overheid.nl is the Netherlands' national open data register, exposing a free, key-free CKAN API with more than 20,000 datasets. Its records are unusually strict about EU vocabularies: language, access rights and authority are all recorded as Publications Office URIs rather than free text.

Where most CKAN portals leave metadata as loose strings, the Dutch register commits to controlled vocabularies. `metadata_language` is a URI under `publications.europa.eu/resource/authority/language/`, `access_rights` points at the EU access-right authority list, and `authority` resolves into the Dutch OWMS terms register naming the exact body — `RDW_(Dienst_Wegverkeer)` for the vehicle authority, for instance. If you are building anything that has to reconcile datasets across EU member states, these URIs are worth far more than the human-readable names beside them.

One operational note. The `data.overheid.nl` certificate chain is rejected by some older trust stores, including Python installations without an up-to-date CA bundle, while browsers, curl and Node all accept it. If your client reports a self-signed certificate in the chain, the problem is your bundle, not the host. Also note the portal sends no CORS headers, so browser JavaScript needs a server-side proxy, and the `help` URL in every response leaks an internal hostname — ignore it and keep using the public one.

Quick facts

Base URL
https://data.overheid.nl/data/api/3/action
Authentication
No API key for reads. Publishing is restricted to registered Dutch public bodies.
Rate limit
No published limit. Reasonable paging expected.
Pricing
Free. CC0 and CC BY dominate; `license_title` is populated far more consistently than on most portals.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the data.overheid.nl API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Search Dutch government datasets

GET https://data.overheid.nl/data/api/3/action/package_search?rows=1

curl
curl 'https://data.overheid.nl/data/api/3/action/package_search?rows=1'
JavaScript (fetch)
const res = await fetch("https://data.overheid.nl/data/api/3/action/package_search?rows=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://data.overheid.nl/data/api/3/action/package_search?rows=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "help": "https://dataportal-ckan.koop-donl-prd.prod5.s15m.nl/api/3/action/help_show?name=package_search",
  "success": true,
  "result": {
    "count": 20381,
    "sort": "score desc, metadata_modified desc",
    "facets": {},
    "results": [
      {
        "dataset_status": "http://data.overheid.nl/status/beschikbaar",
        "maintainer": null,
        "referentie_data": "false",
        "contact_point_email": "woopublicaties@utrecht.nl",
        "authority": "http://standaarden.overheid.nl/owms/terms/Utrecht_(gemeente)",
        "maintainer_email": null,
        "num_tags": 7,
        "frequency": "http://publications.europa.eu/resource/authority/frequency/UNKNOWN",
        "metadata_language": "http://publications.europa.eu/resource/authority/language/NLD",
        "high_value": "true",
        "contact_point_name": "Woopublicaties",
        "metadata_created": "2026-04-28T11:34:54.017853",
        "metadata_modified": "2026-08-21T07:54:35.569326",
        "author": null,
        "author_email": null,
        "access_rights": "http://publications.europa.eu/resource/authority/access-right/PUBLIC",
        "id": "6d8a4fcd-cdb3-40b0-84c6-a74f3b5783fe",
        "theme": [
          "http://standaarden.overheid.nl/owms/terms/Bestuursrecht",
          "http://standaarden.overheid.nl/owms/terms/Gemeenten"
        ],
        "state": "active",
        "relationships_as_object": [],
        "license_id": "http://creativecommons.org/publicdomain/zero/1.0/deed.nl",
        "type": "dataset",
        "resources": [
          {
            "cache_last_updated": null,

Parameters

ParameterTypeRequiredDescription
qqueryOptionalFree-text Solr query in Dutch across titles, notes and tags. verkeer
rowsqueryOptionalDatasets per page. Defaults to 20. 1
startqueryOptionalPagination offset. 0
fqqueryOptionalFilter query. `high_value:true` narrows to EU high-value datasets. high_value:true
sortqueryOptionalSort order; the default is `score desc, metadata_modified desc`. metadata_modified desc

Response fields

successboolean
CKAN's own flag. Check it independently of the HTTP status.
result.countinteger
Total matching datasets — 20,381 unfiltered when tested.
results[].authoritystring
OWMS terms URI identifying the publishing body precisely, for example the RDW vehicle authority.
results[].metadata_languagestring
EU Publications Office language URI, not an ISO code — expect `.../language/NLD`.
results[].access_rightsstring
EU access-right URI; `.../access-right/PUBLIC` marks openly available data.
results[].high_valuestring
`"true"` or `"false"` as a string, not a boolean. Marks EU Open Data Directive high-value datasets.
results[].issuedstring
Original publication date, distinct from `metadata_created`.
results[].license_titlestring
Human licence label such as `CC-0 (1.0)`, reliably populated here.
results[].contact_point_namestring
Named contact team at the publishing body.

What you can build with the data.overheid.nl API

  • Filter Dutch datasets to those the EU classifies as high-value
  • Reconcile Dutch datasets against other EU catalogues using shared vocabulary URIs
  • Track a specific authority such as the RDW or CBS for new releases
  • Build a Dutch-language dataset discovery tool

Common errors and how to fix them

Self-signed certificate in certificate chain

An outdated CA bundle in your HTTP client, not a problem at the host.

Fix: Update your trust store, or use a client with a current bundle — browsers, curl and Node all accept this chain.

CORS error in the browser

No Access-Control-Allow-Origin header is sent.

Fix: Proxy the request through your own backend.

high_value comparison always false

The field is the string `"true"`, not a boolean.

Fix: Compare against the string, or coerce before testing.

HTTP 200 with success false

CKAN rejected your parameters.

Fix: Read `error.message` in the body.

data.overheid.nl API — frequently asked questions

Is the data.overheid.nl API free?

Yes. All read operations are free and key-free. Publishing is limited to registered Dutch public bodies.

Why do the fields contain URIs instead of plain values?

The register follows DCAT-AP and uses EU Publications Office authority lists for language, access rights and frequency. The URIs are stable identifiers you can join on across member-state catalogues, which plain strings never allow.

Why does my HTTP client reject the TLS certificate?

Some older CA bundles do not carry the intermediate this host serves. Browsers, curl and current Node accept it without complaint, so refresh your trust store rather than disabling verification.

What is a high-value dataset?

A category from the EU Open Data Directive covering geospatial, earth observation, meteorological, statistical, company and mobility data that member states must publish free and machine-readable. Filter with `fq=high_value:true`, remembering the value is a string.

Tools that pair with this API

data.overheid.nl is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.