Basisregistratie Ondergrond (BRO)
De landelijke registratie van wat er onder de grond zit en gemeten wordt: sonderingen, geologische, bodemkundige en geotechnische boringen, grondwatermonitoringputten met hun meetreeksen (soms vanaf de jaren 1950), grondwatersamenstelling, onttrekkingen en mijnbouwvergunningen. Bestuursorganen moeten hun onderzoek hier laten registreren; TNO beheert de landelijke voorziening namens het ministerie van BZK. Veertien REST-diensten op publiek.broservices.nl, elk met een OpenAPI-beschrijving, plus een kopie op PDOK. Op 16 oktober 2026 stonden er 97.768 grondwatermonitoringputten in.

Grondwatermonitoringputten in de BRO naar bouwjaar: 2.786 putten in 2025, 2,2 keer zo veel als in 1990
Grondwatermonitoringputten in de BRO naar bouwjaar, 1990 – 2025, in putten. Het hoogste punt was 2022 (3.698).
Wat je ermee kunt bouwen1
Wat kun je ermee?4 ideeën
Hoe hoog staat het grondwater onder je huis?
Zoek de dichtstbijzijnde grondwaterput, haal de grondwaterstandreeks op als CSV en maak er een grafiek van. Put GMW000000004076 heeft metingen vanaf 1956.
Wat zit er onder de bouwplek?
Binnen 3 kilometer van het centrum van Utrecht zijn sinds 1 januari 2025 52 sonderingen en 59 grondwaterputten geregistreerd. Elke sondering laat de lagen tot tientallen meters diep zien.
Droogte in de reeksen
Vergelijk de grondwaterstand in de zomers van 2018, 2022 en 2025 met het langjarig gemiddelde van dezelfde put. Leg de neerslag van het KNMI ernaast.
Wie pompt er grondwater op?
Grondwatergebruiksystemen (GUF) en productiedossiers (GPD) beschrijven onttrekkingen en hoeveel er per periode is opgepompt.
Zo verwerk je het4 stappen
Zoeken in een gebied
Per objecttype een POST naar characteristics/searches met een JSON-body: gebied (cirkel in km of rechthoek) en registratieperiode. Het antwoord is XML met numberOfDocuments en per object de kengegevens. Meer dan 2.000 objecten wordt geweigerd: maak het gebied of de periode kleiner.
curl -X POST -H 'Content-Type: application/json' \ -d '{"registrationPeriod":{"beginDate":"2025-01-01","endDate":"2026-10-15"},"area":{"enclosingCircle":{"center":{"lat":52.0907,"lon":5.1214},"radius":3}}}' \ https://publiek.broservices.nl/sr/cpt/v1/characteristics/searchesVan put naar meetreeks
gmw-relations geeft bij een put de buizen en de bijbehorende grondwaterstandonderzoeken (GLD). seriesAsCsv geeft de reeks; de tijd staat in epoch-milliseconden en er is een kolom per kwaliteitsregime (voorlopig, beoordeeld, controle, onbekend).
https://publiek.broservices.nl/gm/gld/v1/seriesAsCsv/GLD000000002796
De OpenAPI per dienst
Elke dienst heeft zijn beschrijving op <basis>/openapi (OpenAPI 3.1, als YAML) en een Swagger-pagina op <basis>/swagger-ui. Paden: /gm/{frd,gar,gld,gmn,gmw}/v1, /sr/bhrp/v2, /sr/bhrg/v3, /sr/bhrgt/v2, /sr/cpt/v1, /sr/sfr/v2, /gu/{gpd,guf}/v1, /ep/{epc,epl}/v1.
https://publiek.broservices.nl/gm/gld/v1/openapi
Alle putten in één keer (PDOK)
Voor overzichten is de PDOK-kopie handiger: OGC API met putten, buizen, meetnetten en onderzoeken, in GeoJSON, 1.000 per pagina (98 pagina's voor alle putten). Elk object linkt naar de XML en de CSV-reeksen op publiek.broservices.nl.
https://api.pdok.nl/tno/bro-grondwatermonitoring-in-samenhang-karakteristieken/ogc/v1/collections/gm_gld/items?f=json&limit=10
Interessante koppelingen


Hoe snel reageert het grondwater op regen?
Zet de grondwaterstand van een put naast de dagelijkse neerslag van het dichtstbijzijnde KNMI-station en kijk hoeveel dagen het duurt voor de stand stijgt.


Hoe diep staat het grondwater onder maaiveld?
De BRO geeft de stand ten opzichte van NAP. Trek die af van de maaiveldhoogte uit het AHN op de plek van de put.
Vergelijkbare bronnen
BodemloketBodemverontreiniging en saneringen per locatie; de BRO gaat over de opbouw van de ondergrond en het grondwater.
Actueel Hoogtebestand Nederland (AHN)De hoogte van het maaiveld; de BRO beschrijft wat eronder zit.
- DDINOloket (TNO) nog niet uitgelegd
Het oudere TNO-archief met boringen en grondwatergegevens van voor de BRO; veel daarvan is naar de BRO overgezet.
Waar je op moet letten
- Maximaal 2.000 objecten per zoekvraag
Volgens de koppelvlakbeschrijving beperkt de BRO de lijst softwarematig tot 2.000 documenten; daarboven geeft de dienst een weigering ("Het aantal objecten is groter dan 2000"). Voor heel Nederland in één jaar moet je in stukken zoeken, of de PDOK-kopie gebruiken.
- XML en POST
Zoeken gaat alleen via POST met een JSON-body, en de antwoorden zijn XML in het BRO-model. Alleen de reeksen zijn er als CSV.
- Geen totalen
De REST-diensten geven geen landelijke aantallen, en de lijst met bro-ids vraagt het KvK-nummer van een bronhouder. Voor tellingen de PDOK-kopie helemaal ophalen.
- Oud en nieuw door elkaar
Putten van voor de BRO zijn overgezet uit oudere archieven (kwaliteitsregime IMBRO/A, 72.798 van de 97.768 putten); die zijn minder volledig dan nieuwe registraties (IMBRO). 11.985 putten zijn inmiddels verwijderd maar staan er nog in.
APIREST (OpenAPI 3.1 als YAML; zoeken met POST + JSON, antwoord XML of CSV) · gelezen 16 okt 2026
Geen sleutel of account nodig getest
grondwatermonitoringputten (PDOK-kopie, 16 okt 2026; 11.985 daarvan verwijderd) getest
xmlcsvjson
Basisadres
https://publiek.broservices.nl
Endpoints 13
- POST
/{domein}/{type}/{versie}/characteristics/searchesZoeken in een gebied (cirkel in km of rechthoek in WGS84) en periode; antwoord XML met numberOfDocuments en kengegevens per object. Voor gmw, cpt, bhrp, bhrg, bhrgt, sfr, guf, epc, epl (niet voor gld, gar, gmn, frd, gpd). - GET
/{domein}/{type}/{versie}/objects/{broId}Eén registratieobject volledig, als XML in het BRO-model (fullHistory=ja bij putten en vergunningen). - GET
/{domein}/{type}/{versie}/bro-ids?bronhouder={kvk}Alle bro-ids van één bronhouder (KvK-nummer verplicht); registered=ja|nee. - GET
/gm/v1/gmw-relations/{broId}Bij een put: de buizen en de grondwaterstand- (GLD), samenstellings- (GAR) en meetnetverwijzingen (GMN), als JSON. - GET
/gm/v1/gmn-relations/{broId}Bij een meetnet: de putten en buizen erin, als JSON. - GET
/gm/gld/v1/seriesAsCsv/{broId}Grondwaterstandreeks als CSV: tijdstip plus een waarde- en opmerkingkolom per soort (voorlopig, beoordeeld, controle, onbekend). - GET
/gm/gld/v1/objects/{broId}/observationsSummaryOverzicht van de observaties in een dossier (id, begin, eind, type, status), als JSON. - GET
/gm/gld/v1/objects/{broId}/observations/{observationId}Eén observatie als XML, met startTVPTime/endTVPTime of mostRecentTVP. - GET
/gm/gld/v1/objectsAsCsv/{broId}Heel het grondwaterstandendossier als CSV (rapportagetype, observatietype). - GET
/gm/gmw/v1/groundlevelposition-as-csv/{broId}Maaiveldhoogte van een put door de tijd, als CSV. - GET
/gm/gmn/v1/networksLijst van meetnetten, te filteren op bronhouder, monitoringdoel en meetpunten (zonder filter: 204 leeg). - GET
/gu/gpd/v1/seriesAsCsv/{broId}Onttrokken en ingebrachte volumes van een grondwaterproductiedossier als CSV. - POST
/gm/gar/v1/table/dispatchGrondwatersamenstelling als tabel bij een uitgifteresultaat.
De API's van deze bron 1 · uit de documentatie van de aanbieder uit de beschrijving
PDOK-kopie (OGC API Features)
Kengegevens van alle putten, buizen, meetnetten en onderzoeken in GeoJSON, 1.000 per pagina, zonder 2.000-grens. Elk object linkt naar de XML op publiek.broservices.nl (imbro_xml_url). Handig voor landelijke tellingen.
https://api.pdok.nl/tno/bro-grondwatermonitoring-in-samenhang-karakteristieken/ogc/v1- GET
/collections/gm_gmw/items?f=json&limit=1000Putten (ook gm_gmw_monitoringtube, gm_gmn, gm_gmn_measuringpoint, gm_gmn_reference, gm_gld, gm_gar) - GET
/collections/{collectie}/queryablesFilterbare velden (alleen bro_id, pk en geometrie)
Filteren uit de beschrijving
Geen querytaal: een JSON-body (kenset) met gebied, periodes en een paar kenmerken. Daarna per bro-id verder.
Parameters 11
area.enclosingCircle | Cirkel: center {lat, lon} (WGS84) en radius in kilometer. | getest |
area.boundingBox | Rechthoek: lowerCorner en upperCorner, elk {lat, lon}. | getest |
registrationPeriod | {beginDate, endDate} als JJJJ-MM-DD: wanneer het object geregistreerd is. | getest |
correctionPeriod, constructionPeriod, removalPeriod | Andere periodes in de zoekvraag (bij putten: aanleg en verwijdering). | uit de beschrijving |
qualityRegime, underReview, owner, deliveryAccountableParty | Filters in de zoekvraag: IMBRO of IMBRO/A, JA/NEE, KvK-nummer eigenaar of bronhouder. | uit de beschrijving |
bronhouder | KvK-nummer, verplicht bij bro-ids. | uit de beschrijving |
fullHistory | Bij objects: ook de eerdere versies van het object. | uit de beschrijving |
observationPeriodBeginDate, observationPeriodEndDate, filtered | Bij GLD-objects: alleen observaties in een periode. | uit de beschrijving |
asISO8601 | Bij seriesAsCsv: tijdstippen als ISO 8601 (1956-09-28T12:00:00+01:00) in plaats van epoch-milliseconden. | getest |
filterOnStatusQualityControl | Bij seriesAsCsv: alleen waarden met deze kwaliteitsstatus. | uit de beschrijving |
requestReference | Eigen kenmerk dat terugkomt in het antwoord. | uit de beschrijving |
Velden in de antwoorden (selectie: zoekresultaat putten en reeks-CSV) 9
| Naam | Type | Betekenis |
|---|---|---|
brocom:broId | tekst | BRO-id (GMW…, CPT…, GLD…) |
brocom:qualityRegime | tekst | IMBRO (nieuw) of IMBRO/A (overgezet uit oudere archieven) |
brocom:objectRegistrationTime | datetime | Moment van registratie |
brocom:standardizedLocation | punt | Locatie in ETRS89 (EPSG:4258), lat lon |
brocom:deliveredLocation | punt | Aangeleverde locatie, meestal RD (EPSG:28992) |
groundLevelPosition | getal · m t.o.v. NAP | Maaiveldhoogte bij de put |
wellConstructionDate | datum | Aanlegdatum van de put |
Beoordeelde Waarde [m] | getal · m t.o.v. NAP | Grondwaterstand in seriesAsCsv (ook Voorlopige, Controle, Onbekend) |
Tijdstip | getal · ms sinds 1970 | Tijd in seriesAsCsv; negatief vóór 1970 |
Limieten en valkuilen
- Een zoekvraag die meer dan 2.000 objecten zou opleveren wordt geweigerd: HTTP 400 met responseType 'rejection' en de reden 'Het aantal objecten is groter dan 2000'. Maak het gebied of de periode kleiner. getest
- Geen sleutel en geen gedocumenteerde rate limit. Een zoekvraag van 15 putten (31 kB XML) kwam in 0,3 s terug. getest
- Fouten zijn XML met responseType 'rejection' en een rejectionReason, ook voor een onbekend bro-id ('Registratieobject GMW999999999999 bestaat niet.', HTTP 400). getest
- Datums verschillen per endpoint: observationsSummary geeft 29-07-1971 (DD-MM-JJJJ), seriesAsCsv epoch-milliseconden (of ISO 8601 met asISO8601=true), XML ISO 8601. getest
- De OpenAPI-beschrijvingen zijn YAML (application/yaml), geen JSON; tools die alleen JSON lezen moeten eerst omzetten. Er zijn 15 diensten: /gm/{frd,gar,gld,gmn,gmw}/v1, /gm/v1, /sr/bhrp/v2, /sr/bhrg/v3, /sr/bhrgt/v2, /sr/cpt/v1, /sr/sfr/v2, /gu/{gpd,guf}/v1, /ep/{epc,epl}/v1. getest
- Putten met kwaliteitsregime IMBRO/A (72.798 van de 97.768) zijn overgezet uit oudere archieven en minder volledig. Verwijderde putten staan er nog in (deregistered/removal). ervaring
- robots.txt van publiek.broservices.nl gaf HTTP 503 (16 okt 2026): geen regels te lezen. Wij gebruiken alleen de gedocumenteerde API met kleine aanroepen. getest
Probeer het HTTP 200 · 362 ms · 16 okt
https://publiek.broservices.nl/gm/v1/gmw-relations/GMW000000004076
{
"gmwBroId": "GMW000000004076",
"monitoringTubeReferences": [
{
"tubeNumber": 1,
"screenTopPosition": -10.05,
"gmnReferences": [],
"gldReferences": [
{
"broId": "GLD000000002796",
"url": "https://publiek.broservices.nl/gm/gld/v1/objects/GLD000000002796",
"accountableParty": "30277172"
}
],
"garReferences": []
}
],
"characteristics": null
}Ingekort antwoord, opgeslagen bij het oogsten. Klik op het adres voor het echte, actuele antwoord.
Gelezen uit OpenAPI 3.1 (YAML) van de grondwaterstanden (GLD); elke dienst heeft er een op <basis>/openapi · Swagger-pagina om aanroepen uit te proberen (per dienst) · BRO-productomgeving: uitgiftehandboeken en berichtencatalogi per registratieobject. Labels: uit de beschrijving staat in wat de api zelf publiceert. getest uit onze eigen kleine aanroep. platform geldt voor elk api van dit platform, volgens de documentatie. ervaring zelf ondervonden bij het bouwen van open data index.
Zo haal je het op
curl https://publiek.broservices.nl/gm/v1/gmw-relations/GMW000000004076
Meer van TNO in onze index
106 datasets in data.overheid.nl, Nationaal Georegister. Dit zijn de laatst gewijzigde.
- Hoofdwaterlopen 20052026-10-04
- Zandbanen ondergrond 20052026-10-04
- Zoutvelden en zoutproductieputten onder INSPIRE2026-09-16
- Olie- en gasvelden onder INSPIRE2026-08-25
- BRO - Bodemkundig booronderzoek (BHR-P) INSPIRE geharmoniseerd - Geologie2026-08-19
- BRO - Geologisch booronderzoek (BHR-G) as-is2026-08-19
Meer in dit thema
Bekijk hoe deze pagina is opgebouwd
bron: bro
blokken: []
secties:
- ideeen
- verwerken
- koppelingen
- vergelijkbaar
- beperkingen
- code
cache:
tag: bron:bro
ververs: na statuscheck, als de bron nieuwer is
statuscheck:
methode: veld updated van de collectie gm_gmw in de PDOK-kopie (BRO
Grondwatermonitoring in samenhang)
verwacht: wekelijks
Bron: content/bronnen/bro.yaml · Markdown



