303,525 datasets indexed1,419 publishers
Open Data IndexThe index of open data about the Netherlands
Sources›Earth observation

National Georegister

The register where Dutch government bodies describe their geodata: datasets, the WMS, WFS and OGC API services that serve them, and feature catalogues with the meaning of every field. Over 9,800 records from provinces, water boards, municipalities and national agencies. Run by PDOK.

Earth observationHousing and landOpenSearch serviceAPIMap layerNetherlands · varies
Up to date · updated 3 hours ago · checked 17:23
pdok.nl
Screenshot of pdok.nl

Everything that's in it9,768

All metadata records in the National Georegister, by organisation, fetched every night: datasets, services and feature catalogues. Every page lists the WMS, WFS or OGC API.

9,768in total
8,078datasets
1,040services
554updated in the past 30 days

Datasets in the National Georegister by organisation: most Rijkswaterstaat (2,257 datasets), then Provincie Drenthe and Provincie Zuid-Holland

Datasets in the National Georegister by organisation, October 2026, in datasets. Total: 8,094; the largest 12 of 190 categories are shown. Rijkswaterstaat is 28% of the total. Only records of type dataset, counted by the organisation named in the record (as spelled there). 216 datasets name no organisation.

Source: Nationaal Georegister (GeoNetwork, zoek-API: POST {"size":0,"track_total_hits":true,"query":{"term":{"resourceType":"dataset"}},"aggs":{"groep":{"terms":{"field":"OrgForResourceObject.default","size":12}},"n":{"cardinality":{"field":"OrgForResourceObject.default"}},"zonder":{"missing":{"field":"OrgForResourceObject.default"}}}}) · opgehaald 25 oktober 2026Open the table Single block

Records in the National Georegister by type: most datasets (8,094 records), then services (WMS, WFS …) and feature catalogues

Records in the National Georegister by type, October 2026, in records. Total: 9,835; the largest 5 of 5 categories are shown. Datasets is 82% of the total. 42 records name no type.

Source: Nationaal Georegister (GeoNetwork, zoek-API: POST {"size":0,"track_total_hits":true,"aggs":{"groep":{"terms":{"field":"resourceType","size":50}},"n":{"cardinality":{"field":"resourceType"}}}}) · opgehaald 25 oktober 2026Open the table Single block

What can you do with it?2 ideas

Getting started

Which map service belongs to a dataset?

A service record points to the datasets it serves. On our dataset pages those WMS, WFS and OGC API addresses are listed right away.

Advanced

What does this field mean?

Feature catalogues list, per layer, the fields with type and meaning. Useful when a WFS only has abbreviated field names.

How to process it2 steps

  1. Search through the API

    GeoNetwork 4 with an Elasticsearch query as POST. Always send Accept-Language: Node fetch sends '*' by default and GeoNetwork then returns a 400. Paginate on uuid with search_after.

    curl -X POST "https://www.nationaalgeoregister.nl/geonetwork/srv/api/search/records/_search" \
      -A "mijn-script/1.0 (mail@voorbeeld.nl)" -H "Accept-Language: nl" -H "Content-Type: application/json" \
      -d '{"size": 5, "query": {"match": {"resourceTitleObject.default": "natura 2000"}}, "_source": ["uuid", "resourceTitleObject.default"]}'
    
  2. One record

    GET /geonetwork/srv/api/records/<uuid> with Accept: application/json returns the full ISO record.

Similar sources

  • data.overheid.nl

    All kinds of government data, including much of the NGR; less detail on map layers and services.

  • data.europa.eu

    The European catalogue, which also harvests the NGR.

What to watch out for

  • Metadata dates are not always real

    Some records have a revision date in the future (2028, even 2098) or only a year and month. On our site only full dates up to today count.

  • Duplicated in data.overheid.nl

    data.overheid.nl harvests the NGR: over 7,700 records appear in both. The NGR uuid is in the CKAN identifier field.

  • Old services no longer exist

    Addresses on geodata.nationaalgeoregister.nl no longer exist (DNS). A service in an old record may be dead.

