API Documentatie

KBO Connect API

Alles wat je nodig hebt om te integreren met de KBO Connect API.

Antwoordtaal:

Batch API

Enterprise

Zoek tot 50 bedrijven of vestigingen op in één enkele POST-aanroep. Ontworpen voor bulk-CRM-verrijking, KYC-pipelines en nachtelijke datasynchronisatie. Onbekende nummers worden stilzwijgend weggelaten — je ontvangt altijd een gedeeltelijk resultaat.

JavaScript
// POST /v1/companies/batch
const response = await fetch(
'https://api.kboconnect.be/v1/companies/batch',
{
method: 'POST',
headers,
body: JSON.stringify([
"0123456789",
"0987654321",
"0456789123"
])
}
);
const companies = await response.json();
// Response: array of matching companies
[
{
"enterprise_number": "0123.456.789",
"denomination": { "nl": "Voorbeeld NV" },
"status": "active",
"address": { "city": "Brussel" }
}
// ... meer resultaten
]

POST /establishments/batch werkt op dezelfde manier met vestigingsnummers.

Authenticatie

De KBO Connect API gebruikt Bearer-tokenauthenticatie. Voeg je API-sleutel toe aan de Authorization-header van elk verzoek.

JavaScript
// Authentication header
const headers = {
'Authorization': 'Bearer your_api_key',
'Content-Type': 'application/json',
'Accept-Language': 'nl'
};

Eerste verzoek

Maak je eerste API-aanroep om bedrijfsgegevens op te halen aan de hand van een ondernemingsnummer. Het formaat kan met of zonder punten zijn.

cURL
curl -X GET "https://api.kboconnect.be/v1/enterprises/0123456789" \
-H "Authorization: Bearer your_api_key" \
-H "Accept-Language: nl"
JavaScript + Response
// GET /v1/enterprises/0123456789
const response = await fetch(
'https://api.kboconnect.be/v1/enterprises/0123456789',
{ headers }
);
const company = await response.json();
// Response:
{
"enterprise_number": "0123.456.789",
"denomination": {
"nl": "Voorbeeld NV"
},
"status": "active",
"juridical_form": {
"code": "014",
"description": "Naamloze vennootschap"
},
"address": {
"street": "Koningsstraat",
"house_number": "123",
"postal_code": "1000",
"city": "Brussel"
},
"activities": [
{
"nace_code": "62010",
"description": "Computerprogrammering"
}
]
}

Endpoints

Overzicht van alle beschikbare API-endpoints. Klik op een endpoint voor meer details.

GET/v1/enterprises/{enterprise_number}Haal bedrijfsgegevens op aan de hand van het ondernemingsnummer
GET/v1/enterprises/searchZoek bedrijven op naam, adres of NACE-code
GET/v1/establishments/{establishment_number}Haal vestigingsgegevens op aan de hand van het vestigingsnummer
GET/v1/enterprises/{enterprise_number}/branchesGeef alle vestigingen van een onderneming weer
GET/v1/nace-codesGeef alle beschikbare NACE-codes met beschrijvingen weer
POST/v1/companies/batchBatch API
POST/v1/establishments/batchBatch API

Zoeken en filteren

De search-endpoint ondersteunt verschillende queryparameters om resultaten te filteren.

ParameterTypeBeschrijving
qstringZoekterm voor bedrijfsnaam
citystringFilter op stad
postal_codestringFilter op postcode
nace_codestringFilter op NACE-activiteitscode
statusstringactive, inactive, all
pageintegerPaginanummer (standaard: 1)
limitintegerResultaten per pagina (max: 100)
Zoekvoorbeeld
// GET /v1/enterprises/search?q=software&city=Brussel
const response = await fetch(
'https://api.kboconnect.be/v1/enterprises/search?' +
'q=software&city=Brussel&limit=10',
{ headers }
);
const results = await response.json();
// Response:
{
"total": 245,
"page": 1,
"limit": 10,
"enterprises": [
{
"enterprise_number": "0123.456.789",
"denomination": "Voorbeeld Software NV",
"city": "Brussel",
"nace_code": "62010"
},
// ... meer resultaten
]
}

Uw quotum programmatisch bewaken

Elk geverifieerd API-antwoord bevat vier antwoordheaders die je programmatisch kunt uitlezen — zonder het dashboard te bezoeken.

HeaderBeschrijving
X-Monthly-LimitUw totale maandelijkse API-oproeflimiet voor het huidige abonnement
X-Monthly-UsedAantal API-aanroepen verbruikt in de huidige factureringsperiode
X-Monthly-RemainingResterende aanroepen — max(0, limiet − verbruikt)
X-Quota-WarningIngesteld op "true" wanneer u uw maandelijkse limiet nadert
Quotumheaders uitlezen
// Reading quota headers from any API response
const res = await fetch(
'https://api.kboconnect.be/v1/enterprises/0123456789',
{ headers }
);
const limit = parseInt(res.headers.get('X-Monthly-Limit'));
const used = parseInt(res.headers.get('X-Monthly-Used'));
const remaining = parseInt(res.headers.get('X-Monthly-Remaining'));
const warning = res.headers.get('X-Quota-Warning') === 'true';
if (warning) {
console.warn(`⚠ Low quota: ${remaining} of ${limit} calls remaining`);
}

API Speeltuin

Probeer de KBO Connect API rechtstreeks vanuit uw browser met uw eigen API sleutel.

Veelgestelde vragen