
Bodemloket
Waar is de bodem onderzocht, waar is hij verontreinigd en wat gebeurt eraan? Het Bodemloket toont wat provincies, omgevingsdiensten en grote gemeenten over hun locaties aanleveren: de stand van het onderzoek, het oordeel over de verontreiniging en of er gesaneerd is. Op 15 oktober 2026 ging het om 241.945 locaties.

Locaties in het Bodemloket per aanleverende instantie: het meest Omgevingsdienst Haaglanden (34.157 locaties), dan Omgevingsdienst West-Holland en Provincie Limburg
Locaties in het Bodemloket per aanleverende instantie, oktober 2026, in locaties. Totaal: 242.214; de grootste 12 van 68 categorieën staan in de grafiek. Omgevingsdienst Haaglanden is 14% van het totaal. Elke instantie levert zelf aan. 31 instanties, waaronder de gemeenten Utrecht, Eindhoven en Groningen, tonen hun locaties alleen op een eigen website; die ontbreken in deze telling. Een lage telling zegt dus niets over schone grond.
Locaties in het Bodemloket naar volgende stap: het meest voldoende onderzocht (140.558 locaties), dan historisch onderzoek uitvoeren en oriënterend onderzoek uitvoeren
Locaties in het Bodemloket naar volgende stap, oktober 2026, in locaties. Totaal: 242.214; de grootste 12 van 23 categorieën staan in de grafiek. Voldoende onderzocht is 58% van het totaal. Bij 22.872 locaties is geen vervolgstap ingevuld; die tellen mee in het totaal. Het Bodemloket geeft geen datum per locatie.
Wat kun je ermee?4 ideeën
Wat ligt er onder de nieuwbouwwijk?
Vraag alle locaties binnen 250 meter van een adres op. Je ziet per locatie de stand van het onderzoek en het oordeel, bijvoorbeeld 'Potentieel Ernstig' of 'voldoende gesaneerd'.
Hoeveel werk ligt er nog?
Tel per gemeente of omgevingsdienst de locaties waar nog onderzoek of sanering moet gebeuren (VERVOLG_WBB). Op 15 oktober 2026 stond bij 41.143 locaties 'Uitvoeren historisch onderzoek'.
Spoedlocaties in kaart
Filter op oordelen met 'spoed' of 'urgent' en leg ze op de buurtgrenzen. Wonen er mensen boven of naast?
Welke gemeenten laten niets zien?
De laag Bevoegd_gezag zegt per instantie of de gegevens in het Bodemloket staan of alleen op een eigen website. Op 15 oktober 2026 gold 'uitsluitend via eigen website' voor 31 van de 41 instanties, waaronder Utrecht, Groningen, Eindhoven en Nijmegen.
Zo verwerk je het4 stappen
Bekijk de lagen en velden
De gegevens staan in een ArcGIS-dienst van Rijkswaterstaat met drie lagen: WBB_locaties (de locaties), Beschikbaarheid_gegevens en Bevoegd_gezag. Maximaal 2.000 objecten per verzoek, uitvoer als JSON, GeoJSON of PBF.
https://gis.gdngeoservices.nl/standalone/rest/services/blk_gdn/lks_blk_rd_v1/MapServer?f=json
Locaties rond een punt
Geef een punt in RD-coördinaten en een straal. Rond dit punt in Helmond (buurt Brouwhuis-Oost) gaf een straal van 250 meter 29 locaties.
https://gis.gdngeoservices.nl/standalone/rest/services/blk_gdn/lks_blk_rd_v1/MapServer/0/query?geometry=177060%2C386040&geometryType=esriGeometryPoint&inSR=28992&distance=250&units=esriSRUnit_Meter&spatialRel=esriSpatialRelIntersects&outFields=LOCATIECODE_BEVOEGD_GEZAG%2CVERVOLG_WBB%2CSTATUS_OORD&returnGeometry=false&f=json
Tellen op de server
Met outStatistics en groupByFieldsForStatistics telt de dienst zelf, bijvoorbeeld per beheerder (ADMINISTRATOR_NM). Zo hoef je geen 241.945 locaties binnen te halen.
https://gis.gdngeoservices.nl/standalone/rest/services/blk_gdn/lks_blk_rd_v1/MapServer/0/query?where=1%3D1&outStatistics=%5B%7B%22statisticType%22%3A%22count%22%2C%22onStatisticField%22%3A%22WBB_DOSSIER_DBK%22%2C%22outStatisticFieldName%22%3A%22n%22%7D%5D&groupByFieldsForStatistics=ADMINISTRATOR_NM&f=json
Ruim de oordelen op
STATUS_OORD is vrije tekst uit verschillende systemen: 'Potentieel Ernstig', 'potentieel spoed', 'Urgent, start san voor 2015'. Maak zelf een korte indeling voor je gaat tellen.
Interessante koppelingen


