Algemeen

Wat is PostcodeConnect?

PostcodeConnect is een API voor Nederlandse adres-, postcode-, woonplaats-, buurt-, wijk- en geodata. Je gebruikt de API bijvoorbeeld voor adresvalidatie, formulieren, CRM-systemen, backofficeprocessen en kaarttoepassingen.

Welke data levert de API terug?

Afhankelijk van het endpoint levert de API onder andere straatnaam, huisnummer, huisletter, toevoeging, postcode, woonplaats, gemeente, buurt, wijk, latitude, longitude en polygoninformatie terug.

Hoe actueel is de data?

De data wordt periodiek bijgewerkt. In veel responses staat db_updated, zodat je kunt zien van welke datasetversie de response afkomstig is.

Voor welke toepassingen kan ik PostcodeConnect gebruiken?

Je kunt PostcodeConnect gebruiken voor adresaanvulling in formulieren, postcodechecks, bezorggebieden, kaartselecties, CRM-verrijking, leadvalidatie en interne controles op adressen.

Ondersteunt de API alleen Nederlandse adressen?

Ja, de API is gericht op Nederlandse postcodes, adressen, woonplaatsen, gemeenten, buurten en wijken.

Zijn data-updates en hosting inbegrepen?

Ja, hosting en reguliere data-updates zijn inbegrepen bij de dienst.

API en authenticatie

Hoe gebruik ik mijn API-key?

Stuur je API-key altijd mee via de HTTP-header Authorization met Bearer voor de key. Zet je API-key niet in de URL en niet in openbare frontend-code.

Kan ik de API-key via de URL meesturen?

Nee. API-keys via URL-parameters zoals ?key=... of ?api_key=... worden niet aanbevolen en kunnen server-side worden geblokkeerd. Gebruik altijd de header Authorization: Bearer JOUW_API_KEY.

Kan ik de API rechtstreeks vanuit browser-JavaScript gebruiken?

Dat raden we af, omdat je API-key dan zichtbaar wordt voor bezoekers. Gebruik liever je eigen backend als proxy: je frontend praat met jouw server, en jouw server praat met PostcodeConnect.

Welke endpoints zijn beschikbaar?

De API bevat onder andere lookupzip, getaddressbylatlong, getstreetsautocomplete, gethousenumbers, getpostcodepolygon, getdistance, lookupcity, getcities, lookupareas en polygonsearch.

Waar vind ik codevoorbeelden?

Op de documentatiepagina staat een codegenerator. Daar kies je een endpoint en taal, zoals cURL, PHP, Python, Node.js, C#, Java, Go, Ruby, Laravel, WordPress, PowerShell, Postman of Make.com/Zapier.

Welke HTTP-methode moet ik gebruiken?

De meeste endpoints werken met GET. Voor polygonsearch gebruik je POST, omdat de polygon als GeoJSON in de request-body wordt meegestuurd.

Welke response-indeling gebruikt de API?

De API geeft JSON terug. Stuur bij voorkeur Accept: application/json mee en verwerk de response als JSON-object in je applicatie.

Kan ik de API testen met Postman?

Ja. Maak een request naar het gewenste endpoint en voeg bij Headers Authorization toe met de waarde Bearer JOUW_API_KEY. Zet de key niet in de URL.

Calls, limieten en resultaten

Wat kost één API-request?

Elke request telt als 1 call. Dat geldt ook als er geen resultaat wordt gevonden, als er meerdere resultaten worden teruggegeven of als je een volgende pagina met resultaten ophaalt.

Hoeveel resultaten krijg ik maximaal per request?

Endpoints die meerdere resultaten teruggeven tonen maximaal 250 resultaten per request, tenzij bij een specifiek endpoint een lagere limiet geldt. Voor meer resultaten gebruik je paginatie.

Hoe haal ik meer dan 250 resultaten op?

Gebruik de velden has_more, next_offset of last uit de response. Daarmee kun je een volgende request doen voor de volgende pagina. Elke pagina telt opnieuw als 1 call.

Wat gebeurt er als ik mijn limiet overschrijd?

Als je limiet of quota is overschreden, worden requests afgewezen met een foutresponse zoals rate_or_quota_exceeded. Bij 80% verbruik ontvang je een waarschuwing per e-mail.

Wat betekent rate limiting?

