Discover/Kadaster API
live

Kadaster APIbagviewer.kadaster.nl

Access Dutch BAG registry data: address autocomplete, building details, residential unit info, historical records, and coordinate-based lookup via 8 endpoints.

Endpoint health
verified 6d ago
search_by_coordinates
search_address_autocomplete
lookup_address_by_id
get_object_summary
get_pand_details
8/8 passing latest checkself-healing
Endpoints
8
Updated
22d ago

What is the Kadaster API?

This API exposes 8 endpoints covering the Dutch National Address and Building Registry (BAG), operated by Kadaster. You can search and resolve addresses using search_address_autocomplete, retrieve full building records including GeoJSON geometry and construction year via get_pand_details, inspect residential unit surface area and usage purposes through get_verblijfsobject_details, and trace the complete lifecycle of any BAG object with get_object_history. All 16-digit BAG identification numbers are supported across object types.

Try it
Search keyword for address lookup (e.g. 'Dam 1, Amsterdam', 'Kalverstraat 10').
api.parse.bot/scraper/aa9c1132-257f-455d-b9ef-51f44e637f01/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/aa9c1132-257f-455d-b9ef-51f44e637f01/search_address_autocomplete?query=Dam+1%2C+Amsterdam' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace bagviewer-kadaster-nl-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.dutch_bag_viewer_api import BAGViewer, ObjectType

bag = BAGViewer()

# Search for addresses in Amsterdam
for address in bag.addresses.search(query="Dam 1, Amsterdam"):
    print(address.weergavenaam, address.postcode)
    break

# Advanced search by city and street
for address in bag.addresses.advanced_search(woonplaats="Amsterdam", straat="Kalverstraat"):
    print(address.id, address.straatnaam)
    break

# Get full address details by ID
addr = bag.addresses.get(id="adr-2a8dc1af055da20b8bcdc8e4dbda1eaa")
print(addr.weergavenaam, addr.adresseerbaarobject_id)

# Get verblijfsobject summary with enum
vbo = bag.verblijfsobject("0363010003761571")
summary = vbo.summary(object_type=ObjectType.ADRESSEERBARE_OBJECTEN)
print(summary.identificatie, summary.oppervlakte, summary.status)

# Get building history
pand = bag.pand("0363100012168052")
for version in pand.history():
    print(version.versie, version.begin_geldigheid, version.status)

# Search buildings by coordinates
for building in bag.pands.search_by_coordinates(x="121394", y="487383"):
    print(building.identificatie, building.oorspronkelijk_bouwjaar, building.status)
All endpoints · 8 totalmissing one? ·

Autocomplete/typeahead search for addresses, cities, and BAG numbers using the PDOK Locatieserver API. Returns up to 10 matching address suggestions from the BAG registry. Query matches against street names, house numbers, postcodes, and city names. Results are ranked by relevance score.

Input
ParamTypeDescription
queryrequiredstringSearch keyword for address lookup (e.g. 'Dam 1, Amsterdam', 'Kalverstraat 10').
Response
{
  "type": "object",
  "fields": {
    "docs": "array of address suggestion objects with fields: weergavenaam, id, straatnaam, postcode, woonplaatsnaam, adresseerbaarobject_id, nummeraanduiding_id, centroide_rd, centroide_ll, huisnummer, gemeentenaam",
    "numFound": "integer total number of matching results"
  },
  "sample": {
    "data": {
      "docs": [
        {
          "id": "adr-2a8dc1af055da20b8bcdc8e4dbda1eaa",
          "bron": "BAG",
          "type": "adres",
          "postcode": "1012JS",
          "huisnummer": 1,
          "straatnaam": "Dam",
          "centroide_ll": "POINT(4.8937175 52.37329259)",
          "centroide_rd": "POINT(121394 487383)",
          "gemeentenaam": "Amsterdam",
          "weergavenaam": "Dam 1, 1012JS Amsterdam",
          "woonplaatsnaam": "Amsterdam",
          "nummeraanduiding_id": "0363200003761447",
          "adresseerbaarobject_id": "0363010003761571"
        }
      ],
      "start": 0,
      "numFound": 371,
      "numFoundExact": true
    },
    "status": "success"
  }
}

About the Kadaster API

Address Search and Resolution

The search_address_autocomplete endpoint accepts a free-text query parameter (e.g. 'Dam 1, Amsterdam') and returns up to 10 address suggestions from the BAG registry, each including weergavenaam, straatnaam, postcode, woonplaatsnaam, and an adresseerbaarobject_id. The id field from those results feeds directly into lookup_address_by_id, which resolves a single full address record by its PDOK locatieserver ID. For structured lookups, advanced_search accepts discrete woonplaats (required), straat, and huisnummer parameters and returns a docs array with numFound.

Building and Unit Detail

get_pand_details takes a 16-digit pand_id and returns the building's oorspronkelijkBouwjaar (original construction year), status, documentdatum, and a geometrie field containing a GeoJSON Polygon in the Dutch RD coordinate system. get_verblijfsobject_details covers residential units: it returns oppervlakte (surface area in m²), a gebruiksdoelen array listing usage purposes, status, and HAL _links pointing to the associated main address (heeftAlsHoofdAdres) and parent building (maaktDeelUitVan). get_object_summary combines these views and returns an _embedded object with nested address and building sub-objects alongside the verblijfsobject record.

