← APIs / Dutch Open Data Register
Verified

Dutch Open Data Register

Apiosk Basicsby Apiosk Basics · General

Search the Dutch government's open-data register: 20,276 datasets from 33 publishers, with the publisher endpoints behind each one. Catalogue metadata, not data rows.

dataapi
Price per request
$0.05
About

Het Dataregister van de Nederlandse Overheid (DONL), the national index of Dutch government open data, published as a CKAN 2.8 API. Use it to find which official dataset answers a question and where its data actually lives: search 20,276 entries by keyword, publisher, theme or license, then read one entry in full to get its resources — the URLs, formats and access methods on the publisher's own host. Company-relevant clusters include the KVK Handelsregister open datasets (basis bedrijfsgegevens and jaarrekeningen), RDW's daily-updated register of accredited businesses and the vehicle base register, CBS insolvency and firm statistics, and thousands of municipal permit, subsidy and business-park datasets. READ THIS BEFORE BUYING: this is a catalogue and it returns NO data rows. The CKAN DataStore extension is absent from this install, verified — datastore_search returns HTTP 400 "Action name not known" — so every actual row lives on a third-party host that you call separately. Two parsing traps: the `format` field is an EU Publications Office URI, not a plain string, and `distribution_type` is a DONL URI, so split both on "/" and take the last segment; and 77% of resources declare no distribution type at all, while some resources labelled as downloads are in fact marketing pages. What this source buys you is server-side access (DONL sends no CORS headers, so browsers cannot call it directly), one described interface over the vocabularies, and a single place to find which of a hundred publisher hosts holds the data.

Base URL
https://gateway.apiosk.com/data-overheid-nl
Technical Specs
Auth Methodnone
Response FormatJSON
Endpoints3
Endpoints
MethodPathDescriptionCost
GET /data/api/3/action/organization_list List every organization publishing into the Dutch open-data register — 33 of them on 2026-09-08, returned as slugs. Use a slug to scope a package_search with q=organization:<slug>. The list is short and stable, so cache it. Publishers include centraal-bureau-voor-de-statistiek, cbs-microdata, de-nederlandsche-bank, dienst-uitvoering-onderwijs, data-overheid-nl and a long tail of municipalities. There is NO kamer_van_koophandel organization: the KVK datasets are carried under data-overheid-nl, so q=organization:kamer_van_koophandel returns count 0 and finds nothing. Pass all_fields=true for titles and descriptions instead of bare slugs; note that CKAN's organization objects can carry internal account metadata, so treat any extra fields as internal and do not pass them on.
$0.05 default
View details
GET /data/api/3/action/package_search Search the Dutch national open-data register — 20,276 datasets from 33 government publishers. Zoek in het Dataregister van de Nederlandse Overheid op trefwoord, publicerende organisatie, thema of licentie. Free-text search goes in `q` (Solr syntax, so field terms like organization:centraal-bureau-voor-de-statistiek work — call organization_list first, because a slug that does not exist returns success:true with count 0 rather than an error), structured filters go in `fq`. Returns the full catalogue record for each hit: title, notes, publisher, license_id, metadata_modified and the resources that say where the data actually lives. Real result counts on 2026-09-08: bedrijven 1332, werkgelegenheid 441, subsidie 249, ondernemingen 225, omzet 220, vergunning 141, jaarrekening 111, faillissement 42, KVK 23, handelsregister 19. TWO CAPS TO KNOW: `rows` is silently truncated to 1000 — asking for 2000 still returns success:true with 1000 rows — and this endpoint returns METADATA ONLY. No dataset rows are ever returned by this API; follow a hit through package_show to its publisher's own host.
$0.05 default
View details
GET /data/api/3/action/package_show Read one dataset record from the Dutch open-data register in full, by its `name` slug or id — and, most importantly, its `resources`: the list of places the actual data lives. This is the handoff endpoint, and it is where the catalogue's two traps bite. First, `format` is an EU Publications Office URI ("http://publications.europa.eu/resource/authority/file-type/CSV") and `distribution_type` is a DONL URI ("https://data.overheid.nl/distributiontype/download") — split each on "/" and take the last segment, because naive string matching fails on both. Second, the callable resource is rarely the first one: verified on 2026-09-08, kvk-handelsregister-open-dataset-jaarrekeningen has four resources of which the first three are an order page, the same order page again and a developer-portal page, and only the fourth — distribution_type webservice — is a real API at https://opendata.kvk.nl/api/v1/hvds/jaarrekeningen/kvknummer. Scan the whole array for distribution_type ending in webservice before concluding a dataset has no endpoint. Resources that ARE directly callable in this register include RDW's Socrata views (rewrite the export URL to /resource/<id>.json) and CBS's OData tables (the machine endpoint is often in `identifier` rather than in the resource url). Verify a resource before promising a buyer it returns data.
$0.05 default
View details
Endpoint documentation
GET/data/api/3/action/organization_list
$0.05 default
Description

