Company Data by Nalios

Documentation

A REST API over the Belgian Crossroads Bank for Enterprises. JSON in, JSON out.

Authentication

Send your key in the X-API-Key header on every request.

curl -H "X-API-Key: your_key" https://companydata.nalios.be/api/v1/companies/0214596464

Endpoints

MethodPathDescription
GET/api/v1/companies/{number}One company. Params: lang, establishments, vies
GET/api/v1/companies/{number}/historyChange history of one company
GET/api/v1/companiesSearch. Params: name, nace, city, zip, legal_form, status, limit
GET/api/v1/autocompleteType-ahead by name or number. Param: q
GET/api/v1/changesEverything changed since a datetime. Param: since
GET/api/v1/companies/{number}/accountsFiled annual accounts, computed ratios (solvency, liquidity, return on equity), directors/shareholders, and companies linked through the same directors or shareholders (related_companies). Param: limit, refresh
GET/api/v1/companies/{number}/benchmarkPercentile and sector quartiles for each ratio, compared against peers. Param: depth (NACE prefix length)
GET/api/v1/companies/{number}/groupOwnership around a company: who holds it (owners) and what it holds (subsidiaries), with percentages and the controlling owner. Param: depth (1 to 3 levels each way)
GET/api/v1/people/{person_id}/mandatesEvery company a director, representative or shareholder is linked to
GET/api/v1/people/{person_id}/networkMulti-hop director/shareholder graph, up to 3 hops. Param: depth
GET/api/v1/watchlistList the companies watched by your key
POST/api/v1/watchlistAdd a company to your watchlist. Body: {"enterprise_number": "..."}
DELETE/api/v1/watchlist/{number}Remove a company from your watchlist
PUT/api/v1/webhookSet the URL notified when a watched company changes. Body: {"url": "https://..."}
GET/healthService status, no key required

Known limitations

These are real gaps, not bugs — worth knowing before you build on them:

Languages

All coded values carry both the raw code and a readable label. Pass lang=FR or lang=NL to choose the label language; Dutch is used as a fallback when a translation is missing.

Errors

StatusMeaning
401missing api_key or invalid api_key
404Unknown enterprise number
429quota exceeded or rate limit exceeded

Machine-readable

OpenAPI specification · Postman collection · Interactive reference

Client libraries

Minimal clients you can drop into your project: Python · JavaScript

Removed companies

A company that exercised its right to erasure is removed from every endpoint and returns 404. The /api/v1/changes feed still emits a minimal entry with "suppressed": true so you can purge your own cache.