Alles wat je moet weten over de Basisregistratie Adressen en Gebouwen (BAG): de structuur, objecttypen, actualiteit, en waarom het de beste bron is voor Nederlandse locatiedata.
De BAG (Basisregistratie Adressen en Gebouwen) is de ruggengraat van alle Nederlandse locatiedata. Als je werkt met adressen, gebouwen of geocoding in Nederland, kom je vroeg of laat in aanraking met de BAG. Maar wat is het precies? Hoe is het opgebouwd? En waarom is het zo belangrijk?
In deze uitgebreide gids nemen we je mee door alles wat je moet weten over de BAG: van de wettelijke basis tot praktische implementatie. Of je nu een ontwikkelaar bent die met adresdata werkt, of een data-analist die locatiegegevens verrijkt - na het lezen van dit artikel begrijp je waarom de BAG de gouden standaard is.
Wat is de BAG?
De Basisregistratie Adressen en Gebouwen is een van de tien officiële basisregistraties van de Nederlandse overheid. Deze registratie bevat gegevens over alle adressen en gebouwen in Nederland en wordt beheerd door gemeenten onder toezicht van het Kadaster.
Wettelijke basis
De BAG is vastgelegd in de Wet basisregistratie adressen en gebouwen (2008). Overheidsorganisaties zijn wettelijk verplicht de BAG te gebruiken - ze mogen geen eigen adresbestanden meer bijhouden.
Kerncijfers van de BAG
| Objecttype | Aantal (circa) | Beschrijving |
|---|---|---|
| Nummeraanduidingen | 9,8 miljoen | Unieke adressen (huisnummer + postcode) |
| Verblijfsobjecten | 9,5 miljoen | Zelfstandige ruimtes (woningen, kantoren) |
| Panden | 10,5 miljoen | Fysieke gebouwen |
| Openbare ruimten | 320.000 | Straten, pleinen, wegen |
| Woonplaatsen | 2.467 | Officieel erkende plaatsnamen |
| Standplaatsen | 23.000 | Locaties voor woonwagens |
| Ligplaatsen | 11.000 | Locaties voor woonboten |

