NL Bodemrisico Check — Bodemloket per Adres avatar

NL Bodemrisico Check — Bodemloket per Adres

Pricing

from $6.00 / 1,000 locatie-resultaats

Go to Apify Store
NL Bodemrisico Check — Bodemloket per Adres

NL Bodemrisico Check — Bodemloket per Adres

Zoekt bodemverontreinigingslocaties (Wbb) uit het landelijke Bodemloket op voor een NL-adres/postcode/coordinaat, met risicolabels, bevoegd gezag en een expliciete dekkingsindicatie per regio. Voor aannemers en projectontwikkelaars vóór grondverzet.

Pricing

from $6.00 / 1,000 locatie-resultaats

Rating

0.0

(0)

Developer

Dennis

Dennis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

NL Bodemrisico Check — Bodemloket per Adres 🇳🇱🟫

Check a Dutch address, postcode, place name, or coordinate against the national Bodemloket (soil contamination register, Wbb locations) before starting excavation or groundwork — a fast, structured pre-screen for soil contamination financial risk.

Excavation, land development and construction projects in the Netherlands can run into unexpected remediation (sanering) costs if the site sits on a known or suspected soil contamination location under the Wet bodembescherming (Wbb). The Bodemloket — a nationwide register maintained by the responsible authorities (provinces, municipalities, environmental services) — publishes this data as a public GIS service. This actor turns that into a simple per-address JSON lookup, including an honest "no coverage data" signal so an empty result is never silently read as "no contamination".

When should an AI agent use this?

  • "Is there a known soil contamination location at this address before we start digging?"
  • "Check these 5 candidate development sites for Bodemloket (Wbb) hits."
  • "What's the remediation status of this former industrial site?"
  • "Which authority is responsible for soil files at this location, and do they publish dossier data online?"
  • "Screen a list of addresses for soil risk before submitting an excavation permit."

What this Actor does

  • Geocodes your input (postcode, address, place name, or "lat,lon") via the official PDOK Locatieserver
  • Runs a point-in-polygon lookup against the national Bodemloket ArcGIS service (Wbb-locaties layer)
  • Returns every overlapping Wbb soil location, translated to plain-language Dutch labels (location type, contamination assessment, follow-up/remediation status)
  • Looks up the responsible authority (bevoegd gezag) for the location
  • Includes an explicit coverage indicator: whether the responsible authority publishes additional dossier data/web portal for this region — so "no result found" can be told apart from "no coverage data available for this region"
  • Processes multiple locations per run, in parallel

Who is this for?

  • Contractors & earthworks companies (grondverzetbedrijven) — pre-screen a site before excavation to avoid unbudgeted remediation costs
  • Project developers — early risk signal before acquiring or developing a plot
  • Environmental consultants — quick first-pass check before commissioning a formal soil survey (bodemonderzoek)
  • AI agents — structured JSON output, ideal as a tool for agentic due-diligence workflows

Input

FieldTypeDescription
locatiesarray of stringsPostcodes, addresses, place names, or "lat,lon" coordinates to check, e.g. "Bathseweg 27, Rilland", "4411BA", "51.415,4.186"
concurrencyintegerHow many locations to process in parallel, 1-10 (default 3)
nabijheidsradiusMeterintegerSearch for Wbb locations within this radius (meters) around the point instead of only exact overlap. 0 (default) = off, current point-only behaviour. Max 500.
monitorLocatiesbooleanCompares each location's Wbb data with the previous run (via the actor's key-value store) and signals a new Wbb dossier or a changed vervolgWbb status. Default false.

Output

One result per input location:

