Documentatie
Een REST-API bovenop de Belgische Kruispuntbank van Ondernemingen. JSON erin, JSON eruit.
Authenticatie
Stuur uw sleutel mee in de header X-API-Key bij elk verzoek.
curl -H "X-API-Key: your_key" https://companydata.nalios.be/api/v1/companies/0214596464
Endpoints
| Methode | Pad | Beschrijving |
|---|---|---|
| GET | /api/v1/companies/{number} | Eén onderneming. Parameters: lang, establishments, vies |
| GET | /api/v1/companies/{number}/history | Wijzigingsgeschiedenis van één onderneming |
| GET | /api/v1/companies | Zoeken. Parameters: name, nace, city, zip, legal_form, status, limit |
| GET | /api/v1/autocomplete | Autocomplete op naam of nummer. Parameter: q |
| GET | /api/v1/changes | Alles wat sinds een tijdstip gewijzigd is. Parameter: since |
| GET | /api/v1/companies/{number}/accounts | Neergelegde jaarrekeningen, berekende ratio's (solvabiliteit, liquiditeit, rendement op eigen vermogen), bestuurders/aandeelhouders en ondernemingen verbonden via dezelfde bestuurders of aandeelhouders (related_companies). Parameters: limit, refresh |
| GET | /api/v1/companies/{number}/benchmark | Percentiel en sectorkwartielen voor elke ratio, vergeleken met vergelijkbare ondernemingen. Parameter: depth (lengte van het NACE-voorvoegsel) |
| GET | /api/v1/companies/{number}/group | Eigendom rond een onderneming: wie ze bezit (owners) en wat ze bezit (subsidiaries), met percentages en de controlerende eigenaar. Parameter: depth (1 tot 3 niveaus in elke richting) |
| GET | /api/v1/people/{person_id}/mandates | Elke onderneming waaraan een bestuurder, vertegenwoordiger of aandeelhouder verbonden is |
| GET | /api/v1/people/{person_id}/network | Bestuurders-/aandeelhoudersgraaf over meerdere schakels, tot 3 schakels. Parameter: depth |
| GET | /api/v1/watchlist | Toont de ondernemingen die uw sleutel volgt |
| POST | /api/v1/watchlist | Voegt een onderneming toe aan uw volglijst. Body: {"enterprise_number": "..."} |
| DELETE | /api/v1/watchlist/{number} | Verwijdert een onderneming uit uw volglijst |
| PUT | /api/v1/webhook | Stelt de URL in die wordt verwittigd wanneer een gevolgde onderneming wijzigt. Body: {"url": "https://..."} |
| GET | /health | Status van de dienst, geen sleutel vereist |
Bekende beperkingen
Dit zijn echte hiaten, geen bugs — goed om te weten voordat u erop bouwt:
- Geen omzetcijfer voor kleine ondernemingen. De Belgische wet verplicht het verkort schema (de meeste kmo's) niet om de omzet bekend te maken.
revenueen elke daarvan afgeleide ratio zijn enkel beschikbaar voor ondernemingen met het volledig schema. - Een benchmark kan zijn vergelijkingsgroep ongemerkt verbreden. Elke ratio wordt eerst vergeleken binnen ondernemingen van dezelfde grootteklasse; zijn er te weinig vergelijkbare ondernemingen, dan wordt de hele sector gebruikt. Het antwoord vermeldt dit altijd via
compared_against— controleer het voordat u een percentiel als volledig vergelijkbaar beschouwt. - Sommige ondernemingen leggen hun jaarrekening enkel als pdf neer. Een neerlegging waarvan de modelcode op
-peindigt, is een pdf-model: de Nationale Bank publiceert er geen gestructureerde gegevens voor. Wij lezen de kerncijfers (balans, resultatenrekening, personeel) uit de pdf zelf en bewaren ze enkel als de balans op de euro klopt. Zulke neerleggingen krijgenpdf_only: true, en hunsourceispdfzodra cijfers gelezen zijn. Bestuurders (naam, functie en data van elk mandaat) en aandeelhouders (naam, aard van de rechten en aandeel in de stemrechten) worden gelezen uit hun lijsten in de neerlegging wanneer die een bekende lay-out volgen, nooit met een privéadres, en een pdf die niet betrouwbaar gelezen kan worden, wordt zonder cijfers teruggegeven. - Percentages zijn breuken.
percentagebij aandeelhouders en deelnemingen is een aandeel tussen 0 en 1 (0.6444betekent 64,44 %). - De eigendomsboom kent enkel wat in het dossier zit.
/groupwordt opgebouwd uit de jaarrekeningen die we bezitten; een ontbrekend niveau betekent dat de jaarrekening nog niet bekend is, niet dat niemand de onderneming bezit. - Jaar-op-jaarcijfers komen uit de neerlegging zelf. Groeipercentages vergelijken het huidige boekjaar met de kolom van het vorige jaar in dezelfde neerlegging en zijn
nullals die kolom ontbreekt. Op omzet gebaseerde ratio's (marges, omzet per VTE) bestaan enkel voor het volledig schema. - Het faillissementsstatuut wordt niet gecontroleerd.
legal.bankruptisnullenlegal.checkedisfalsevoor elke onderneming: gebruik in plaats daarvanlegal.situation, afgeleid van de rechtstoestand in de KBO (faillissement, gerechtelijke reorganisatie, vereffening). Beschouw een ontbrekendebankruptnooit als een bevestigd "niet failliet".
Talen
Alle gecodeerde waarden bevatten zowel de ruwe code als een leesbaar label. Geef lang=FR of lang=NL mee om de taal van de labels te kiezen; Nederlands wordt gebruikt als terugval wanneer een vertaling ontbreekt.
Fouten
| Status | Betekenis |
|---|---|
| 401 | missing api_key of invalid api_key |
| 404 | Onbekend ondernemingsnummer |
| 429 | quota exceeded of rate limit exceeded |
Machineleesbaar
OpenAPI-specificatie · Postman-collectie · Interactieve referentie
Clientbibliotheken
Minimale clients die u in uw project kunt opnemen: Python · JavaScript
Verwijderde ondernemingen
Een onderneming die haar recht op wissing heeft uitgeoefend, wordt uit elk endpoint verwijderd en geeft 404. De feed /api/v1/changes geeft nog steeds een minimale vermelding met "suppressed": true zodat u uw eigen cache kunt opschonen.