De BAG is op vier manieren open te halen. De BAG API Individuele Bevragingen levert actuele gegevens van enkele objecten, maar vraagt een gratis API-key. De BAG OGC API van PDOK werkt zonder key en past bij kaartselecties. BAG Extract en BAG GeoPackage zijn bedoeld voor bulk. De data valt onder Public Domain Mark 1.0.

Laatst bijgewerkt:

Welke BAG-route past bij welke taak?

De Basisregistratie Adressen en Gebouwen (BAG) bevat adressen, panden, verblijfsobjecten, ligplaatsen, standplaatsen en woonplaatsen. Het Kadaster beheert de Landelijke Voorziening (LV-BAG) en levert er meerdere producten uit. De keuze hangt af van drie vragen. Hoeveel objecten hebt u nodig, hoe actueel moet het zijn en wilt u eerst een sleutel aanvragen?

BAG-routes naast elkaar, gelezen op 11 oktober 2026
RouteAPI-key of accountBedoeld voorActualiteitFormaat
BAG API Individuele BevragingenAPI-key, gratis aan te vragen1 of enkele objecten, direct gebruikNear realtimeJSON (HAL)
BAG OGC API (PDOK, v2)GeenKaartselecties en detailopvraag per objectDagelijks (volgens PDOK)GeoJSON, JSON-FG, vector tiles
BAG GeoPackage (PDOK)GeenEigen GIS-database, selectie van huidige gegevensNieuwe versie elke 1e van de maandGeoPackage
BAG Extract, heel Nederland gratisGeen, handmatige downloadVolledige kopie incl. historieNieuw bestand op de 8e van de maandXML
BAG Extract met mutatiesMijn Kadaster-account, abonnementEigen database actueel houdenMaandelijks of dagelijksXML

De licentie is voor alle routes gelijk. Het Kadaster schrijft dat BAG-data open data zijn en dat de Creative Commons Public Domain Mark 1.0 geldt. Hoe dat zich verhoudt tot andere licenties staat op de pagina over open data-licenties.

Wat vraagt de BAG API Individuele Bevragingen van u?

Deze API is gratis, maar niet anoniem. U vraagt een API-key aan met het formulier van het Kadaster en stuurt die mee in de header X-Api-Key. De OpenAPI-beschrijving (versie 2.9.2) noemt als basis-URL https://api.bag.kadaster.nl/lvbag/individuelebevragingen/v2. Het Kadaster biedt geen aparte testomgeving; testen gebeurt op productie.

Zonder key antwoordt de service op 11 oktober 2026 met status 401 en de tekst "Missing API Key". De OpenAPI-beschrijving noemt voor een ongeldige key status 403 en beschrijft ook 429 voor overschrijding van de limiet.

De API is expliciet niet bedoeld voor bulkbevragingen waarmee veel gegevens in 1 keer worden opgevraagd en in een database worden verwerkt.

Bron: Kadaster, Richtlijnen voor het gebruik van de BAG API Individuele Bevragingen.

Gebruikslimieten en beschikbaarheid van de BAG API Individuele Bevragingen (Kadaster, gelezen op 11 oktober 2026)
OnderwerpWaarde
Bevragingen per dagmaximaal 50.000
Bevragingen per secondemaximaal 50
Beschikbaarheid98,5% op werkdagen van 7.00 tot 18.00 uur
Resultaten per paginastandaard 20, maximaal 100 (pageSize)
Kostengratis; maatwerk op offertebasis bij structureel hoger gebruik

Hoe ziet een aanroep met API-key eruit?

Het voorbeeld hieronder is niet door ons uitgevoerd, omdat TechinFlow geen key voor deze API heeft gebruikt. De parameternamen komen uit de OpenAPI-beschrijving van het Kadaster. Het endpoint /adressen ondersteunt onder meer zoeken op postcode en huisnummer, op woonplaats, straat en huisnummer, of op de identificatie van een adresseerbaar object of pand.

curl -s -G "https://api.bag.kadaster.nl/lvbag/individuelebevragingen/v2/adressen" \
  -H "X-Api-Key: $BAG_API_KEY" \
  --data-urlencode "woonplaatsNaam=Amersfoort" \
  --data-urlencode "openbareRuimteNaam=Stationsplein" \
  --data-urlencode "huisnummer=12" \
  --data-urlencode "exacteMatch=true"

