Belgische bedrijven zoeken per postcode, gemeente en sector
Zo vind je Belgische bedrijven per postcode, gemeente, provincie en NACE-sector: de overzichtspagina's op KVKBase en zoeken via de API, met limieten.
Wie een Belgische markt wil verkennen, denkt zelden in ondernemingsnummers. De vraag is eerder: welke bakkers zitten er in 9000, welke bouwbedrijven in Henegouwen, welke vennootschappen in mijn gemeente? Deze gids laat zien hoe je dat doet met de publieke overzichtspagina’s van KVKBase en met de zoek-API voor programmatisch gebruik, en hoe de Belgische postcodes helpen om je zoekopdracht te sturen.
De overzichtspagina’s op KVKBase
Voor verkennen zonder code zijn er vier ingangen, allemaal op /be aangehaakt:
- Steden: bedrijven per gemeente en postcode.
- Provincies: een overzicht per provincie, handig voor regionale zoektochten.
- Sectoren: bedrijven per activiteit volgens de NACE-indeling.
- Rechtsvormen: bedrijven per vorm, zoals BV, NV of vzw.
Daarnaast vind je op /be/bedrijven het algemene overzicht van de bedrijfspagina’s. Die pagina’s zijn gebouwd om te bladeren en te vergelijken, niet om een volledige export te maken. Natuurlijke personen, dus eenmanszaken, tonen we niet op publieke pagina’s. Dat is een bewuste keuze rond privacy: hun adres kan het woonadres zijn.
De Belgische postcode als hulpmiddel
Een Belgische postcode bestaat uit vier cijfers. De reeksen volgen vrij nauwkeurig de provincies, al zijn er uitzonderingen. Met onderstaand schema weet je meteen in welke provincie een postcode valt, en hoe je een zoektocht per gewest kunt opdelen.
| Postcodes | Provincie of gewest |
|---|---|
| 1000 tot 1299 | Brussel |
| 1300 tot 1499 | Waals-Brabant |
| 1500 tot 1999 en 3000 tot 3499 | Vlaams-Brabant |
| 2000 tot 2999 | Antwerpen |
| 3500 tot 3999 | Limburg |
| 4000 tot 4999 | Luik |
| 5000 tot 5999 | Namen |
| 6000 tot 6599 en 7000 tot 7999 | Henegouwen |
| 6600 tot 6999 | Luxemburg |
| 8000 tot 8999 | West-Vlaanderen |
| 9000 tot 9999 | Oost-Vlaanderen |
Twee dingen vallen op. Vlaams-Brabant en Henegouwen hebben elk twee reeksen: 1500 tot 1999 loopt rond Brussel en 3000 tot 3499 rond Leuven en Tienen. Henegouwen heeft 6000 tot 6599 (rond Charleroi) en 7000 tot 7999 (Bergen en Doornik). Reken je dus met een eenvoudige “eerste cijfer”-regel, dan klopt je indeling niet altijd. Een kleine opzoektabel in je code is betrouwbaarder.
Voor het eerste cijfer geldt wel een ruwe vuistregel: 1 is Brussel en omgeving, 2 is Antwerpen, 3 is Vlaams-Brabant en Limburg, 4 is Luik, 5 is Namen, 6 en 7 zijn Luxemburg en Henegouwen, 8 is West-Vlaanderen en 9 is Oost-Vlaanderen.
Zoeken via de API
Voor programmatisch gebruik heb je GET https://api.kvkbase.nl/v1/be/search. Je geeft een q (een naamdeel, minstens twee tekens), een postalCode (vier cijfers), of allebei. Een zoekopdracht kost 1 token. Je sleutel haal je na registratie, de volledige referentie staat in de API-documentatie.
curl -s "https://api.kvkbase.nl/v1/be/search?postalCode=9000&q=bakkerij&pageSize=25" \
-H "Authorization: Bearer YOUR_API_KEY"
Elk resultaat bevat cbeNumber, cbeNumberFormatted, name, entityType, legalForm, legalFormShort, postalCode, city, country en isActive. Dat is genoeg om een lijst te tonen of een selectie te maken.
De limiet van 25 resultaten
Dit is het punt waarop mensen vaak verrast worden. Een zoekopdracht levert nooit meer dan 25 resultaten, ook niet als je page ophoogt: page en pageSize knippen alleen binnen diezelfde 25. Het antwoord bevat total, page, pageSize en capped. Staat capped op true, dan zijn er mogelijk meer bedrijven dan getoond.
De oplossing is verfijnen in plaats van pagineren:
- Voeg een naamdeel toe aan je postcode, bijvoorbeeld
q=bouwofq=advies. - Doorloop meerdere naamdelen of letters en dedupliceer op
cbeNumber. - Combineer niet te algemeen: met
q=bven een grote postcode zit je meteen aan de limiet.
Een volledige lijst van alle bedrijven in een postcode krijg je zo niet. Dat is niet het doel van deze endpoint. Heb je een lijst nummers, dan is de batch-endpoint de betere route: zie bedrijven in bulk controleren.
Zoeken per sector
De API-zoekopdracht kent geen sectorfilter. Wil je bedrijven van één sector, dan zijn er twee wegen. Op de pagina sectoren blader je per NACE-activiteit. Programmatisch haal je bedrijven op via naam en postcode en lees je in de volledige gegevens per bedrijf het veld activities. Daar staat de NACE-code van de hoofdactiviteit en de nevenactiviteiten in, met een aanduiding welke de hoofdactiviteit is. Hoe die codes in elkaar zitten lees je in de gids over NACE-codes zoeken per sector.
Een voorbeeld in JavaScript dat een postcode doorzoekt en per hit de volledige fiche opvraagt:
const headers = { Authorization: `Bearer ${process.env.KVKBASE_API_KEY}` };
const search = await fetch(
"https://api.kvkbase.nl/v1/be/search?postalCode=9000&q=bakkerij&pageSize=25",
{ headers }
).then((r) => r.json());
for (const hit of search.results.filter((h) => h.isActive !== false)) {
const company = await fetch(
`https://api.kvkbase.nl/v1/be/lookup/${hit.cbeNumber}?lang=nl`,
{ headers }
).then((r) => r.json());
const main = company.activities.find((a) => a.isMain);
console.log(hit.name, hit.city, main?.sbiCode);
}
Elke lookup kost 1 token, dus filter eerst op wat je echt nodig hebt.
Praktische toepassingen
Een paar patronen die in de praktijk goed werken:
- Een commercieel voorstel voor één streek: blader via provincies of steden om te zien welke bedrijven er zijn, en gebruik de API om een kleine, gerichte lijst te verrijken.
- Een controle van leveranciers in een regio: zoek op postcode en naamdeel, controleer
isActiveen bewaar de nummers. - Een analyse per rechtsvorm: gebruik rechtsvormen als vertrekpunt en lees in de uitleg over rechtsvormen wat de afkortingen betekenen.
Houd er rekening mee dat gegevens niet realtime zijn en dat we geen volledigheid garanderen. Controleer voor een contract of grote levering altijd het bedrijf zelf, zoals uitgelegd in een bedrijf controleren voor je zaken doet.
Verder lezen
Wie meer wil weten over een afzonderlijke vestiging van een bedrijf, leest de gids over de vestigingseenheid. De codevoorbeelden voor elke endpoint staan in API-codevoorbeelden in curl, JavaScript en Python, en een nummer opzoeken zonder code kan met de gratis tool. Voor het algemene verhaal over de API zie je de integratiegids.