Rate limiting beperkt hoeveel requests per seconde kunnen worden gedaan. Dit beschermt de API tegen piekbelasting en voorkomt dat een integratie per ongeluk te veel requests tegelijk verstuurt.

Worden gecachete responses ook als call gerekend?

Ja. Een request telt als call, ook wanneer de response snel uit cache wordt geleverd.

Kost een request zonder resultaat ook een call?

Ja. De API heeft het request verwerkt, daarom telt ook een lege response of not_found-resultaat als 1 call.

Waarom is er een limiet van 250 resultaten per request?

Die limiet houdt responses snel en stabiel. Grote datasets kun je gecontroleerd ophalen met paginatie, zodat je applicatie en de API niet onnodig zwaar worden belast.

Kan ik zelf minder dan 250 resultaten opvragen?

Ja, bij endpoints die een limit-parameter ondersteunen kun je een lagere limiet meegeven. De API begrenst de waarde automatisch op het maximaal toegestane aantal.

Wat is het verschil tussen offset en after_id?

offset slaat een aantal resultaten over. after_id vraagt resultaten op na een laatst ontvangen ID. Als een endpoint last of after_id teruggeeft, is dat meestal de beste manier om verder te bladeren.

Endpoints en gebruik

Welk endpoint gebruik ik voor adresvalidatie?

Gebruik lookupzip als je postcode en huisnummer hebt. Gebruik autocomplete-endpoints als je gebruikers eerst straat, plaats en huisnummer wilt laten kiezen.

Kan ik zoeken op latitude en longitude?

Ja, gebruik getaddressbylatlong. Dit endpoint zoekt het dichtstbijzijnde adres bij een opgegeven coördinaat.

Kan ik adressen binnen een polygon zoeken?

Ja, gebruik polygonsearch. De polygon mag maximaal 5 x 5 km groot zijn en maximaal 25 km² beslaan. Per request worden maximaal 250 resultaten teruggegeven.

Kan ik buurt- en wijkpolygonen ophalen?

Ja, met lookupareas haal je buurten en wijken binnen een woonplaats op, inclusief polygoninformatie in WKT.

Kan ik een polygon van een postcodegebied maken?

Ja, gebruik getpostcodepolygon. Dit endpoint maakt een benaderde polygon op basis van adrespunten binnen een volledige postcode of viercijferig postcodegebied.

Kan ik de afstand tussen twee adressen berekenen?

Ja, gebruik getdistance. Dit geeft de hemelsbrede afstand terug in meters en kilometers.

Kan ik straten automatisch laten aanvullen?

Ja, gebruik getstreetsautocomplete. Dit endpoint is bedoeld voor zoekvelden waarbij een gebruiker een straatnaam en eventueel woonplaats begint te typen.

Kan ik huisnummers bij een straat ophalen?

Ja, gebruik gethousenumbers. Daarmee kun je na een gekozen straat en woonplaats beschikbare huisnummers ophalen.

Kan ik zoeken op straatnaam, huisnummer en woonplaats?

Ja, gebruik getaddressbystreetnumber wanneer je geen postcode hebt, maar wel straatnaam, huisnummer en woonplaats.

Kan ik woonplaatsen zoeken of ophalen?

Ja, gebruik lookupcity om te zoeken op woonplaats en getcities om woonplaatsen op te halen.

Foutmeldingen en troubleshooting

Wat betekent invalid_api_key?

De API-key ontbreekt, is ongeldig of is niet actief. Controleer of je de key exact meestuurt via de header Authorization: Bearer JOUW_API_KEY.

Wat betekent missing_parameter?

Een verplichte parameter ontbreekt. Controleer in de documentatie welke velden het endpoint nodig heeft, bijvoorbeeld postcode, housenumber, lat of lng.

Wat betekent not_found?

De request is geldig, maar er is geen passend resultaat gevonden. Controleer de invoer op typefouten, spaties, postcodeformaat en huisnummertoevoegingen.

Waarom krijg ik een CORS- of browserfout?

Gebruik de API bij voorkeur via je eigen backend. Daarmee blijft je API-key geheim en voorkom je dat browserbeveiliging of domeininstellingen je integratie blokkeren.

Waarom krijg ik een lege lijst maar geen foutmelding?

Sommige zoekendpoints geven een lege lijst terug als er niets matcht. Dat betekent dat de request technisch goed was, maar dat de zoekopdracht geen resultaten opleverde.

