btwzoeken.be

API

Alles wat op deze site staat, ook als JSON. Alleen-lezen. Vrij te gebruiken; met een sleutel ruimer.

De ingang

Alle paden hieronder staan achter dit adres.

Liever via een AI-assistent?

Dezelfde gegevens, als MCP-server.

Voeg btwzoeken.be toe in Claude of ChatGPT en vraag ernaar in gewone taal, zonder zelf een client te schrijven.

Probeer het

Kies een ingang, vul in, verstuur. Elk verzoek telt mee in de begrenzing hieronder.

Optioneel. Hij wordt niet bewaard en gaat alleen mee in het verzoek dat u hier verstuurt.

Het verzoek


                
            

De beschrijving downloaden

OpenAPI 3.1: elke ingang, elke parameter, elk antwoord en elk schema, in een bestand.

Er valt een client mee te genereren, en hij valt in te lezen in Postman, Insomnia of Bruno.

curl -s -o openapi.json https://btwzoeken.be/api/v1/openapi.json

Haalt u het document bij elke start op in plaats van het bij te houden, dan loopt u nooit achter op een filter die erbij komt. Dat adres telt niet mee in de begrenzing.

Wat een sleutel verandert

Zonder sleutel: vijf verzoeken per minuut en twintig per uur, geteld per IP-adres. Met sleutel: honderd per uur, geteld per sleutel. Een sleutel maakt u aan na aanmelding; hij is gratis.

  • De functiehouders -- bestuurders en zaakvoerders zijn natuurlijke personen. Ze staan op de fiche in de browser en in de publieke raadpleging van de KBO; hier staan ze op een eigen adres, achter een sleutel. Het verschil tussen raadplegen en in bulk ophalen is precies het verschil dat een sleutel herstelt: begrensd, en op naam.
  • E-mailadressen en telefoonnummers -- dezelfde grens als op de fiche: bij een eenmanszaak is het adres van de onderneming het adres van een mens, en dat toont de site ook alleen aan wie aangemeld is.
  • De coordinaten van adressen -- de kaart zit achter een menselijkheidscontrole. Een ingang die anoniem per btw-nummer een punt teruggeeft, zou die poort langs de achterkant openzetten.

Aanmelden of een account maken om een sleutel aan te maken.

Deze API zet niets in gang

Zij leest wat er ligt. Een verzoek hier lokt geen hervalidatie bij VIES uit, geen geocodering, geen bevraging van de KBO of de Nationale Bank, en geen domeinscan. De fiche in de browser doet dat wel -- daar is een verzoek een bezoek, hier is het er een van duizend. Hoe vers de gegevens zijn, staat in /status en per onderdeel in de datumvelden.

De ingangen

Pad Wat het teruggeeft Uitproberen
/api/v1
De ingang van deze API
Verwijst naar de beschrijving, de uitleg en de stand van zaken. Bedoeld als vertrekpunt voor een client die alleen dit adres kent.
Probeer
/api/v1/status
De stand van zaken
Of deze API antwoordt, en hoe vers de gegevens erachter zijn: wanneer de laatste uitgave van de KBO is ingelezen en hoeveel ondernemingen erin staan.
Probeer
/api/v1/openapi.json
Dit document
De beschrijving van deze API, als OpenAPI 3.1.
Probeer
/api/v1/sources
De bronnen achter deze gegevens
Welke bron welk stuk van het antwoord levert, in welk ritme ze ververst wordt, en hoeveel er in deze databank staat. Dezelfde inhoud als de bronnenpagina in de browser.
Probeer
/api/v1/companies
Ondernemingen zoeken en filteren
Dezelfde zoekopdracht en dezelfde filters als de zoekpagina in de browser, met dezelfde sleutels. Minstens een zoekterm of een filter is verplicht: zonder beide zou het antwoord alle ondernemingen zijn.
Probeer
/api/v1/companies/{nummer}
Een onderneming opvragen
De gegevens van een onderneming op haar btw-nummer of ondernemingsnummer.
Probeer
/api/v1/companies/{nummer}/officers
De functiehouders van een onderneming
Bestuurders, zaakvoerders en vaste vertegenwoordigers, in de volgorde waarin de KBO ze toont. Een functiehouder is in Belgie vaker een vennootschap dan een mens; `kind` zegt welke van de twee.
Probeer
/api/v1/companies/{nummer}/annual-accounts
De jaarrekeningen van een onderneming
Wat er bij de Balanscentrale van de Nationale Bank neergelegd is, en wat wij eruit gelezen hebben.
Probeer
/api/v1/companies/{nummer}/subsidies
De subsidies van een onderneming
De toekenningen uit het Vlaams Subsidieregister, recentste jaar eerst.
Probeer
/api/v1/companies/{nummer}/publications
De akten in het Belgisch Staatsblad
De akten van deze rechtspersoon in de Bijlagen bij het Belgisch Staatsblad, nieuwste eerst.
Probeer
/api/v1/companies/{nummer}/contracts
De Europese overheidsopdrachten van een onderneming
De gunningen waarin deze onderneming als winnaar werd aangekondigd in TED, het Supplement bij het Publicatieblad van de Europese Unie. Jongste eerst.
Probeer
/api/v1/establishments/{nummer}
Een vestigingseenheid opvragen
Een vestiging op haar vestigingsnummer, met de ondernemingen die eraan hangen.
Probeer
/api/v1/activities
De nomenclatuur: secties en afdelingen
De boom van NACE-BEL: de secties A tot U met hun afdelingen.
Probeer
/api/v1/activities/{code}
Een activiteitencode, met de ondernemingen die ze uitoefenen
Wat de code betekent, waar ze onder valt, welke codes eronder vallen, en wie ze uitoefent.
Probeer
/api/v1/persons/{slug}
De mandaten van een persoon
Alles waarvan deze naam bestuurder, zaakvoerder of vaste vertegenwoordiger is.
Probeer
/api/v1/subsidies/{slug}
Een subsidie uit het register, met wie ze kreeg
Waar /companies/{nummer}/subsidies bij een onderneming begint, begint deze bij een SUBSIDIE: wie kreeg ze, hoeveel, en in welk jaar.
Probeer
/api/v1/domains/{host}
Het digitaal profiel van een domein
Wat er achter een domein draait en hoe het ervoor staat: DNSSEC, SPF, DMARC, een mailserver, een security.txt, en de diensten die herkend zijn -- met het bewijs erbij.
Probeer
/api/v1/technologies
De diensten die achter Belgische domeinen draaien
Welke diensten wij ergens werkelijk waargenomen hebben, en op hoeveel gescande domeinen.
Probeer
/api/v1/technologies/{slug}
Een dienst, met de ondernemingen die haar gebruiken
Alleen een dienst die wij ergens echt waargenomen hebben, heeft een adres. Een verzonnen sleutel is een 404 en zet geen scan in gang.
Probeer