APIGeoNetwork 4 (Elasticsearch-zoek-API, JSON) en OGC CSW 2.0.2 · read 16 Oct 2026

StandardGeoNetwork 4 (Elasticsearch-zoek-API, JSON) en OGC CSW 2.0.2docs
Access no key

No key or account needed tested

Size9,831

records excluding templates (8,115 datasets, 1,074 services, 553 feature catalogues, 80 'GIS dataset', 19 series; 16 Oct 2026) tested

Formats

jsonxml

Base URL

https://www.nationaalgeoregister.nl/geonetwork/srv

Endpoints 7

  • POST/api/search/records/_searchSearch with an Elasticsearch query (JSON): query, size, sort, search_after, _source, aggs. Fast (~1 ms 'took').
  • GET/api/records/{uuid}One full ISO record; with Accept application/json as JSON (~30 kB), otherwise XML.
  • GET/api/records/{uuid}/formatters/xmlThe record as ISO 19139 XML.
  • GET/api/records/{uuid}/relatedLinked parts: online resources (links with protocol), services, datasets, feature catalogues, thumbnails; filter with type=…
  • GET/dut/csw?service=CSW&request=GetRecordsOGC CSW 2.0.2 search, with CQL_TEXT or FILTER; resultType hits or results; elementSetName brief/summary/full.
  • GET/dut/csw?service=CSW&request=GetRecordById&id={uuid}One record via CSW, in the chosen outputSchema (gmd, mdb, dcat, DCAT-AP-NL 3.0 …).
  • GET/dut/catalog.search#/metadata/{uuid}The record page for people (not an API).

Filtering tested

Elasticsearch Query DSL (match, term, bool, range, aggs) in the search API; CQL_TEXT or OGC Filter in CSW.

matchtermtermsboolrangeexistsLIKE

Parameters 8

queryElasticsearch query, e.g. {match: {resourceTitleObject.default: 'natura 2000'}} or {term: {resourceType: 'service'}}; isTemplate 'n' excludes templates.tested
_sourceReturn only these fields (uuid, resourceTitleObject.default, OrgForResourceObject.default, link, recordLink, featureTypes …).tested
size / sort / search_afterPaging: size 1000, sort [{uuid: 'asc'}] and the sort value of the last hit as search_after.experience
track_total_hitstrue for the exact total in hits.total.value.tested
aggsCount per field (terms on resourceType, format …) in the same call; size 0 for counts only.tested
constraint (CSW)E.g. AnyText LIKE '%natura%', with constraintLanguage=CQL_TEXT&constraint_language_version=1.1.0.tested
outputSchema (CSW)http://www.isotc211.org/2005/gmd (ISO), http://www.w3.org/ns/dcat#, https://docs.geostandaarden.nl/dcat/dcat-ap-nl30 and more.from the description
maxRecords / startPosition (CSW)Paging in CSW; nextRecord in the response.platform

Fields in the search index (_source) 11

NameTypeMeaning
uuidtekstVaste sleutel van het record (ook in data.overheid.nl in identifier)
resourceTypelijstdataset, service, featureCatalog, series, 'GIS dataset'
resourceTitleObject.defaulttekstTitel
resourceAbstractObject.defaulttekstSamenvatting
OrgForResourceObject.defaulttekstVerantwoordelijke organisatie
linklijstOnline bronnen met protocol (OGC:WMS, OGC:WFS, OGC API, ATOM, download …) en urlObject.default
recordLinklijstKoppelingen; bij diensten type 'datasets' met 'to' = uuid van de dataset
featureTypeslijstBij featurecatalogi: attributeTable met naam, type en definitie per veld
licenseObjectlijstLicentie of gebruiksbeperking (URI of tekst)
dateStampdatetimeWijzigingsdatum van het record
formatlijstFormaat (SDE Feature Class, Shapefile, GeoPackage …; soms met regeleinden eromheen)