Hoe voorkom ik te veel requests vanuit autocomplete?

Voeg in je frontend een korte debounce toe, bijvoorbeeld 250 tot 400 milliseconden, en start pas met zoeken na een minimumaantal tekens. Zo blijft de gebruikerservaring snel en beperk je onnodige calls.

Caching, snelheid en productie

Worden responses door PostcodeConnect gecachet?

Ja, veel herhaalbare responses kunnen uit cache worden geleverd. Daardoor zijn veel requests sneller, vooral bij veelgebruikte adressen of zoekopdrachten.

Moet ik zelf ook caching toepassen?

Voor productie is eigen caching vaak verstandig, vooral bij autocomplete, veelgebruikte postcodechecks of interne batchprocessen. Let wel op dat je verouderde data niet te lang bewaart.

Hoe maak ik mijn integratie productiegeschikt?

Gebruik de API-key alleen server-side, stel timeouts in, verwerk foutcodes netjes, log mislukte requests beperkt en bouw retry-logica alleen in voor tijdelijke server- of netwerkfouten.

Kan ik grote imports of batchprocessen draaien?

Ja, maar verspreid requests over tijd en houd rekening met je calllimiet en rate limiting. Voor zeer grote volumes is een maatwerkpakket meestal beter.

Abonnement en beheer

Is het gratis pakket echt gratis?

Ja, het gratis pakket is echt gratis en kost helemaal niets. Je kunt hiermee PostcodeConnect uitproberen binnen de limieten en voorwaarden van het gratis pakket. Heb je tijdelijk meer calls nodig, dan kun je het gratis pakket ook uitbreiden door extra calls te kopen via het dashboard.

Heb ik een creditcard nodig voor het gratis pakket?

Nee, voor het gratis pakket is geen betaling nodig. Je kunt een account aanmaken, het gratis pakket kiezen en direct starten met testen.

Mag ik het gratis pakket commercieel gebruiken?

Het gratis Starter pakket is bedoeld voor hobby websites of om de API uit te proberen. Voor commercieel gebruik is het gratis pakket niet geschikt.

Kan ik later van gratis naar betaald upgraden?

Ja, je kunt vanuit het dashboard eenvoudig upgraden naar een betaald pakket wanneer je meer calls, meer endpoints of commercieel gebruik nodig hebt.

Kan ik maandelijks op- of afschalen?

Ja, pakketten kunnen maandelijks worden aangepast.

Wat is het verschil tussen maandbetaling en jaarbetaling?

Bij maandbetaling betaal je per maand en kun je flexibel aanpassen. Bij jaarbetaling betaal je voor een jaar vooruit en krijg je 2 maanden gratis ten opzichte van maandbetaling.

Kan ik extra calls kopen als ik over mijn pakket heen ga?

Ja, via het dashboard kun je extra calls bijkopen als je tijdelijk meer verbruik hebt dan je pakket toestaat. Als je structureel meer calls nodig hebt, kun je ook eenvoudig upgraden naar een groter pakket.

Wat gebeurt er als mijn extra calls op zijn?

Als je maandlimiet en extra calls op zijn, worden nieuwe requests afgewezen totdat er weer calls beschikbaar zijn of totdat je extra calls koopt of upgrade.

Hoelang blijven gekochte extra calls geldig?

In het dashboard zie je per extra call-bundel tot wanneer deze geldig is. Gebruik eerst je pakketlimiet en controleer daarna je actieve extra calls in het overzicht.

Kan ik mijn abonnement opzeggen?

Ja, je kunt je abonnement beheren via het dashboard. Bij maandpakketten kun je maandelijks aanpassen of stoppen volgens de voorwaarden van je pakket.

Kan ik mijn abonnement pauzeren?

Een abonnement pauzeren is niet hetzelfde als een API-key pauzeren. Je kunt wel API-keys tijdelijk pauzeren. Wil je je pakket stoppen of aanpassen, dan doe je dat via het dashboard.

Er is geen geschikt pakket voor mij. Wat nu?

We kunnen op verzoek een aangepast pakket aanbieden, bijvoorbeeld voor hogere volumes, specifieke limieten of maatwerkgebruik.

Dashboard, API-keys en statistieken

Waar zie ik mijn API-verbruik?

