KBO Open Data: handleiding voor ontwikkelaars
De Kruispuntbank van Ondernemingen (KBO, BCE in het Frans) publiceert het Belgische ondernemingsregister als open data. Deze handleiding legt uit hoe je de bestanden ophaalt, wat erin staat en hoe je een kopie bijhoudt, met de valkuilen die we tegenkwamen bij onze eigen dagelijkse import.
Laatst gecontroleerd: september 2026
Gebaseerd op het officiële cookbook versie R018.00 (december 2025) en de bestanden gepubliceerd in september 2026.
Wat KBO Open Data is
KBO Open Data is het gratis, officiële uittreksel van het register dat de FOD Economie bijhoudt. Het bevat alle actieve geregistreerde entiteiten en vestigingseenheden: het volledige bestand van 26 september 2026 telde 1.964.143 ondernemingen en 1.699.251 vestigingseenheden.
Het bevat alleen de huidige toestand, zonder historiek: als een onderneming verhuist, staat alleen haar nieuwe adres in het bestand.
Toegang krijgen
Maak een gratis account aan op het KBO Open Data-portaal en aanvaard de licentie. Anoniem downloaden kan niet. Eenmaal geregistreerd download je de bestanden via het portaal.
Geautomatiseerd downloaden via SFTP vraag je apart aan bij de FOD Economie, zoals beschreven in het officiële KBO Open Data-cookbook.
Full- en Update-bestanden
Elke dag verschijnen een Full-bestand en een Update-bestand, die elk 31 dagen beschikbaar blijven. Het Full-bestand is een volledige momentopname; het Update-bestand bevat de wijzigingen sinds het vorige Full-bestand. Sommige oudere documenten, waaronder de licentie, spreken nog van maandelijkse bestanden: ze zijn dagelijks sinds eind 2025.
De bestandsnamen bevatten een extractnummer, dat elke dag met één stijgt, en de datum. Het Update-bestand heeft dezelfde naam, eindigend op _Update.zip.
KboOpenData_0494_2026_09_26_Full.zip Elke zip bevat een meta.csv met de datum van de momentopname, het extractnummer, het type extract (full of update) en de versie van het bestandsformaat, die aangeeft welke versie van het cookbook je moet lezen.
De bestanden en hun kolommen
| Bestand | Inhoud | Belangrijkste kolommen |
|---|---|---|
enterprise.csv |
Eén rij per actieve onderneming: rechtstoestand, type (natuurlijk persoon of rechtspersoon), rechtsvorm, begindatum
|
EnterpriseNumber, Status, JuridicalSituation, TypeOfEnterprise, JuridicalForm, JuridicalFormCAC, StartDate
|
establishment.csv |
De vestigingseenheden, de plaatsen waar een onderneming haar activiteiten uitoefent
|
EstablishmentNumber, StartDate, EnterpriseNumber
|
denomination.csv |
De namen: maatschappelijke naam, afkorting en commerciële naam, per taal
|
EntityNumber, Language, TypeOfDenomination, Denomination
|
address.csv |
De adressen, in het Nederlands en het Frans
|
EntityNumber, TypeOfAddress, Zipcode, MunicipalityNL, MunicipalityFR, StreetNL, StreetFR, HouseNumber, Box
|
contact.csv |
Telefoonnummers, e-mail- en webadressen
|
EntityNumber, EntityContact, ContactType, Value
|
activity.csv |
De activiteiten als NACE-codes, per activiteitengroep
|
EntityNumber, ActivityGroup, NaceVersion, NaceCode, Classification
|
branch.csv |
Bijkantoren van buitenlandse entiteiten in België
|
Id, StartDate, EnterpriseNumber
|
code.csv |
De omschrijving van elke code, per taal
|
Category, Code, Language, Description
|
meta.csv |
Informatie over het extract zelf
|
SnapshotDate, ExtractTimestamp, ExtractType, ExtractNumber, Version
|
Je hoeft niet alle bestanden in te laden: kies de bestanden die je toepassing nodig heeft.
Bestandsformaat
- Kommagescheiden waarden, tekst tussen dubbele aanhalingstekens, met een kopregel.
- Een leeg veld betekent: geen waarde.
- Datums staan in de vorm
dd-mm-yyyy, niet in ISO 8601. - Ondernemingsnummers staan in de vorm
0123.456.789en nummers van vestigingseenheden in de vorm2.123.456.789.EntityNumber-kolommen kunnen beide bevatten.
Update-bestanden toepassen
Update-bestanden vervangen gegevens per entiteit, niet per rij. Voor elke tabel bevat de zip een _delete-bestand en een _insert-bestand. Zodra er iets verandert aan een entiteit in een tabel, staat haar nummer in het delete-bestand, en staan al haar huidige rijen voor die tabel, gewijzigd of niet, in het insert-bestand.
- Laad eerst een Full-bestand in.
- Verwijder per tabel alle rijen van de nummers in
<tabel>_delete.csv. - Voeg daarna alle rijen van
<tabel>_insert.csvtoe. - Vervang je codetabel door de
code.csvuit de zip: Update-bestanden bevatten altijd de volledige codelijst.
-- for each table, e.g. denomination, after loading
-- denomination_delete.csv and denomination_insert.csv
BEGIN;
DELETE FROM denomination
WHERE entity_number IN (SELECT entity_number FROM denomination_delete);
INSERT INTO denomination SELECT * FROM denomination_insert;
COMMIT; Elk Update-bestand bouwt voort op het vorige: pas ze in volgorde toe. De bestanden blijven maar 31 dagen beschikbaar: loopt je import verder achter, begin dan opnieuw vanaf een Full-bestand.
Valkuilen om te vermijden
- Natuurlijke personen hebben geen zetel en geen rechtsvorm. Ze zijn goed voor ongeveer 39% van de ondernemingen (770.175 op 26 september 2026), en alleen hun vestigingseenheden hebben een adres. Maak joins op adressen en rechtsvormen optioneel.
- Eén entiteit, meerdere namen. Een onderneming kan een maatschappelijke naam, een afkorting en een commerciële naam hebben, elk in meerdere talen. In
denomination.csvis de taal een getal (1 Frans, 2 Nederlands, 3 Duits, 4 Engels, 0 onbekend); incode.csvis het een lettercode. - Bewaar codes als tekst. Rechtsvormen, rechtstoestanden en activiteitengroepen beginnen met nullen (
014,000,006). Als getal opgeslagen komen ze niet meer overeen metcode.csv. - Drie NACE-BEL-versies naast elkaar. Een activiteitscode betekent pas iets samen met haar
NaceVersion: NACE-BEL 2003, 2008 of 2025.62010bestaat bijvoorbeeld in de tabel van 2008, maar niet in die van 2003 of 2025. - Geen Engelse omschrijvingen.
code.csvomschrijft elke code in het Nederlands en het Frans, sommige in het Duits, en voorlopig geen enkele in het Engels. - Adressen in twee talen. Straten en gemeenten bestaan alleen in het Nederlands en het Frans, en het land is leeg voor Belgische adressen.
- Bijkantoor-ID’s zijn geen officiële nummers. De
Idvan een bijkantoor is nergens anders bruikbaar, en namen en adressen kunnen bij bijkantoren horen. Laad je alleen ondernemingen en vestigingseenheden in, dan hebben die rijen niets om aan te hangen. - Niemand typt het formaat met punten. Verwacht
0123456789,BE0123456789of0123.456.789, en normaliseer het nummer voor je zoekt. - Het volume. In het volledige bestand van 26 september 2026 telt
activity.csvalleen al ongeveer 34 miljoen rijen. Lees de CSV-bestanden als stream in plaats van ze in het geheugen te laden, en voorzie schijfruimte voor de zip, de uitgepakte bestanden en je database tegelijk.
Wat de licentie van je vraagt
- Vermeld de bron en de datum van de laatste bijwerking van de gegevens.
- Wijzig de gegevens niet en vervorm hun betekenis niet, en gebruik ze voor het doel dat je bij je registratie opgaf.
- Gebruik persoonsgegevens niet voor direct marketing. Dat geldt voor alle gegevens van ondernemingen die natuurlijke personen zijn.
- Voor de persoonsgegevens die je bewaart, ben je verwerkingsverantwoordelijke volgens de AVG en moet je verzoeken om inzage, verbetering en bezwaar behandelen.
- De licentie vervalt als je een jaar lang niets downloadt.
Dit is een samenvatting voor ontwikkelaars, geen juridisch advies. Lees de licentie (in het Frans) voor je de gegevens gebruikt.
KBO Open Data of CBE2JSON?
| KBO Open Data | CBE2JSON |
|---|---|
ZIP- / CSV-bestanden
|
JSON REST API
|
Full- + Update-import
|
Beheerde synchronisatie
|
Meerdere tabellen om te joinen
|
Kant-en-klaar ondernemingsobject
|
Tientallen miljoenen activiteitsrijen te beheren
|
Gehoste infrastructuur
|
Een lokale database om te onderhouden
|
Geen opslag nodig
|
Een zoekfunctie om zelf te bouwen
|
Zoeken via de API
|
Formaatwijzigingen om op te volgen
|
Onderhoud inbegrepen
|
KBO Open Data blijft de beste keuze als je de volledige dataset zelf wilt bezitten of analyseren. CBE2JSON is gemaakt voor applicaties die de gegevens willen opzoeken zonder de importinfrastructuur te onderhouden.
De gegevens nodig, niet de infrastructuur?
CBE2JSON downloadt, importeert en synchroniseert KBO Open Data elke dag, en ontsluit de gegevens via een kant-en-klare JSON-API.
Verzoek
POST https://api.cbe2json.be/byCBE
Content-Type: application/json
{ "clientId": "…", "secretKey": "…", "data": { "cbe": "0202.239.951" } } Antwoord (ingekort)
{
"enterpriseNumber": "0202.239.951",
"status": "AC",
"startDate": "1930-07-19T00:00:00.000Z",
"juridicalFormDescription": {
"FR": "Société anonyme de droit public",
"NL": "Naamloze vennootschap van publiek recht", …
},
"denominations": [
{ "language": 1, "typeOfDenomination": "001", "denomination": "PROXIMUS", … },
{ "language": 2, "typeOfDenomination": "001", "denomination": "PROXIMUS", … }
],
"addresses": [
{ "typeOfAddress": "REGO", "zipcode": "1030", "municipalityFR": "Schaerbeek", … }
],
"activities": [ … ],
"establishments": [ … ],
"meta": { "source": "CBE", "dataUpdatedAt": "2026-09-26" }
}
Gratis proberen
Bekijk de documentatie
50 gratis credits per maand, zonder kredietkaart. Meer nodig? Start een proefperiode van 30 dagen voor Developer vanuit je dashboard.
Gerelateerde bronnen
Bronnen: het KBO Open Data-cookbook (FOD Economie), de Open Data-licentie en onze eigen dagelijkse import van de bestanden. De cijfers komen uit het volledige bestand van 26 september 2026.