Het antwoord is een HAL-collectie met de adressen onder _embedded.adressen. Een adres bevat volgens het schema onder meer openbareRuimteNaam, huisnummer, postcode, woonplaatsNaam, nummeraanduidingIdentificatie, adresseerbaarObjectIdentificatie en pandIdentificaties. Met expand haalt u in één aanroep ook de gerelateerde objecten op.

Zet de key in een omgevingsvariabele of een secrets-beheer en roep de API vanaf uw server aan. Een key in browsercode is voor iedereen leesbaar. Hoe u zo'n koppeling inricht, staat bij API-koppelingen.

Hoe vraagt u BAG-gegevens op zonder API-key?

De BAG OGC API van PDOK vraagt geen key. De collecties op 11 oktober 2026 zijn adres, ligplaats, pand, standplaats, verblijfsobject en woonplaats. Het voorbeeld hieronder zet een adres om naar BAG-identificaties via de Locatieserver (zie PDOK Locatieserver en Location API) en haalt daarna het verblijfsobject en het pand op. Het is op 11 oktober 2026 met Node 24 gedraaid.

const LS = 'https://api.pdok.nl/bzk/locatieserver/search/v3_1/free';
const BAG = 'https://api.pdok.nl/kadaster/bag/ogc/v2';

async function json(url) {
  const res = await fetch(url);
  if (!res.ok) throw new Error(`${res.status} voor ${url}`);
  return res.json();
}

// 1. adres naar BAG-identificaties (Locatieserver)
const q = new URLSearchParams({ q: 'Stationsplein 12 Amersfoort', fq: 'type:adres', fl: 'adresseerbaarobject_id', rows: '1' });
const { response } = await json(`${LS}?${q}`);
const vboId = response.docs[0].adresseerbaarobject_id;

// 2. verblijfsobject uit de BAG OGC API, gefilterd op identificatie
const vbo = (await json(`${BAG}/collections/verblijfsobject/items?f=json&identificatie=${vboId}`)).features[0];
console.log(vbo.properties.status, '-', vbo.properties.oppervlakte, 'm2 -', vbo.properties.gebruiksdoel);

// 3. het pand via de href in het antwoord
const pand = await json(vbo.properties['pand.href'][0] + '?f=json');
console.log('pand', pand.properties.identificatie, 'bouwjaar', pand.properties.bouwjaar, pand.properties.status);

Uitvoer:

Verblijfsobject in gebruik - 8 m2 - overige gebruiksfunctie
pand 0307100000595635 bouwjaar 2024 Pand in gebruik

Het verblijfsobject heeft de identificatie 0307010000595643 en een eigenschap pand.href met de URL van het bijbehorende pand. Zo blijft elk antwoord klein en navigeert u zelf langs de relaties.

Panden in een kaartvenster opvragen

Voor een kaartselectie gebruikt u de parameter bbox. Standaard staat die in WGS84. Met bbox-crs geeft u RD op, en met crs vraagt u het antwoord in RD. De collectie ondersteunt CRS84, RD (EPSG:28992), Web Mercator en ETRS89 (EPSG:4258), met RD als opslagstelsel.

curl -s -G "https://api.pdok.nl/kadaster/bag/ogc/v2/collections/pand/items" \
  -d f=json -d limit=5 \
  --data-urlencode "bbox=154150,462680,154250,462760" \
  --data-urlencode "bbox-crs=http://www.opengis.net/def/crs/EPSG/0/28992"

Dit gaf op 11 oktober 2026 vijf panden terug, onder meer 0307100000308303 en 0307100000311531. De parameter limit heeft volgens de OpenAPI-beschrijving een standaard van 10 en een maximum van 1.000. Voor meer resultaten volgt u de link met rel="next", die een cursor bevat.

De queryables van de collecties pand en adres bestaan alleen uit geometry en identificatie. Filteren op straatnaam of bouwjaar in de API zelf werkt dus niet. Een CQL-filter op woonplaats_naam gaf status 400. Zoek daarom eerst een identificatie via de Locatieserver, of selecteer ruimtelijk en filter in uw eigen code. Een zoekformulier op adres bouwt u dus niet direct op de OGC API.