{
"invoer": "Bathseweg 27, Rilland",
"gevonden": true,
"fout": null,
"weergavenaam": "Bathseweg 27, 4411BA Rilland",
"postcode": "4411BA",
"gemeente": "Reimerswaal",
"provincie": "Zeeland",
"lat": 51.41533763,
"lon": 4.18586885,
"geocodingScore": 19.113255,
"geocodingBetrouwbaarheid": "hoog",
"wbbLocaties": [
{
"sikbId": null,
"wbbDossierNummer": 126236372,
"locatiecodeBevoegdGezag": "ZL070300019",
"bisLoccode": "AA070302070",
"typeCd": "21",
"typeLabel": "Gesaneerd of in sanering",
"vervolgWbb": "voldoende gesaneerd",
"vervolgWbbLabel": "Voldoende gesaneerd",
"statusver": null,
"statusverLabel": "Geen beoordeling geregistreerd",
"statusOordeel": "Onverdacht/Niet verontreinigd",
"statusOordeelLabel": "Onverdacht / niet verontreinigd",
"administrator": "Reimerswaal",
"afstandMeter": null
}
],
"aantalWbbLocaties": 1,
"bevoegdGezag": {
"naam": "RUD Zeeland",
"heeftWebsite": true,
"websiteUrl": "https://zeeland.nazca4u.nl/Rapportage/",
"heeftDossierdata": true
},
"dekkingBeschikbaar": false,
"dekkingToelichting": "Geen dekkingsgegevens gevonden voor deze locatie in het Bodemloket — dit bevoegd gezag publiceert (nog) geen aanvullende dekkingsinformatie via deze laag.",
"bron": "Bodemloket (Rijkswaterstaat, gis.gdngeoservices.nl/standalone/rest/services/blk_gdn/lks_blk_rd_v1)",
"nabijheidsradiusToegepast": null
}
  • geocodingBetrouwbaarheid ("hoog" / "middel" / "laag") is an honest, best-effort classification based on PDOK's own relevance score (geocodingScore) — not a guarantee. PDOK's /free endpoint does fuzzy/best-effort matching and can return an irrelevant match even for a nonsensical address (see the FAQ below); "laag" means "verify this manually before relying on the result", not "this address doesn't exist". Direct "lat,lon" input is always "hoog" (no fuzzy matching involved).
  • wbbLocaties is an array because multiple overlapping Wbb polygons can exist at a single point — an empty array is a valid result, not an error: it means no registered Wbb location overlaps this point.
  • dekkingBeschikbaar reflects a separate Bodemloket layer (regional data-availability), not the Wbb-locaties layer itself. It can be false even when wbbLocaties is non-empty, and vice versa — always read both fields together. A false value means "this region's coverage/portal data isn't registered in this specific layer", not "this location has no contamination".
  • Unknown/unmapped status or type codes are shown as "Onbekende ... (code)" with the raw code — labels are never guessed.
  • If geocoding fails, gevonden is false and fout explains why.

Proximity radius (nabijheidsradiusMeter, optional, separately charged)

By default, only Wbb polygons that overlap the exact geocoded point are returned — a contamination location 20 meters away is missed. Set nabijheidsradiusMeter (e.g. 50) to search within that radius instead, using the same Bodemloket layer (no new data source). nabijheidsradiusToegepast reflects the radius actually used (null in the default exact-point mode). Only charged the extra nabijheidsradius-resultaat event when at least one location is found within the radius — a location for which nothing is found still costs only the base locatie-resultaat.

In radius mode, each wbbLocaties item also gets an afstandMeter field (haversine distance in meters from your point to the polygon's approximate centroid), and the array is sorted nearest-first — so with several hits within range you immediately see which one is closest. afstandMeter stays null in the default exact-point mode (the point is by definition inside the polygon, so distance isn't meaningful there).

Change monitoring (monitorLocaties, optional, separately charged)

With monitorLocaties: true, each location's Wbb data is compared with the previous run (via the actor's key-value store, keyed on the normalized input string) — ideal for scheduled runs on a fixed shortlist of locations (e.g. an active construction/remediation project):

{
"type": "wijziging_signaal",
"invoer": "Bathseweg 27, Rilland",
"signaalType": "status_gewijzigd",
"wbbDossierNummer": 126236372,
"vorigeVervolgWbb": "in sanering",
"huidigeVervolgWbb": "voldoende gesaneerd"
}

signaalType is "nieuw_dossier" (a Wbb dossier that wasn't there last run) or "status_gewijzigd" (an existing dossier's vervolgWbb value changed, e.g. from "in sanering" to "voldoende gesaneerd"). The very first run for a location never produces a signal — there's nothing to compare against yet, not a guessed "everything is new". Only charged the extra wijziging-signaal event when an actual change is detected.

Run summary (key-value store, free)

At the end of each run, a RUN_SUMMARY object is written to the actor's key-value store (visible in the Apify Console run's storage tab) — no extra charge. It aggregates the whole batch: total locations processed, how many had at least one Wbb location, how many errored, how many lacked dekkingBeschikbaar, and the distribution of geocodingBetrouwbaarheid (hoog/middel/laag/onbekend). Useful for a portfolio-level overview when screening dozens of addresses in one run, without scrolling through the full dataset.

Use cases

Pre-screen a shortlist of development sites:

{
"locaties": ["Bathseweg 27, Rilland", "Industrieterrein Moerdijk", "52.09,5.12"]
}

Single-address check before submitting an excavation permit:

{
"locaties": ["4411BA"]
}

Pricing

