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.789 en nummers van vestigingseenheden in de vorm 2.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.

  1. Laad eerst een Full-bestand in.
  2. Verwijder per tabel alle rijen van de nummers in <tabel>_delete.csv.
  3. Voeg daarna alle rijen van <tabel>_insert.csv toe.
  4. Vervang je codetabel door de code.csv uit 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.csv is de taal een getal (1 Frans, 2 Nederlands, 3 Duits, 4 Engels, 0 onbekend); in code.csv is 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 met code.csv.
  • Drie NACE-BEL-versies naast elkaar. Een activiteitscode betekent pas iets samen met haar NaceVersion: NACE-BEL 2003, 2008 of 2025. 62010 bestaat bijvoorbeeld in de tabel van 2008, maar niet in die van 2003 of 2025.
  • Geen Engelse omschrijvingen. code.csv omschrijft 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 Id van 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, BE0123456789 of 0123.456.789, en normaliseer het nummer voor je zoekt.
  • Het volume. In het volledige bestand van 26 september 2026 telt activity.csv alleen 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.