Wat zijn de valkuilen bij de BAG?

  • Postcode ontbreekt in het verblijfsobject. Het verblijfsobject voor Stationsplein 12 gaf postcode: null. De postcode hoort bij de nummeraanduiding; haal die op via de collectie adres of via de BAG API.
  • Het pand uit 2024 komt niet overal voor. Het pand bij Stationsplein 12 heeft bouwjaar 2024 en stond op 11 oktober 2026 wel in de BAG OGC API, maar niet in de 3D BAG. Elke afgeleide dataset loopt een eigen tempo achter.
  • PDOK toont niet alle adressen. De PDOK-beschrijving meldt dat de services alleen het hoofdadres opnemen. Objecten met nevenadressen zijn dan niet compleet. Het Kadaster noemt hetzelfde voor de BAG GeoPackage, waar maximaal één pand per verblijfsobject en één adres per adresseerbaar object zit.
  • Historische fouten blijven zichtbaar. Het historiemodel bewaart alle voorkomens. In het BAG Extract vindt u dus ook oude fouten, tenzij u filtert op actuele voorkomens.
  • Verkeerde route voor bulk. Wie de hele BAG nodig heeft en 50.000 verzoeken per dag niet haalt, kiest het Extract of de GeoPackage. Zie ook PDOK fair use en caching.

Wanneer is de BAG niet de goede bron?

De BAG bevat adressen en gebouwen, geen kadastrale percelen; die horen bij de BRK en kadastrale kaart. Voor de begrenzing van wegen, water en groen op grote schaal gebruikt u de BGT. Voor gebouwhoogte hebt u de 3D BAG nodig. Voor statistiek per buurt gebruikt u de CBS Wijken en Buurten.

Een BAG-adres controleren zonder code kan met de BAG-adrescheck. Uitgewerkte voorbeelden van eigen registers die aan de BAG hangen zijn de monumentenkaart (monumenten gekoppeld aan adres en pand), de kaart van afvalcontainers en het begraafplaatsregister (adres van de ingang en panden zoals een aula). Wilt u BAG-data publiceren naast eigen gegevens, bijvoorbeeld in een gemeentelijke kaartviewer, dan helpt een open data-platform of een GIS-viewer voor gemeenten. Een foutief adres meldt u bij de bronhouder; het proces staat bij terugmelden bij basisregistraties.

Veelgestelde vragen

Heb ik een API-key nodig om de BAG te gebruiken?

Alleen voor de BAG API Individuele Bevragingen van het Kadaster. Die key is gratis. De BAG OGC API van PDOK, de BAG GeoPackage en het gratis BAG Extract voor heel Nederland vragen geen key. Voor Extract-abonnementen met mutaties hebt u een Mijn Kadaster-account nodig.

Hoeveel verzoeken mag ik per dag doen?

Voor de BAG API Individuele Bevragingen geldt maximaal 50.000 bevragingen per dag en 50 per seconde, volgens de richtlijnen van het Kadaster. Voor de PDOK OGC API is geen limiet gevonden, maar PDOK noemt de service ook geen onbeperkt kanaal. Bouw caching in en gebruik voor bulk een download.

Wat kost het BAG Extract?

Het Extract voor heel Nederland is gratis te downloaden en wordt op de 8e van elke maand vernieuwd. Voor abonnementen met mutaties vermeldt het Kadaster op 11 oktober 2026 een eenmalig bedrag van 219 euro en maandbedragen van 14,50 of 219 euro. Overheden gebruiken het Extract gratis via budgetfinanciering.

Is de BAG OGC API van PDOK actueel genoeg voor een webtoepassing?

PDOK meldt dat de service dagelijks wordt geactualiseerd. Dat volstaat voor kaartweergave, adresopzoeking en de meeste formulieren. Voor een besluit of een juridisch bindende check vraagt u de BAG API Individuele Bevragingen, die near realtime data levert, of u controleert het gegeven bij de gemeente als bronhouder. Houd er rekening mee dat PDOK alleen hoofdadressen toont.

Kan ik alle adressen van een gemeente met de OGC API ophalen?

Technisch kan dat met paginering, maar het is niet de bedoeling en het is traag. Er is geen filter op gemeente; u selecteert met een bbox. Gebruik voor een hele gemeente de gratis BAG GeoPackage of het gratis Extract voor heel Nederland en filter lokaal. Een los gemeente-Extract kost volgens het Kadaster 219 euro per levering, behalve voor overheden.

Bronnen

Meer over TechinFlow

Een nieuw bureau in Haarlem voor maatwerk software, GIS en dataplatforms op open standaarden.

023 230 21 42Neem contact op

Een vraag of opdracht?

Vertel kort wat er speelt en voor welke organisatie. We reageren per e-mail.

Stuur een bericht