Skip to content

Adresvalidatie

Met adresvalidatie kun je voorkomen dat gebruikers foutieve adressen invoeren. Onze API controleert of een combinatie van postcode en huisnummer bestaat en geeft gestructureerde adresgegevens terug.

Voorbeeld (postcode + huisnummer)

http
GET /api/address?postcode=1017XN&huisnummer=1

Een succesvolle response bevat straat, buurt, plaats en coördinaten. Bij geen resultaat geven we suggesties terug of een foutmelding.

Best practices

  • Normaliseer postcodes (4 cijfers + 2 letters) en uppercase de letters.
  • Valideer lokaal input-formaat voordat je een request doet om onnodige calls te vermijden.

Extra informatie

Adresvalidatie is cruciaal voor leveringen, facturatie en data-integriteit. Onze API biedt eenvoudige endpoints om te controleren of een combinatie van postcode en huisnummer bestaat en om volledige adresgegevens terug te geven.

Endpoint

GET /api/address?postcode={postcode}&huisnummer={huisnummer}[&toevoeging={toevoeging}]

Parameters

  • postcode (verplicht): genormaliseerd als 4 cijfers gevolgd door 2 letters (bijv. 1017XN).
  • huisnummer (verplicht): het huisnummer, bijv. 42.
  • toevoeging (optioneel): toevoeging zoals A of bis.

Succesvolle response

Een succesvolle aanvraag retourneert een object met gestructureerde adresgegevens:

json
{
	"postcode": "1017XN",
	"huisnummer": "42",
	"straat": "Frederiksplein",
	"buurt": "Frederikspleinbuurt",
	"wijk": "De Weteringschans",
	"woonplaats": "Amsterdam",
	"gemeente": "Amsterdam",
	"provincie": "Noord-Holland",
	"latitude": 52.35999,
	"longitude": 4.898108
}

Foutgevallen en suggesties

  • Als alleen postcode wordt opgegeven en er is geen exact huisnummer, retourneert de API:
json
{
	"error": "Huisnummer not found",
	"suggestions": ["26A", "26B", "28", "30", ...]
}
  • Wanneer de postcode niet bestaat:
json
{ "error": "Postcode not found" }

Voorbeeld: curl

bash
curl -s "https://openpostcode.nl/api/address?postcode=1017XN&huisnummer=42" | jq

Voorbeeld: JavaScript (fetch)

js
async function validate(postcode, huisnummer, toevoeging = '') {
	let url = `/api/address?postcode=${encodeURIComponent(postcode)}&huisnummer=${encodeURIComponent(huisnummer)}`
	if (toevoeging) url += `&toevoeging=${encodeURIComponent(toevoeging)}`
	const res = await fetch(url)
	const data = await res.json()
	if (!res.ok) throw new Error(data.error || 'Onbekende fout')
	return data
}

validate('1017XN', '42').then(console.log).catch(console.error)

Best practices

  • Normaliseer de postcode client-side: verwijder spaties, maak letters uppercase, en zorg dat het formaat 4 cijfers + 2 letters is.
  • Valideer lokaal op simpele regels (postcode lengte, alleen cijfers/letters) voordat je een request doet om onnodige calls te vermijden.
  • Caching: cache positieve resultaten voor veelgebruikte postcodes om API-calls te beperken.

FAQ (kort)

  • Vraag: Werkt dit ook voor buitenlandse adressen?
  • Antwoord: Nee — de database bevat alleen Nederlandse postcodes.