Hoeveel woningen staan op een locatie met een ernstige verontreiniging?
Snijd de verblijfsobjecten uit de BAG met de locatievlakken en tel per oordeel. Beide zijn in RD.


Welke buurten hebben de meeste open dossiers?
Tel per buurt de locaties waar VERVOLG_WBB nog een actie noemt. Let op dat grote steden ontbreken.
Vergelijkbare bronnen
- DDINOloket (TNO) nog niet uitgelegd
De diepere ondergrond (boringen, grondwater, geologie), geen verontreiniging per perceel.
- ALAtlas Leefomgeving nog niet uitgelegd
Laat bodemkwaliteit zien naast lucht, geluid en groen, voor bewoners. Minder geschikt om mee te rekenen.
data.overheid.nlSommige gemeenten publiceren hun eigen bodembestand daar, zoals Den Haag (Historisch bodembestand).
Waar je op moet letten
- Grote steden ontbreken
Amsterdam en Rotterdam hadden op 15 oktober 2026 nul locaties in de dienst, en 31 van de 41 instanties tonen hun gegevens alleen op een eigen website. Een lege kaart betekent dus niet dat de bodem schoon is.
- Geen datum
De locaties hebben geen datum van onderzoek of laatste wijziging. Hoe vaak een instantie levert, verschilt en staat nergens in de dienst.
- Veel lege oordelen
Bij 99.633 van de 241.945 locaties is STATUS_OORD leeg. Tel die apart en meld het erbij.
- Licentie niet vermeld
Site en dienst noemen geen open licentie, alleen een disclaimer. Vraag bij hergebruik op grote schaal na wat mag, en noem altijd de bron.
- Storingen in de kaart
Rond 20 en 21 augustus 2026 werkten de kaart en daarna de lagen met bodemkwaliteitskaarten een tijd niet (nieuwsberichten op de site). Bouw een herhaalpoging in.
APIArcGIS REST · gelezen 16 okt 2026
Geen sleutel of token: de directory en alle aanroepen hieronder werkten anoniem. getest
locaties in laag 0 WBB_locaties (returnCountOnly, 16 okt 2026) getest
jsongeojsonpbfpng (export, WMS)
Basisadres
https://gis.gdngeoservices.nl/standalone/rest/services/blk_gdn
Endpoints 7
- GET
?f=jsonMap blk_gdn: één dienst, lks_blk_rd_v1 (MapServer, ArcGIS 11.5). - GET
/lks_blk_rd_v1/MapServer?f=jsonDe dienst: laag 0 WBB_locaties, 1 Beschikbaarheid_gegevens (31), 2 Bevoegd_gezag (41); maxRecordCount 2.000; extensie WMSServer. - GET
/lks_blk_rd_v1/MapServer/{laag}?f=jsonVelden en mogelijkheden van één laag. - GET
/lks_blk_rd_v1/MapServer/0/queryBodemlocaties opvragen: op een punt met straal, per bevoegd gezag, per status; tellen en groeperen. - GET
/lks_blk_rd_v1/MapServer/export?bbox=120000,480000,125000,485000&bboxSR=28992&size=400,400&layers=show:0&format=png&f=jsonKaartbeeld van een rechthoek (link naar een PNG; met f=image direct het beeld). - GET
/lks_blk_rd_v1/MapServer/legend?f=jsonLegenda per laag. - GET
https://gis.gdngeoservices.nl/standalone/services/blk_gdn/lks_blk_rd_v1/MapServer/WMSServer?request=GetCapabilities&service=WMSWMS 1.3.0 van dezelfde dienst (pad zonder /rest/).
Filteren platform
SQL-achtige where-voorwaarde op de velden van de laag, plus een optioneel ruimtelijk filter (geometry). Groeperen en tellen met outStatistics.
Parameters 13
where | Voorwaarde in SQL-92-stijl: 1=1 voor alles, tekst tussen enkele aanhalingstekens (GEMEENTE='Zwolle'), LIKE met %, AND/OR, datums als DATE 'JJJJ-MM-DD'. Verplicht als er geen ander filter is. | getest |
outFields | Velden in het antwoord, gescheiden door komma's, of * voor alle velden. | getest |
returnGeometry | false = alleen attributen (veel kleiner antwoord). | getest |
outSR | Projectie van de geometrie in het antwoord; 4326 = graden (WGS84). Standaard de projectie van de laag, hier RD (28992). | getest |
f | Formaat: json (Esri-JSON), geojson, pbf (protobuf), pjson (ingesprongen) of html (bladeren in de browser). | getest |
resultOffset | Paginering: aantal objecten overslaan (vanaf 0). Gebruik samen met orderByFields voor een vaste volgorde. | getest |
resultRecordCount | Maximaal aantal objecten in dit antwoord (afgekapt op maxRecordCount van de laag). | getest |
orderByFields | Sorteren, bv. 'OBJECTID' of 'n DESC' (ook op een statistiekveld). | getest |
returnCountOnly | true = alleen het aantal objecten dat aan where voldoet: {"count": …}. | getest |
outStatistics | Statistiek op de server: lijst van {statisticType, onStatisticField, outStatisticFieldName}; statisticType count, sum, min, max, avg, stddev of var. URL-coderen. | getest |
groupByFieldsForStatistics | Velden om op te groeperen bij outStatistics (zoals GROUP BY). | getest |
returnDistinctValues | true met outFields en returnGeometry=false: de unieke waarden van die velden. | getest |
geometry | Ruimtelijk filter: een punt 'x,y' of rechthoek 'xmin,ymin,xmax,ymax', met geometryType (esriGeometryPoint, esriGeometryEnvelope), inSR (projectie van de invoer), spatialRel (esriSpatialRelIntersects) en eventueel distance + units (esriSRUnit_Meter) voor een straal. | getest |
Velden van de voorbeeldlaag 9 · lks_blk_rd_v1/MapServer/0 (WBB_locaties)
| Naam | Type | Betekenis |
|---|---|---|
WBB_DOSSIER_DBK | OID | Objectsleutel (dit is het OBJECTID-veld van deze laag; gebruik het voor paginering en tellen) |
SIKB_ID | String | Landelijke SIKB-identificatie van de locatie |
LOCATIECODE_BEVOEGD_GEZAG | String | Locatiecode bij het bevoegd gezag (bv. FR008800079) |
BIS_LOCCODE | String | Oude BIS-locatiecode |
TYPE_CD | String | Code van de vervolgstap (1 op 1 met VERVOLG_WBB) |
VERVOLG_WBB | String | Vervolg volgens de Wet bodembescherming: voldoende onderzocht, uitvoeren historisch onderzoek, voldoende gesaneerd … |
STATUS_OORD | String | Oordeel over de verontreiniging, vrije tekst (oude en nieuwe termen door elkaar) |
ADMINISTRATOR_NM | String | Bevoegd gezag dat de gegevens beheert (gemeente, provincie, omgevingsdienst) |
NEN3610_ID_SOIL_LOCATION | String | NEN3610-id van de locatie |
Limieten en valkuilen
- Hoogstens 2.000 objecten per antwoord (maxRecordCount van de laag; verschilt per laag, staat in /{laag}?f=json). Is er meer, dan staat exceededTransferLimit: true in het antwoord: haal de rest op met resultOffset en resultRecordCount. getest
- Geen sleutel en geen gedocumenteerde rate limit. Doe rustig aan (een paar verzoeken per seconde) en vraag liever statistieken of tellingen op dan alle objecten. ervaring
- Het telveld van outStatistics komt in hoofdletters terug: vraag je outStatisticFieldName 'n', dan heet het in het antwoord 'N'. Sorteren kan wel met orderByFields=n DESC. getest
- Het objectsleutelveld heet WBB_DOSSIER_DBK, niet OBJECTID: orderByFields=OBJECTID geeft 'Invalid or missing input parameters'. getest
- Fouten komen terug met HTTP 200 en een JSON-object {"error": {"code": 400, …}} ('Failed to execute query.' bij een onbekend veld in where). Controleer altijd op een veld error, niet alleen op de statuscode. getest
- 22.869 locaties hebben geen VERVOLG_WBB en geen TYPE_CD. Amsterdam en Rotterdam leveren niets; 31 van de 41 bevoegde gezagen (laag 1) tonen hun gegevens alleen op hun eigen website. getest
- Geen datumveld en geen editingInfo: de API zegt niet wanneer een locatie is bijgewerkt. Het totaal schommelt (15 okt 241.945, eerder op 16 okt 242.206, 's avonds weer 241.945). getest
- Laag 0 heeft vlakken in RD (EPSG:28992). Een zoekvraag op een punt met straal: geometry=x,y&geometryType=esriGeometryPoint&inSR=28992&distance=250&units=esriSRUnit_Meter. getest
Probeer het HTTP 200 · 1.625 ms · 16 okt
https://gis.gdngeoservices.nl/standalone/rest/services/blk_gdn/lks_blk_rd_v1/MapServer/0/query?where=1%3D1&outStatistics=[{"statisticType"%3A"count"%2C"onStatisticField"%3A"WBB_DOSSIER_DBK"%2C"outStatisticFieldName"%3A"n"}]&groupByFieldsForStatistics=VERVOLG_WBB&orderByFields=n DESC&f=json
{
"displayFieldName": "",
"fieldAliases": {
"VERVOLG_WBB": "VERVOLG_WBB",
"N": "N"
},
"fields": [
{
"name": "VERVOLG_WBB",
"type": "esriFieldTypeString",
"alias": "VERVOLG_WBB",
"length": 50
},
{
"name": "N",
"type": "esriFieldTypeBigInteger",
"alias": "N"
}
],
"features": [
{
"attributes": {
"VERVOLG_WBB": "voldoende onderzocht",
"N": 140554
}
},
{
"attributes": {
"VERVOLG_WBB": "Uitvoeren historisch onderzoek",
"N": 41143
}
}
]
}Ingekort antwoord, opgeslagen bij het oogsten. Klik op het adres voor het echte, actuele antwoord.
Gelezen uit Dienstbeschrijving: drie lagen, limieten, WMS-extensie · Laag WBB_locaties: velden en mogelijkheden · Esri: query-operatie (alle parameters). 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://gis.gdngeoservices.nl/standalone/rest/services/blk_gdn/lks_blk_rd_v1/MapServer/0/query?geometry=177060%2C386040&geometryType=esriGeometryPoint&inSR=28992&distance=250&units=esriSRUnit_Meter&spatialRel=esriSpatialRelIntersects&outFields=LOCATIECODE_BEVOEGD_GEZAG%2CVERVOLG_WBB%2CSTATUS_OORD&returnGeometry=false&f=json"
Meer van Rijkswaterstaat in onze index
6.621 datasets in Nationaal Georegister, data.overheid.nl, ArcGIS Online Rijkswaterstaat, 4TU.ResearchData (via DataCite). Dit zijn de laatst gewijzigde.
- Voedingsgebieden a2026-10-30
- survey (survey123 3bf846cc7e7f4ce98af91c84fb4f38d9 form)2026-10-30
- Waterstof stations a2026-10-30
- Rijkswaterstaatlocaties (Rijkswaterstaatlocaties weergave)2026-10-30
- LNG stations a2026-10-30
- CleanEnergyHubs Locaties a2026-10-30
Meer in dit thema
Bekijk hoe deze pagina is opgebouwd
bron: bodemloket blokken: [] secties: - ideeen - verwerken - koppelingen - vergelijkbaar - beperkingen - code cache: tag: bron:bodemloket ververs: na statuscheck, als de bron nieuwer is statuscheck: methode: aantal locaties in de laag WBB_locaties (ArcGIS REST, returnCountOnly) verwacht: maandelijks
Bron: content/bronnen/bodemloket.yaml · Markdown


