
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.

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.
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.
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.
What can you do with it?2 ideas
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.
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
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"]}'One record
GET /geonetwork/srv/api/records/<uuid> with Accept: application/json returns the full ISO record.
Similar sources
data.overheid.nlAll kinds of government data, including much of the NGR; less detail on map layers and services.
data.europa.euThe 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
No key or account needed tested
records excluding templates (8,115 datasets, 1,074 services, 553 feature catalogues, 80 'GIS dataset', 19 series; 16 Oct 2026) tested
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.
Parameters 8
query | Elasticsearch query, e.g. {match: {resourceTitleObject.default: 'natura 2000'}} or {term: {resourceType: 'service'}}; isTemplate 'n' excludes templates. | tested |
_source | Return only these fields (uuid, resourceTitleObject.default, OrgForResourceObject.default, link, recordLink, featureTypes …). | tested |
size / sort / search_after | Paging: size 1000, sort [{uuid: 'asc'}] and the sort value of the last hit as search_after. | experience |
track_total_hits | true for the exact total in hits.total.value. | tested |
aggs | Count 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
| Name | Type | Meaning |
|---|---|---|
uuid | tekst | Vaste sleutel van het record (ook in data.overheid.nl in identifier) |
resourceType | lijst | dataset, service, featureCatalog, series, 'GIS dataset' |
resourceTitleObject.default | tekst | Titel |
resourceAbstractObject.default | tekst | Samenvatting |
OrgForResourceObject.default | tekst | Verantwoordelijke organisatie |
link | lijst | Online bronnen met protocol (OGC:WMS, OGC:WFS, OGC API, ATOM, download …) en urlObject.default |
recordLink | lijst | Koppelingen; bij diensten type 'datasets' met 'to' = uuid van de dataset |
featureTypes | lijst | Bij featurecatalogi: attributeTable met naam, type en definitie per veld |
licenseObject | lijst | Licentie of gebruiksbeperking (URI of tekst) |
dateStamp | datetime | Wijzigingsdatum van het record |
format | lijst | Formaat (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.
- Waterschappen Keringen IMWA WMS2026-10-31
- BAG Terugmeldingen WFS2026-10-31
- BRO - Grondwatermonitoring (GM) in samenhang - karakteristieken ATOM2026-10-31
- BRO - Grondwatermonitoring (GM) in samenhang - karakteristieken WMS2026-10-31
- Waterschappen Kunstwerken IMWA OGC API Features2026-10-31
- Terugmeldingen op luchtvaartobstakels (AERO) WFS2026-10-31
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


