Tutorials2 januari 2025

BAG data gebruiken in je applicatie: een praktische handleiding

Leer hoe je Nederlandse BAG (Basisregistratie Adressen en Gebouwen) data integreert in je applicatie met praktische voorbeelden.

BAGAPItutorialJavaScriptPython

BAG data gebruiken in je applicatie

De Basisregistratie Adressen en Gebouwen (BAG) bevat essentiële informatie over elk gebouw in Nederland. In deze handleiding laten we zien hoe je deze data kunt integreren in je applicatie.

Wat kun je met BAG data?

Met BAG data kun je onder andere:

  • Adres validatie - Controleer of een adres bestaat en correct is
  • Gebouwinformatie - Toon bouwjaar, oppervlakte en status
  • Geocoding - Vind coördinaten bij een adres
  • Reverse geocoding - Vind adressen bij coördinaten

Aan de slag met de API

Stap 1: API key verkrijgen

Registreer eerst voor een gratis account om een API key te ontvangen.

Stap 2: Je eerste request

Hier is een eenvoudig voorbeeld om gebouwinformatie op te halen:

const API_KEY = 'your_api_key_here';

async function getBuilding(bagId) {
  const response = await fetch(
    `https://api.opendataapi.nl/v1/buildings/${bagId}`,
    {
      headers: {
        'Authorization': `Bearer ${API_KEY}`,
        'Content-Type': 'application/json'
      }
    }
  );
  
  return response.json();
}

// Voorbeeld gebruik
const building = await getBuilding('0363100012168052');
console.log(`Bouwjaar: ${building.bouwjaar}`);
console.log(`Oppervlakte: ${building.oppervlakte} m²`);

Stap 3: Zoeken op adres

Je kunt ook zoeken op adresgegevens:

async function searchByAddress(postcode, huisnummer) {
  const params = new URLSearchParams({
    postcode,
    huisnummer
  });
  
  const response = await fetch(
    `https://api.opendataapi.nl/v1/buildings/search?${params}`,
    {
      headers: {
        'Authorization': `Bearer ${API_KEY}`
      }
    }
  );
  
  const data = await response.json();
  return data.results;
}

// Zoek gebouwen op een specifiek adres
const results = await searchByAddress('1012JS', '1');

Python voorbeeld

Voor Python gebruikers:

import requests
import os

API_KEY = os.environ.get('OPENDATAAPI_KEY')
BASE_URL = 'https://api.opendataapi.nl/v1'

def get_building(bag_id: str) -> dict:
    response = requests.get(
        f'{BASE_URL}/buildings/{bag_id}',
        headers={'Authorization': f'Bearer {API_KEY}'}
    )
    response.raise_for_status()
    return response.json()

# Gebruik
building = get_building('0363100012168052')
print(f"Adres: {building.get('adres')}")

Best practices

  1. Cache responses - BAG data verandert niet vaak, dus cache waar mogelijk
  2. Error handling - Implementeer goede foutafhandeling voor API errors
  3. Rate limiting - Respecteer de rate limits van je plan
  4. Server-side calls - Maak API calls vanaf je server, niet de browser

Volgende stappen

Nu je de basis kent, kun je verder leren over:

Heb je vragen? Neem contact met ons op!

Meer lezen?

Bekijk onze andere artikelen of verdiep u in de documentatie.