De zeven objecttypen van de BAG
De BAG bestaat uit zeven verschillende objecttypen die samen een hiërarchische structuur vormen. Het begrijpen van deze structuur is essentieel voor het correct interpreteren van BAG-data:
1. Woonplaats
Een woonplaats is een door het gemeentebestuur aangewezen gedeelte van het grondgebied van de gemeente. Nederland telt 2.467 officiële woonplaatsen. Belangrijk: een woonplaats is niet hetzelfde als een gemeente - één gemeente kan meerdere woonplaatsen bevatten.
2. Openbare ruimte
Een openbare ruimte is een door het bevoegde gemeentelijke orgaan benoemde buitenruimte. Dit zijn voornamelijk straten, maar ook pleinen, parken en waterwegen. Elke openbare ruimte ligt binnen één woonplaats.
{"identificatie": "0363300000004052","naam": "Damrak","type": "Weg","status": "Naamgeving uitgegeven","woonplaatsIdentificatie": "3594","woonplaatsNaam": "Amsterdam"}
3. Nummeraanduiding
De nummeraanduiding is wat we in dagelijks taalgebruik een "adres" noemen: de combinatie van huisnummer, eventuele toevoeging, postcode en de openbare ruimte waaraan het ligt. Dit is het meest gebruikte objecttype voor geocoding.
{"identificatie": "0363200000467858","huisnummer": 1,"huisletter": null,"huisnummertoevoeging": null,"postcode": "1012LG","openbareRuimteNaam": "Damrak","woonplaatsNaam": "Amsterdam","status": "Naamgeving uitgegeven"}
4. Verblijfsobject
Een verblijfsobject is de kleinste eenheid waarin iemand kan wonen of werken. Het is een zelfstandige ruimte binnen een pand met een eigen toegang. Elk verblijfsobject heeft één of meer gebruiksdoelen (wonen, kantoor, winkel, etc.) en een oppervlakte.
| Gebruiksdoel | Beschrijving | Voorbeelden |
|---|---|---|
| Woonfunctie | Bestemd voor bewoning | Appartementen, huizen |
| Bijeenkomstfunctie | Bijeenkomsten van mensen | Kerken, theaters |
| Celfunctie | Dwangverblijf | Gevangenissen |
| Gezondheidszorgfunctie | Medische verzorging | Ziekenhuizen, klinieken |
| Industriefunctie | Fabricage | Fabrieken, werkplaatsen |
| Kantoorfunctie | Administratie | Kantoorgebouwen |
| Logiesfunctie | Tijdelijk verblijf | Hotels, pensions |
| Onderwijsfunctie | Onderwijs | Scholen, universiteiten |
| Sportfunctie | Sport beoefenen | Sportscholen, stadions |
| Winkelfunctie | Detailhandel | Winkels, supermarkten |
| Overige gebruiksfunctie | Overige doeleinden | Parkeergarages |
5. Pand
Een pand is de kleinste, bij de totstandkoming functioneel en bouwkundig-constructief zelfstandige eenheid. In gewone taal: een gebouw. Eén pand kan meerdere verblijfsobjecten bevatten (denk aan een flatgebouw met 100 appartementen).
Pand vs. Verblijfsobject
Een veelgemaakte fout is panden verwarren met verblijfsobjecten. Een pand is het fysieke gebouw, een verblijfsobject is een zelfstandige ruimte daarbinnen. Een woonhuis is vaak 1 pand met 1 verblijfsobject, maar een flat kan 1 pand zijn met 200 verblijfsobjecten.
6. Standplaats
Een standplaats is een formeel door de gemeente aangewezen terrein voor het plaatsen van een woonwagen. Nederland telt ongeveer 23.000 standplaatsen. Een standplaats heeft een eigen adres (nummeraanduiding) maar geen pand.
7. Ligplaats
Een ligplaats is een formeel aangewezen plaats in het water voor het afmeren van een woonboot. Er zijn ongeveer 11.000 ligplaatsen in Nederland, vooral in Amsterdam, Utrecht en andere watersteden. Net als standplaatsen hebben ligplaatsen een adres maar geen pand.
Hoe de BAG wordt bijgehouden
De BAG wordt gedecentraliseerd bijgehouden door alle 342 Nederlandse gemeenten. Elke gemeente is bronhouder voor de objecten binnen haar grenzen. Het Kadaster fungeert als Landelijke Voorziening (LV BAG) en verzamelt de gemeentelijke gegevens in één centrale database.

Het update-proces
- Mutatie bij gemeente: Bij nieuwbouw, verbouw, sloop of adreswijziging voert de gemeente een mutatie door
- Kwaliteitscontrole: De gemeentelijke BAG-applicatie valideert de gegevens
- Upload naar LV BAG: Binnen 4 werkdagen moet de mutatie bij het Kadaster zijn
- Verwerking door Kadaster: Het Kadaster verwerkt de mutatie in de landelijke voorziening
- Beschikbaar via API's: De gewijzigde data is direct beschikbaar via de BAG API
Actualiteit
De BAG is verrassend actueel. De meeste mutaties zijn binnen enkele dagen verwerkt. Bij grote nieuwbouwprojecten worden adressen vaak al vóór oplevering aangemaakt, zodat ze direct beschikbaar zijn voor postbezorging.
BAG vs. andere databronnen
Er zijn meerdere bronnen voor Nederlandse adresdata. Hoe verhoudt de BAG zich tot alternatieven?