In het dashboard zie je je gebruik per periode, je maandlimiet, je actieve extra calls en het verbruik per API-key.

Hoe snel worden statistieken bijgewerkt?

De statistieken worden regelmatig bijgewerkt. In de uurweergave kan het dashboard automatisch verversen, zodat je recent verbruik snel terugziet.

Kan ik meerdere API-keys gebruiken?

Ja, afhankelijk van je account kun je meerdere API-keys gebruiken. Dat is handig om productie, testomgevingen en verschillende applicaties gescheiden te houden.

Kan ik per API-key aparte limieten instellen?

Ja, je kunt per key limieten instellen, zoals RPS en maandlimiet. Een key kan nooit hoger worden gezet dan de limieten van je actieve pakket.

Wat gebeurt er met mijn API-keys als ik upgrade of downgrade?

Je API-keys blijven gekoppeld aan je account. De beschikbare limieten en endpoints volgen het actieve pakket. Na een wijziging kan het nodig zijn om keylimieten in het dashboard opnieuw te controleren.

Waarom zie ik mijn API-key maar één keer na het aanmaken?

Uit veiligheid wordt de volledige API-key alleen direct na het aanmaken getoond. Daarna wordt alleen een veilige hash opgeslagen en kun je de originele key niet meer terugzien.

Kan ik een API-key tijdelijk pauzeren?

Ja, in het dashboard kun je een API-key pauzeren en later weer activeren. Dit is handig als je een koppeling tijdelijk wilt uitschakelen zonder de key direct te verwijderen.

Wat zijn develop-keys en productie-keys?

Een develop-key gebruik je voor testen en ontwikkeling. Een productie-key gebruik je voor live applicaties. Door ze te scheiden kun je veiliger testen zonder je live omgeving te raken.

Kan ik mijn API-key intrekken of vervangen?

Ja. Als een key gelekt is of vervangen moet worden, kun je een nieuwe key gebruiken en de oude key deactiveren.

Wat moet ik doen als mijn API-key is gelekt?

Pauzeer of verwijder de gelekte key direct in het dashboard, maak een nieuwe key aan en vervang de key in je applicatie. Controleer daarna je verbruik op onverwachte calls.

Betaling en facturen

Welke betaalmethodes worden ondersteund?

Je kunt betalen met iDEAL / Wero. Bestel je voor de eerste keer een pakket, dan moet deze bestelling direct worden betaald. Bij verlenging ontvang je een factuur per e-mail en in je dashboard. De betalingstermijn voor verlengingsfacturen is 14 dagen.

Kan ik facturen downloaden?

Ja, in het dashboard kun je je facturen bekijken en als PDF downloaden.

Kan ik een openstaande factuur online betalen?

Ja, openstaande facturen kun je vanuit het dashboard betalen via de beschikbare betaalopties.

Zijn de prijzen inclusief of exclusief btw?

De prijzen op de prijzenpagina worden exclusief 21% btw getoond, tenzij anders vermeld.

Integratie en support

Kan ik PostcodeConnect gebruiken in WordPress of WooCommerce?

Ja, dat kan via een eigen plugin, thema-aanpassing of backendkoppeling. Gebruik je API-key altijd server-side en zet deze niet zichtbaar in frontend JavaScript.

Kan ik PostcodeConnect gebruiken in Laravel?

Ja, Laravel is zeer geschikt voor een server-side koppeling. Sla je API-key op in je .env-bestand en roep de API aan vanuit je controller, service of job.

Kan ik PostcodeConnect koppelen aan een eigen webshop of SaaS-platform?

Ja, de API is bedoeld voor webshops, SaaS-platformen, CRM-systemen, ERP-systemen en eigen backofficeprocessen.

Waarom moet ik mijn API-key niet in frontend JavaScript zetten?

Alles wat in frontend JavaScript staat, kan door bezoekers worden bekeken. Zet je API-key daarom altijd op je eigen server en laat je frontend via je eigen backend communiceren.

Kan ik hulp krijgen bij de implementatie?

Ja, neem contact op als je hulp wilt bij de koppeling, een voorbeeldimplementatie, een plugin of maatwerk voor je applicatie.

Kan ik een maatwerkintegratie laten bouwen?

Ja, neem contact op als je hulp wilt bij integratie in bijvoorbeeld een website, CRM, ERP, WordPress, Laravel, Make.com of een eigen backend.