Coordinate Search and History

search_by_coordinates accepts RD system x and y coordinates and returns an _embedded.panden array of building objects near that point, each containing identificatie, geometrie, oorspronkelijkBouwjaar, and status. This is useful for map-click workflows where you have a screen or map coordinate rather than an address string.

get_object_history requires both an object_id and an object_type (panden, verblijfsobjecten, or nummeraanduidingen) and returns _embedded.voorkomens, an ordered array of historical versions. Each voorkomen captures the full object state at that revision — geometry, status, and document references — making it possible to reconstruct how a building or address changed over time.

Reliability & maintenanceVerified

The Kadaster API is a managed, monitored endpoint for bagviewer.kadaster.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bagviewer.kadaster.nl changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official bagviewer.kadaster.nl API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
8/8 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Auto-suggest Dutch address input fields using search_address_autocomplete results including postcode and woonplaatsnaam.
  • Enrich property records with building age and footprint by calling get_pand_details for the oorspronkelijkBouwjaar and GeoJSON geometry.
  • Validate and normalize Dutch addresses in CRM or logistics systems using lookup_address_by_id for canonical BAG records.
  • Display residential unit surface area and usage classification on real estate listings via get_verblijfsobject_details oppervlakte and gebruiksdoelen fields.
  • Audit address and building status changes for compliance or due diligence using get_object_history voorkomens.
  • Identify buildings at a clicked map location by passing RD coordinates to search_by_coordinates.
  • Build structured address search forms for Dutch municipalities using advanced_search with woonplaats, straat, and huisnummer inputs.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Kadaster offer an official developer API for BAG data?+
Yes. Kadaster publishes the BAG API as part of its LVBAG service at https://www.kadaster.nl/zakelijk/producten/adressen-en-gebouwen/bag-api-individuele-bevragingen. PDOK also provides the Locatieserver used for address search at https://api.pdok.nl/bzk/locatieserver/search/v3_1/.
What coordinate system does `search_by_coordinates` use, and can I pass WGS84 lat/lon?+
The endpoint uses the Dutch RD (Rijksdriehoeksstelsel) coordinate system. It currently accepts only RD x and y values — for example, x=121394 and y=487383. WGS84 latitude/longitude is not accepted directly. You would need to convert coordinates before calling the endpoint. You can fork the API on Parse and revise it to add a conversion step or accept WGS84 inputs.
What does `get_object_history` return, and which object types are supported?+
It returns _embedded.voorkomens, an array where each entry is a complete snapshot of the object at a specific point in its lifecycle — including geometry, status, and document references. Supported object_type values are panden, verblijfsobjecten, and nummeraanduidingen. Standplaatsen and ligplaatsen history are not currently covered. You can fork the API on Parse and revise it to add those object types.
Does the API return energy labels or WOZ (property tax) valuations for buildings?+
No. The endpoints cover BAG registry data: addresses, building geometry, construction year, residential unit surface area, usage purposes, and lifecycle history. Energy labels and WOZ valuations are separate Kadaster and RVO datasets not included here. You can fork the API on Parse and revise it to add endpoints targeting those datasets.
Is BAG data available for the entire Netherlands, or only certain municipalities?+
BAG is a national registry maintained by all Dutch municipalities and consolidated by Kadaster, so coverage is nationwide. However, data freshness depends on when individual municipalities submit updates to the central registry; recently issued or demolished objects may reflect a short delay before appearing.
Page content last updated . Spec covers 8 endpoints from bagviewer.kadaster.nl.
Related APIs in Maps GeoSee all →
nahlizenidokn.cuzk.gov.cz API
Search for buildings, parcels, and land registry sheets across the Czech cadastre by address or code to view property characteristics, unit lists, and map previews. Access comprehensive property information and cadastral territory details, though ownership names and full registry contents require government ID verification.
funda.nl API
Search for property listings on Funda.nl, the largest Dutch real estate platform. Access prices, addresses, property details, and agent contact information across Dutch cities and neighbourhoods. Supports paginated browsing and bulk retrieval of listings by area.
jaap.nl API
Search and browse housing listings for sale or rent across the Netherlands with detailed property information including photos, characteristics, and agent details. Find homes by location using autocomplete suggestions and easily navigate through results with pagination.
Thuisbezorgd.nl API
Search for restaurants on Thuisbezorgd.nl by location and cuisine type. Retrieve delivery times, ratings, fees, and menu details for restaurants across the Netherlands, with support for address lookup and cuisine filtering.
drimble.nl API
Search and access detailed business information from Drimble.nl, including company addresses, SBI classifications, and activity descriptions. Find specific companies or browse listings to get comprehensive details about Dutch businesses.
pararius.com API
Search and browse rental property listings on Pararius.com. Filter by city, price, size, and furnishing; retrieve full property details; look up listings by estate agent; and autocomplete location queries.
Pararius.nl API
Search and browse rental properties across the Netherlands from Pararius.nl, with filtering by city and detailed property information including pricing, location, and amenities. Access paginated listings to easily discover available rentals that match your needs.
geoportail-urbanisme.gouv.fr API
Find parcel information and urban planning documents for any French address, instantly accessing zoning details, land use regulations, and planning requirements from the official Géoportail database. Search by address to discover property classifications, construction rules, and relevant urban planning documentation for your location.