List every organization publishing into the Dutch open-data register — 33 of them on 2026-09-08, returned as slugs. Use a slug to scope a package_search with q=organization:<slug>. The list is short and stable, so cache it. Publishers include centraal-bureau-voor-de-statistiek, cbs-microdata, de-nederlandsche-bank, dienst-uitvoering-onderwijs, data-overheid-nl and a long tail of municipalities. There is NO kamer_van_koophandel organization: the KVK datasets are carried under data-overheid-nl, so q=organization:kamer_van_koophandel returns count 0 and finds nothing. Pass all_fields=true for titles and descriptions instead of bare slugs; note that CKAN's organization objects can carry internal account metadata, so treat any extra fields as internal and do not pass them on.

Documentation

GET /data/api/3/action/organization_list — the 33 publishing organizations. Use a slug to scope package_search.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "all_fields": {
      "description": "Return full organization objects (title, description, package_count) instead of bare slugs.",
      "required": false,
      "type": "boolean",
      "x-parameter-location": "query"
    },
    "limit": {
      "description": "Maximum organizations to return.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    }
  },
  "type": "object"
}
Response schema
{
  "properties": {
    "result": {
      "items": {
        "description": "Organization slug, or a full object when all_fields=true.",
        "type": "string"
      },
      "type": "array"
    },
    "success": {
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{}
Example response
{
  "result": [
    "centraal-bureau-voor-de-statistiek-derden",
    "cbs-microdata",
    "centraal-bureau-voor-de-statistiek",
    "de-nederlandsche-bank",
    "data-overheid-nl",
    "dienst-uitvoering-onderwijs",
    "dataplatform",
    "gemeente-amsterdam",
    "gemeente-arnhem",
    "gemeente-assen"
  ],
  "success": true
}
GET/data/api/3/action/package_search
$0.05 default
Description

Search the Dutch national open-data register — 20,276 datasets from 33 government publishers. Zoek in het Dataregister van de Nederlandse Overheid op trefwoord, publicerende organisatie, thema of licentie. Free-text search goes in `q` (Solr syntax, so field terms like organization:centraal-bureau-voor-de-statistiek work — call organization_list first, because a slug that does not exist returns success:true with count 0 rather than an error), structured filters go in `fq`. Returns the full catalogue record for each hit: title, notes, publisher, license_id, metadata_modified and the resources that say where the data actually lives. Real result counts on 2026-09-08: bedrijven 1332, werkgelegenheid 441, subsidie 249, ondernemingen 225, omzet 220, vergunning 141, jaarrekening 111, faillissement 42, KVK 23, handelsregister 19. TWO CAPS TO KNOW: `rows` is silently truncated to 1000 — asking for 2000 still returns success:true with 1000 rows — and this endpoint returns METADATA ONLY. No dataset rows are ever returned by this API; follow a hit through package_show to its publisher's own host.

Documentation

GET /data/api/3/action/package_search — national open-data register search. rows is silently capped at 1000. Metadata only; no data rows.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "facet.field": {
      "description": "JSON array of fields to facet on, e.g. [\"organization\",\"res_format\"].",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "fq": {
      "description": "Solr filter query for structured narrowing, e.g. res_format:JSON or license_id:cc-zero.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "q": {
      "description": "Free-text or Solr query, e.g. jaarrekening, or organization:kamer_van_koophandel. Defaults to everything.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "rows": {
      "description": "Results per page. Default 20. Values above 1000 are SILENTLY truncated to 1000, with success:true.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    },
    "sort": {
      "description": "Sort expression, e.g. metadata_modified desc or score desc.",
      "required": false,
      "type": "string",
      "x-parameter-location": "query"
    },
    "start": {
      "description": "Offset into the result set, for paging.",
      "required": false,
      "type": "integer",
      "x-parameter-location": "query"
    }
  },
  "type": "object"
}
Response schema
{
  "properties": {
    "result": {
      "properties": {
        "count": {
          "description": "Total matching datasets.",
          "type": "integer"
        },
        "results": {
          "items": {
            "properties": {
              "id": {
                "type": "string"
              },
              "license_id": {
                "description": "Often a full URI rather than a short code.",
                "type": "string"
              },
              "metadata_modified": {
                "type": "string"
              },
              "name": {
                "description": "The slug to pass to package_show.",
                "type": "string"
              },
              "notes": {
                "type": "string"
              },
              "num_resources": {
                "type": "integer"
              },
              "organization": {
                "type": "object"
              },
              "resources": {
                "type": "array"
              },
              "title": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "search_facets": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "success": {
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "q": "jaarrekening",
  "rows": 1
}
Example response
{
  "result": {
    "count": 111,
    "results": [
      {
        "id": "975c8f7d-84fe-4f3c-bd59-4f703752b30a",
        "license_id": "http://creativecommons.org/licenses/by/4.0/deed.nl",
        "name": "kvk-handelsregister-open-dataset-jaarrekeningen",
        "num_resources": 4,
        "title": "KVK Handelsregister Open Dataset Jaarrekeningen"
      }
    ]
  },
  "success": true
}
GET/data/api/3/action/package_show
$0.05 default
Description

Read one dataset record from the Dutch open-data register in full, by its `name` slug or id — and, most importantly, its `resources`: the list of places the actual data lives. This is the handoff endpoint, and it is where the catalogue's two traps bite. First, `format` is an EU Publications Office URI ("http://publications.europa.eu/resource/authority/file-type/CSV") and `distribution_type` is a DONL URI ("https://data.overheid.nl/distributiontype/download") — split each on "/" and take the last segment, because naive string matching fails on both. Second, the callable resource is rarely the first one: verified on 2026-09-08, kvk-handelsregister-open-dataset-jaarrekeningen has four resources of which the first three are an order page, the same order page again and a developer-portal page, and only the fourth — distribution_type webservice — is a real API at https://opendata.kvk.nl/api/v1/hvds/jaarrekeningen/kvknummer. Scan the whole array for distribution_type ending in webservice before concluding a dataset has no endpoint. Resources that ARE directly callable in this register include RDW's Socrata views (rewrite the export URL to /resource/<id>.json) and CBS's OData tables (the machine endpoint is often in `identifier` rather than in the resource url). Verify a resource before promising a buyer it returns data.

Documentation

GET /data/api/3/action/package_show — one dataset record with its resources. format and distribution_type are URIs; resource urls are often landing pages.

Pricing
$0.05 default
Parameters
{
  "properties": {
    "id": {
      "description": "Dataset name slug (e.g. kvk-handelsregister-open-dataset-jaarrekeningen) or uuid, from package_search.",
      "required": true,
      "type": "string",
      "x-parameter-location": "query"
    }
  },
  "required": [
    "id"
  ],
  "type": "object"
}
Response schema
{
  "properties": {
    "result": {
      "properties": {
        "id": {
          "type": "string"
        },
        "license_id": {
          "type": "string"
        },
        "metadata_modified": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "notes": {
          "type": "string"
        },
        "num_resources": {
          "type": "integer"
        },
        "organization": {
          "type": "object"
        },
        "resources": {
          "items": {
            "properties": {
              "description": {
                "type": "string"
              },
              "distribution_type": {
                "description": "A DONL URI ending in download, webservice, documentation, visualization or dataschema. Empty on roughly 77% of resources.",
                "type": "string"
              },
              "format": {
                "description": "An EU Publications Office URI; take the last path segment for CSV/JSON/XML/WFS.",
                "type": "string"
              },
              "last_modified": {
                "type": "string"
              },
              "mimetype": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "url": {
                "description": "Frequently a landing or order page rather than a callable endpoint. Check before relying on it.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "title": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "success": {
      "type": "boolean"
    }
  },
  "type": "object"
}
Example request
{
  "id": "kvk-handelsregister-open-dataset-jaarrekeningen"
}
Example response
{
  "result": {
    "id": "975c8f7d-84fe-4f3c-bd59-4f703752b30a",
    "license_id": "http://creativecommons.org/licenses/by/4.0/deed.nl",
    "name": "kvk-handelsregister-open-dataset-jaarrekeningen",
    "num_resources": 4,
    "resources": [
      {
        "distribution_type": "https://data.overheid.nl/distributiontype/download",
        "format": "http://publications.europa.eu/resource/authority/file-type/XML",
        "name": "KVK Handelsregister Open Dataset Jaarrekeningen",
        "url": "https://www.kvk.nl/producten-bestellen/kvk-jaarrekeningen-open-data-set/"
      },
      {
        "distribution_type": "https://data.overheid.nl/distributiontype/documentation",
        "format": "http://publications.europa.eu/resource/authority/file-type/JSON",
        "name": "KVK Handelsregister Open Dataset Jaarrekeningen- API",
        "url": "https://developers.kvk.nl/nl/documentation/open-dataset-jaarrekeningen-api"
      },
      {
        "distribution_type": "https://data.overheid.nl/distributiontype/webservice",
        "format": "http://publications.europa.eu/resource/authority/file-type/JSON",
        "name": "KVK Handelsregister Open Dataset Jaarrekeningen- API",
        "url": "https://opendata.kvk.nl/api/v1/hvds/jaarrekeningen/kvknummer"
      }
    ],
    "title": "KVK Handelsregister Open Dataset Jaarrekeningen"
  },
  "success": true
}