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=1Een 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 zoalsAofbis.
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
postcodewordt 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" | jqVoorbeeld: 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.