Limits and pitfalls

  • No key and no documented limit. Page with search_after (size 1000); the whole catalogue is ~10 pages and ~15 s. experience
  • The search API requires the headers Accept: application/json and a real language in Accept-Language (nl). Without Accept or with 'Accept-Language: *' (the Node fetch default) you get HTTP 400; GET /api/records/{uuid} even returns 500. curl does not have this problem. tested
  • Our sample call below is therefore the CSW (GET, XML), which doesn't need these headers. For the JSON search API see the curl example under 'Searching via the API'. tested
  • Format values are not clean: 'NetCDF' also appears wrapped in line breaks and spaces. Trim and collapse whitespace before counting. tested
  • Dates in records are not always real: revision dates in the future (2028, 2098) or only year and month. Services on geodata.nationaalgeoregister.nl no longer exist (DNS). experience
  • data.overheid.nl harvests the NGR (~7,750 records): the NGR uuid is in identifier there (…geonetwork?uuid=…). Use it to link duplicates. experience
  • No robots.txt (404). /api/site, /api/sources and /api/doc returned 500; /v2/api-docs redirects to the sign-in page. tested

Try it HTTP 200 · 490 ms · 16 Oct

https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?service=CSW&version=2.0.2&request=GetRecords&typeNames=csw:Record&resultType=results&elementSetName=brief&maxRecords=3&constraintLanguage=CQL_TEXT&constraint_language_version=1.1.0&constraint=AnyText LIKE '%natura%'
<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecordsResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">
  <csw:SearchStatus timestamp="2026-10-16T21:58:34.962417Z" />
  <csw:SearchResults numberOfRecordsMatched="239" numberOfRecordsReturned="3" elementSet="brief" nextRecord="4">
    <csw:BriefRecord xmlns:ows="http://www.opengis.net/ows" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:dc="http://purl.org/dc/elements/1.1/">
      <dc:identifier>6d91fa61-1fe7-544a-8191-8dbd44cb3267</dc:identifier>
      <dc:title>Habitattypen T1 Natura 2000 (versie januari 2025) (historie)</dc:title>
      <dc:type>GIS dataset</dc:type>
      <ows:BoundingBox crs="urn:ogc:def:crs:EPSG:6.6:4326">
        <ows:LowerCorner>52.4437 5.9726</ows:LowerCorner>
        <ows:UpperCorner>53.3684 7.4985</ows:UpperCorner>
      </ows:BoundingBox>
    </csw:BriefRecord>
    <csw:BriefRecord xmlns:ows="http://www.opengis.net/ows" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:dc="http://purl.org/dc/elements/1.1/">
      <

Shortened response, saved at harvest time. Click the URL for the real, current response.

Read from GeoNetwork: the search API (Elasticsearch query as POST) · CSW GetCapabilities: operations, output schemas (ISO 19139, ISO 19115-3, DCAT, DCAT-AP-NL 3.0) and filter languages. Labels: from the description stated in what the api itself publishes. tested from our own small call. platform applies to every api on this platform, per its documentation. experience learned while building open data index.

More from PDOK in our index

794 datasets in Nationaal Georegister, data.overheid.nl. These changed most recently.

All about PDOK

More in this topic

See how this page is built
bron: nationaal-georegister
blokken: []
secties:
  - ideeen
  - verwerken
  - koppelingen
  - vergelijkbaar
  - beperkingen
cache:
  tag: bron:nationaal-georegister
  ververs: na statuscheck, als de bron nieuwer is
statuscheck:
  methode: "Elasticsearch-zoekvraag op GeoNetwork: aantal records en de nieuwste
    dateStamp tot vandaag (sommige records hebben een datum in de toekomst)."
  verwacht: dagelijks

Source: content/bronnen/nationaal-georegister.yaml · Markdown