| Aspect | BAG | PostNL | Google Maps | OpenStreetMap |
|---|---|---|---|---|
| Officiële status | Wettelijk verplicht | Commercieel | Commercieel | Community |
| Actualiteit | Dagelijks | Maandelijks | Variabel | Variabel |
| Dekking NL | 100% | ~99% | ~98% | ~95% |
| Nauwkeurigheid | Meter-niveau | Postcode-niveau | Variabel | Variabel |
| Kosten | Gratis (open data) | Betaald | Betaald | Gratis |
| Gebouwinformatie | Ja (uitgebreid) | Nee | Beperkt | Beperkt |
| Historische data | Ja | Nee | Nee | Beperkt |
Waarom BAG de beste keuze is
- Officieel en betrouwbaar: De enige bron met wettelijke status. Overheidsinstanties zijn verplicht BAG-data te gebruiken.
- 100% dekking: Elk adres in Nederland zit in de BAG, van nieuwbouwwijken tot afgelegen boerderijen.
- Nauwkeurige coördinaten: Coördinaten zijn op meter-niveau, niet postcode-centroïdes.
- Rijke metadata: Bouwjaar, oppervlakte, gebruiksdoel, status - allemaal beschikbaar.
- Open data: Gratis te gebruiken, ook voor commerciële doeleinden.
- Historische data: Wijzigingen worden bijgehouden, je kunt terugkijken in de tijd.
BAG-identificatienummers begrijpen
Elk object in de BAG heeft een uniek 16-cijferig identificatienummer. Dit nummer bevat waardevolle informatie:
// BAG-identificatie: 0363010000567823// Structuur: GGGGTTNNNNNNNNNNfunction parseBagId(bagId) {return {gemeenteCode: bagId.substring(0, 4), // "0363" = AmsterdamobjectType: bagId.substring(4, 6), // "01" = Verblijfsobjectvolgnummer: bagId.substring(6, 16) // "0000567823"};}// Objecttype codes:// 01 = Verblijfsobject// 02 = Ligplaats// 03 = Standplaats// 10 = Pand// 20 = Nummeraanduiding// 30 = Openbare ruimte
BAG-ID als primaire sleutel
Gebruik het BAG-identificatienummer als primaire sleutel in je database. Het is gegarandeerd uniek en stabiel - veel betrouwbaarder dan postcode + huisnummer.
BAG-data gebruiken met de GeoRex API
GeoRex gebruikt de BAG als primaire databron en verrijkt deze met extra gegevens. Je kunt eenvoudig BAG-gegevens opvragen:
// Token ophalenconst tokenResponse = await fetch('https://api.georex.nl/api/token', {method: 'POST',headers: { 'X-API-Key': 'gx_live_your_key' }});const { token } = await tokenResponse.json();// Adres opzoeken met uitgebreide BAG-infoconst response = await fetch(`https://api.georex.nl/address?postcode=1012LG&huisnummer=1&token=${token}`);const data = await response.json();if (data.features.length > 0) {const props = data.features[0].properties;console.log('Straat:', props.street); // "Damrak"console.log('Huisnummer:', props.housenumber); // "1"console.log('Postcode:', props.postcode); // "1012 LG"console.log('Woonplaats:', props.city); // "Amsterdam"console.log('Coördinaten:', data.features[0].geometry.coordinates);}
Batch-verwerking van adressen
Voor het verwerken van grote aantallen adressen kun je de batch-endpoint gebruiken:
import requestsimport timedef get_token(api_key: str) -> str:"""Haal een API token op."""response = requests.post('https://api.georex.nl/api/token',headers={'X-API-Key': api_key})return response.json()['token']def batch_geocode(addresses: list, token: str) -> list:"""Geocodeer een batch adressen.De GeoRex API ondersteunt tot 100 adressen per batch."""results = []for address in addresses:response = requests.get('https://api.georex.nl/address',params={'postcode': address['postcode'],'huisnummer': address['huisnummer'],'token': token})if response.status_code == 200:data = response.json()if data['features']:results.append({'input': address,'result': data['features'][0],'success': True})else:results.append({'input': address,'result': None,'success': False,'error': 'Adres niet gevonden'})# Rate limiting respecterentime.sleep(0.1)return results# Gebruiktoken = get_token('gx_live_your_key')addresses = [{'postcode': '1012LG', 'huisnummer': '1'},{'postcode': '1017CT', 'huisnummer': '42'},{'postcode': '3011AD', 'huisnummer': '100'}]results = batch_geocode(addresses, token)
Veelvoorkomende use cases
Adresvalidatie
Controleer of een ingevoerd adres daadwerkelijk bestaat in de BAG:
async function validateAddress(postcode, huisnummer, token) {const response = await fetch(`https://api.georex.nl/address?postcode=${postcode}&huisnummer=${huisnummer}&token=${token}`);const data = await response.json();if (data.features.length === 0) {return {valid: false,error: 'Dit adres bestaat niet in de BAG'};}const found = data.features[0].properties;return {valid: true,normalized: {street: found.street,housenumber: found.housenumber,postcode: found.postcode,city: found.city}};}// Gebruik in een formulierconst result = await validateAddress('1012LG', '1', token);if (!result.valid) {showError('Ongeldig adres: ' + result.error);} else {// Gebruik het genormaliseerde adresform.street.value = result.normalized.street;form.city.value = result.normalized.city;}
Data-verrijking
Verrijk je klantdatabase met locatiegegevens:
- Coördinaten toevoegen: Voor kaartweergave en afstandsberekeningen
- Adressen normaliseren: Consistente schrijfwijze (Singel vs singel)
- Woonplaats/gemeente: Voor regionale analyses
- Validatie markeren: Welke adressen zijn BAG-gevalideerd?
BAG-statussen begrijpen
Objecten in de BAG hebben een status die hun levenscyclus weergeeft. Bij geocoding is het belangrijk alleen actieve statussen te gebruiken:
| Status | Betekenis | Gebruiken voor geocoding? |
|---|---|---|
| Naamgeving uitgegeven | Actief adres | Ja |
| Naamgeving ingetrokken | Adres bestaat niet meer | Nee |
| Bouw gestart | Nieuwbouw in aanbouw | Afhankelijk van use case |
| Pand in gebruik | Actief gebouw | Ja |
| Pand gesloopt | Gebouw is gesloopt | Nee |
| Verblijfsobject in gebruik | Actieve woning/ruimte | Ja |
| Verblijfsobject ingetrokken | Niet meer in gebruik | Nee |
Let op bij nieuwbouw
Adressen in nieuwbouwwijken hebben soms de status "Naamgeving uitgegeven" terwijl de woning nog niet is opgeleverd. De GeoRex API retourneert standaard alleen actieve adressen.
Veelgestelde vragen
Hoe actueel is de BAG?
Gemeenten zijn verplicht mutaties binnen 4 werkdagen door te voeren. In de praktijk zijn de meeste wijzigingen binnen 1-2 dagen verwerkt. De GeoRex API synchroniseert dagelijks met de landelijke voorziening.
Wat als een adres niet in de BAG staat?
Als een Nederlands adres niet in de BAG voorkomt, zijn er drie mogelijkheden: (1) het adres is foutief gespeld, (2) het is zeer recente nieuwbouw die nog niet is geregistreerd, of (3) het is een onofficieel adres (bijv. een bedrijfsnaam in plaats van straatnaam).
Kan ik de BAG zelf downloaden?
Ja, de BAG is open data. Je kunt de volledige dataset downloaden via PDOK (Publieke Dienstverlening Op de Kaart). Houd er rekening mee dat de ruwe dataset complex is en regelmatige updates vereist. Voor de meeste use cases is een API als GeoRex praktischer.
Samenvatting
De BAG is de officiële, meest complete en actuele bron voor Nederlandse adres- en gebouwdata. De belangrijkste punten:
- Wettelijke basis: De BAG is de enige officiële adresregistratie van Nederland
- Zeven objecttypen: Woonplaatsen, openbare ruimten, nummeraanduidingen, verblijfsobjecten, panden, standplaatsen en ligplaatsen
- Decentraal beheer: 342 gemeenten als bronhouder, Kadaster als centrale voorziening
- Hoge actualiteit: Mutaties worden binnen dagen verwerkt
- Open data: Gratis beschikbaar voor iedereen
- Ideaal voor geocoding: Combinatie van adressen én nauwkeurige coördinaten
Door de BAG als basis te gebruiken, garandeert GeoRex de meest betrouwbare geocoding resultaten voor Nederlandse adressen.
Aan de slag
Wil je zelf met BAG-data werken? Vraag een gratis API key aan en test de GeoRex API met je eigen adressen. De gratis tier biedt 1.000 requests per maand.
Gerelateerde artikelen

Van adres naar coördinaten: een complete handleiding
Een uitgebreide stap-voor-stap handleiding voor het converteren van Nederlandse adressen naar GPS-coördinaten, inclusief edge cases en validatie.
Lees meer
Python scripts voor bulk adresverwerking
Verwerk duizenden adressen efficiënt met Python, Pandas en async requests. Complete scripts voor data cleaning en geocoding.
Lees meer
Postcodes in Nederland: de complete gids over het PC4 en PC6 systeem
Alles wat je moet weten over het Nederlandse postcodesysteem: de structuur van PC4 en PC6, hoe postcodes zijn opgebouwd, en praktische tips voor geocoding en data-analyse.
Lees meer