Belgium Company Registry (KBO/BCE) API and MCP — Company Profile by Enterprise Number
Send a Belgian enterprise number and get the company as structured JSON: name, status, legal form, start date, address, activities with codes, directors with their start dates, phone and website, capital, financial year end, and establishment units.
- You send
- a Belgian enterprise number, or the link to the company page
- You get back
- status, legal form, start date, address, activities, directors, contact details, capital, links between entities and establishment units
- Coverage
- Belgium — entities on KBO/BCE.
- Price
- 10 pts — $10 per 1,000
- Charged only when the record resolves. A lookup that finds nothing is not billed.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| KBO/BCE directly | Open KBO/BCE and read the record | Usually free, sometimes per-document | A different interface, language and data shape for every country you add |
| Collecting it yourself | Build and host a crawler per register, then keep each one alive | Infrastructure and maintenance | Registers change their pages without warning, and nobody is on the hook when yours breaks |
| NeuralVerge | One request, the same shape as every other source in the catalog | $10 per 1,000, misses not billed | Covers Belgium — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
session_id | string | Id of this run, for tracing. |
kind | string | Source type of the response. |
company | string | The identifier you sent. |
company_id | string | The identifier as the register uses it. |
human | string | Readable summary of the record. |
total_points | number | Points charged for the run. |
machine.company.registration_number | string | Enterprise number, dotted. |
machine.company.name | string | Company name. |
machine.company.status | string | Status, e.g. Active. |
machine.company.address | string | Registered office address. |
machine.company.url | string | Link to the company page on the register. |
machine.company.company_type | string | Legal form. |
machine.company.incorporation_date | string | Start date (YYYY-MM-DD). |
machine.company.legal_situation | string | Legal situation, e.g. Normal situation. |
machine.company.entity_type | string | Entity type, e.g. Legal person. |
machine.company.other_names[] | array | Other names; empty in the sample. |
machine.company.abbreviation | null | Empty in the sample. |
machine.company.commercial_name | null | Empty in the sample. |
machine.company.phone | string | Phone number. |
machine.company.fax | null | Empty in the sample. |
machine.company.email | null | Empty in the sample. |
machine.company.website | string | Website. |
machine.company.establishment_units | number | Number of establishment units. |
machine.company.capital | string | Capital as displayed. |
machine.company.annual_assembly | string | Month of the annual assembly. |
machine.company.financial_year_end | string | Financial year end. |
machine.company.activity | string | Main activities as one text line. |
machine.company.activities[] | array | Activities: version, code and description. |
machine.company.directors[] | array | Directors: role, name and since date. |
machine.company.entrepreneurial_skills[] | array | Entrepreneurial skills: name, value and since date. |
machine.company.characteristics[] | array | Characteristics, such as VAT liability, with since date. |
machine.company.authorisations[] | array | Authorisations: name, url and since. |
machine.company.activities_all[] | array | Activities by type (e.g. VAT) with version, code, description and since date. |
machine.company.links_between_entities[] | array | Linked entities: direction, enterprise_number, name, relation, since and url. |
machine.company.external_links[] | array | Links to related public services: name and url. |
machine.company.establishments[] | array | Establishment units: number, status, start_date, name, address, address_since and url. |
machine.company.establishments_total | number | Total establishment units. |
machine.company.establishments_truncated | boolean | True when the list holds fewer units than establishments_total. |
machine.blocked | boolean | Whether the register refused the request. |
machine.pages_opened | number | Register pages read for the run. |
machine.proxy_traffic_bytes | number | Size of the data transferred for the run, in bytes. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "be_companies",
"company": "0202.239.951",
"company_id": "0202239951",
"human": "# Belgium — KBO/BCE — company\n\n- **Number:** 0202239951\n- **Pages opened:** 2\n- **Proxy traffic:** 39.8 KB\n- **Name:** PROXIMUS\n- **Status:** Active\n- **Type:** Public limited company\n- **Registered:** 1930-07-19\n- **Address:** Boulevard du Roi AlbertII 27, 1030 Schaerbeek",
"machine": {
"company": {
"registration_number": "0202.239.951",
"name": "PROXIMUS",
"status": "Active",
"address": "Boulevard du Roi AlbertII 27, 1030 Schaerbeek",
"url": "https://kbopub.economie.fgov.be/kbopub/toonondernemingps.html?lang=en&ondernemingsnummer=0202239951",
"company_type": "Public limited company",
"incorporation_date": "1930-07-19",
"legal_situation": "Normal situation",
"entity_type": "Legal person",
"other_names": [],
"abbreviation": null,
"commercial_name": null,
"phone": "022024111",
"fax": null,
"email": null,
"website": "www.proximus.com",
"establishment_units": 186,
"capital": "1.000.000.000,00 EUR",
"annual_assembly": "April",
"financial_year_end": "31 December",
"activity": "61.100 - Wired, wireless, and satellite telecommunication activities; 26.300 - Manufacture of communication equipment",
"activities": [
{
"version": "2025",
"code": "61.100",
"description": "Wired, wireless, and satellite telecommunication activities"
},
{
"version": "2025",
"code": "26.300",
"description": "Manufacture of communication equipment"
}
],
"directors": [
{
"role": "Director",
"name": "Attout, Emmanuèle",
"since": "2026-04-15"
},
{
"role": "Director",
"name": "Basyn, Caroline",
"since": "2024-04-17"
}
],
"entrepreneurial_skills": [
{
"name": "Non SME dispensation",
"value": "Dispensation",
"since": "2017-10-12"
}
],
"characteristics": [
{
"name": "Employer National Social Security Office",
"since": "2002-07-01"
},
{
"name": "Subject to VAT",
"since": "1971-01-01"
}
],
"authorisations": [
{
"name": "License as a contractor",
"url": "https://weblist.economie.fgov.be/en/recognized-contractor/0202239951",
"since": null
}
],
"activities_all": [
{
"type": "VAT",
"version": "2025",
"code": "61.100",
"description": "Wired, wireless, and satellite telecommunication activities",
"since": "2025-01-01"
},
{
"type": "VAT",
"version": "2025",
"code": "26.300",
"description": "Manufacture of communication equipment",
"since": "2025-01-01"
}
],
"links_between_entities": [
{
"direction": "incoming",
"enterprise_number": "0442257642",
"name": "TELINDUS",
"relation": "has been absorbed by this entity",
"since": "2010-01-04",
"url": "https://kbopub.economie.fgov.be/kbopub/toonondernemingps.html?lang=en&ondernemingsnummer=0442257642"
},
{
"direction": "incoming",
"enterprise_number": "0453918428",
"name": "BELGACOM MOBILE",
"relation": "has been absorbed by this entity",
"since": "2010-01-04",
"url": "https://kbopub.economie.fgov.be/kbopub/toonondernemingps.html?lang=en&ondernemingsnummer=0453918428"
}
],
"external_links": [
{
"name": "HealthPro - Register of active healthcare professionals",
"url": "https://apps.health.belgium.be/healthpro/home"
},
{
"name": "Publications in National Gazette",
"url": "https://www.ejustice.just.fgov.be/cgi_tsv/list.pl?language=fr&btw=0202239951&page=1&view_numac=0202239951#SUM"
}
],
"establishments": [
{
"number": "2.102.964.255",
"status": "Active",
"start_date": "1995-01-11",
"name": "Proximus",
"address": "Rue du Progrès 55, 1210 Saint-Josse-ten-Noode",
"address_since": "2023-11-20",
"url": "https://kbopub.economie.fgov.be/kbopub/toonvestigingps.html?lang=en&vestigingsnummer=2102964255"
},
{
"number": "2.102.964.651",
"status": "Active",
"start_date": "1998-01-27",
"name": "Proximus",
"address": "Boulevard Sylvain Dupuis 433, 1070 Anderlecht",
"address_since": "1998-01-27",
"url": "https://kbopub.economie.fgov.be/kbopub/toonvestigingps.html?lang=en&vestigingsnummer=2102964651"
}
],
"establishments_total": 186,
"establishments_truncated": true
},
"blocked": false,
"pages_opened": 2,
"proxy_traffic_bytes": 40785
},
"total_points": 10
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
One company per request. Pass the registration number or the link to the record on the register.
curl -X POST https://api.neuralverge.ai/functions/v1/run-be-companies \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"0202.239.951"}'What teams use it for
Where this field shows up in an actual workflow.
Confirm status, legal situation and registered address before you contract.
See directors with start dates and the activity codes the company is registered under.
Follow links between entities to see mergers and absorptions, with dates.
List establishment units with addresses and start dates.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Belgium — entities on KBO/BCE.
Read at request time, so the answer reflects the register as it stands when you ask.
KBO/BCE is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —The establishments list is capped; the response gives the total and a truncated flag.
- —Email, fax and abbreviation are empty in the sample, so contact fields depend on what the company has registered.
- —Directors are listed with a start date but without addresses or other personal details.
Questions, answered
The enterprise number, with or without dots (0202.239.951 or 0202239951), or the link to the company page.
Related sources
Try kbo company on your own data
One request format across every source in the catalog.