This Actor uses Apify's Pay-Per-Event (PPE) pricing model.

  • Actor Start: $0.00005 (Apify default)
  • locatie-resultaat: $0.006 per location checked (geocoding + Wbb-locaties lookup + bevoegd gezag + coverage indicator)
  • nabijheidsradius-resultaat: $0.01 extra, only with nabijheidsradiusMeter enabled and only when at least one Wbb location is found within the radius
  • wijziging-signaal: $0.012 extra, only with monitorLocaties enabled and only when an actual new dossier or status change is detected vs. the previous run
  • Data source: the Bodemloket (landelijk register van bodemverontreinigingslocaties), served via a public ArcGIS Server REST service (gis.gdngeoservices.nl), copyright Rijkswaterstaat. No authentication required.
  • This is environmental/location data about land parcels, not personal data — no GDPR concerns.
  • Coverage is not uniform across the Netherlands — the level of detail and dossier availability differs per responsible authority. This actor reports what the Bodemloket returns and makes the coverage gap explicit (dekkingBeschikbaar); it is not a substitute for a formal soil survey (bodemonderzoek) or legal/technical advice before excavation.
  • Geocoding uses the official Dutch government PDOK Locatieserver (Kadaster/BZK), a free public service.

FAQ

Q: My address returned an empty wbbLocaties array — is the soil safe? A: It means no registered Wbb soil location overlaps this exact point in the Bodemloket. It does not mean "no contamination has ever occurred" — always also check dekkingBeschikbaar for this region, and consult a certified soil survey before relying on this for a real excavation decision.

Q: What does dekkingBeschikbaar: false mean? A: The responsible authority for this region has not registered an additional web portal/dossier-data flag in the Bodemloket's own coverage layer. It is informational, not a warning about the Wbb result itself.

Q: My input was a nonsensical or misspelled address — why did I still get a result? A: PDOK's /free endpoint does fuzzy/best-effort matching and can return an unrelated (but real) location even for input that doesn't correspond to any actual address. Check geocodingBetrouwbaarheid: a "laag" value is a signal to verify the match manually before relying on it — it does not affect wbbLocaties itself, only how much you should trust that the geocoded location is what you intended.

Q: Why do some locations show multiple wbbLocaties entries? A: Wbb soil location polygons can overlap (e.g. an old dossier boundary and a newer one for the same site). Each is reported separately so nothing is silently merged or dropped.

Q: Why is statusver/statusOordeel sometimes null? A: Not every Wbb dossier has both fields filled in — this is common in the source data itself, not a mapping error.

  • PDOK Adres Geocoding & Buurtdata — the same official PDOK Locatieserver this actor uses internally for geocoding, useful if you need broader address/CBS neighbourhood-data lookups beyond soil risk.
  • NL Faillissementen Monitor — a complementary due-diligence check: bankruptcy/receivership risk on the company side, soil-contamination risk on the property side.

Zoekwoorden: bodemloket, bodemverontreiniging check, bodemrisico per adres, Wbb-locatie zoeken, grondverzet risicocheck, saneringsstatus opzoeken, bodemonderzoek voorscreening, bevoegd gezag bodem.

Keywords

bodemloket, soil contamination, bodemverontreiniging, bodemrisico, wbb, grondverzet, sanering, netherlands, due diligence, excavation risk

Changelog

0.4.0

  • Added monitorLocaties: compares each location's Wbb data with the previous run and signals a new dossier or a changed vervolgWbb status. New charged event wijziging-signaal ($0.012), only when a change is actually detected. Confirmed by the user (2026-07-16).

0.3.1

  • Added a free RUN_SUMMARY written to the key-value store at the end of each run (total locations, count with a Wbb location, count with errors, count without dekkingBeschikbaar, and the geocodingBetrouwbaarheid distribution). No pricing change.
  • Added afstandMeter per wbbLocaties item when nabijheidsradiusMeter is used: haversine distance in meters from the input point to the polygon's approximate centroid, with results sorted nearest-first. null in the default exact-point mode. Enrichment of the already-charged nabijheidsradius-resultaat event, no pricing change.

0.3.0

  • Added nabijheidsradiusMeter: search for Wbb locations within a radius around the point instead of only exact overlap, using the same Bodemloket layer's distance/units query parameters. New nabijheidsradiusToegepast field and charged event nabijheidsradius-resultaat ($0.01), confirmed by the user (2026-07-14, see docs/actor-verbeteringen/PRIJSBESLISSINGEN.md).

0.2.0

  • Added geocodingScore (raw PDOK relevance score) and geocodingBetrouwbaarheid (hoog/middel/laag, calibrated against live PDOK score data) so users can flag geocoding matches worth a manual check. No pricing change — enrichment of the existing per-location record.

0.1.0

  • Initial release: address/postcode-level Bodemloket (Wbb-locaties) lookup with translated status labels, bevoegd gezag, and an explicit regional coverage indicator.