Een onderneming opvragen

De schrijfwijze van het nummer maakt niet uit: met of zonder BE, met of zonder punten.

curl -s https://btwzoeken.be/api/v1/companies/BE0400378485

Zoeken en filteren

Minstens een zoekterm of een filter is verplicht.

curl -s 'https://btwzoeken.be/api/v1/companies?q=frituur&postcode=9000'

De parameters

Sleutel Betekenis Voorbeeld
q De zoekterm: een naam, een handelsnaam of een nummer. Minstens drie tekens. frituur
code Een NACE-code om op te filteren. Werkt als voorvoegsel: 47 levert de hele detailhandel. 5610
versie De versie van de nomenclatuur waar de code bij hoort. Standaard de nieuwste.
2003 2008 2025
sectie De NACE-sectie: een letter van A tot U. I
postcode De postcode. Werkt als voorvoegsel: 90 levert alles van 9000 tot 9099. 9000
gemeente De gemeente. Werkt als voorvoegsel. Gent
rechtsvorm Het nummer van de rechtsvorm.
toestand Het nummer van de juridische toestand.
type Het nummer van het soort onderneming.
actief Alleen actieve (ja) of alleen stopgezette (nee) ondernemingen. Weglaten levert beide.
ja nee
vanaf Alleen ondernemingen die vanaf dit jaar startten. 2020
tot Alleen ondernemingen die tot en met dit jaar startten. 2024
sort Waarop gesorteerd wordt. Relevantie werkt alleen met een zoekterm.
relevantie naam start nummer stop
dir De richting van de sortering.
asc desc
per Aantal per pagina, van 10 tot 100.
page Het paginanummer.

Let op meta.total_is_lower_bound. Staat die op true, dan zat het venster van de zoekmachine vol en is meta.total een ondergrens, geen telling. Zonder zoekterm telt het totaal altijd alles.

De begrenzing

Niet tegen wie iets wil opzoeken, maar tegen wat de databank plat legt.

Onderdeel Zonder sleutel Met sleutel
Per minuut 5 geen aparte grens
Per uur 20 100
Geteld per IP-adres sleutel

De twee vensters zonder sleutel vangen elk iets anders: vijf per minuut vangt de stoot van een script dat in een lus draait, twintig per uur vangt het gestage aftappen dat onder elke minuutgrens door glipt.

De ingang, de beschrijving en de stand van zaken tellen hier niet in mee (zestig per minuut). Een client die netjes begint, hoort daar zijn budget niet aan kwijt te zijn.

Wordt er een overschreden, dan volgt 429 met een Retry-After-kop die zegt hoelang wachten. Wie het volledige bestand wil, haalt beter de maandelijkse ZIP van de KBO op: dat is sneller dan welk aantal verzoeken ook.

De sleutel meesturen

Als kop, niet als queryparameter: die belandt in de logs van elke proxy onderweg.

curl -H 'Authorization: Bearer btwz_...' https://btwzoeken.be/api/v1/companies/BE0400378485

Of, voor een client die geen bearer token kan sturen:

curl -H 'X-Api-Key: btwz_...' https://btwzoeken.be/api/v1/companies/BE0400378485

Een sleutel die niet klopt of ingetrokken is, geeft 401 -- en niet stilzwijgend de publieke begrenzing. Dat laatste levert een integratie op die "soms" werkt, en dat is de moeilijkste storing om te vinden.

Herkomst en hergebruik

Open data van de KBO, hergebruik onder de voorwaarden van de FOD Economie. De voorwaarden van de KBO. Waar de gegevens vandaan komen en wanneer de laatste uitgave is ingelezen, staat op de bronnenpagina.