A reliable partner for years, responsive, efficient, and high-quality.
KBO API: Belgian business register data in one REST call
The Crossroads Bank for Enterprises publishes free Open Data files, but they carry no employee figures, no financials and no ownership, and they arrive as daily delete-and-insert files you have to stitch together. CompanyData gives you 2.4M Belgian businesses with those fields added, in one live REST API.
What is the KBO API?
The Kruispuntbank van Ondernemingen, in French the Banque-Carrefour des Entreprises, is Belgium's official business register. It publishes Open Data files free after registration: enterprise number, establishment numbers, legal form, address, Nacebel activity codes, denominations and status. For static reference data that is a genuinely open source.
The limits are what the register does not hold and how it ships. There are no employee counts, they sit with RSZ/ONSS; no financials, those live at the National Bank's Balanscentrale; and no owners or group structure. The files publish daily as delete-and-insert pairs you must apply in order, and live lookups need the paid Public Search SOAP service. CompanyData starts from the same register, adds employee bands, structured financials, group structure and higher-fill contact data, and serves it through one API that also covers 200+ other countries.
The official register, in short
- Open Data files free after registration: enterprise number, address, Nacebel, status
- contact.csv carries telephone, email and web address, which few registers do
- Public Search SOAP for live lookups is paid, at an unpublished rate on a prepaid balance
- No employee counts, no financials, no ownership or group structure
- Full and update files publish daily as delete-and-insert pairs to reconcile
- One country, so separate integrations for the rest
Look up any Belgian business
Register fields plus the enrichment layer, in one response. Pick a business, you need no key for the example.
- Official Nacebel codes on every record
- Phone, email and website at higher fill than contact.csv
- The same request across 200+ countries
KBO and CompanyData, field by field
Belgium is one of the few registers that publishes contact details at all, but only a fraction of records carry one. CompanyData fills those gaps and adds the employee, financial and group fields the register never held.
| Data point | Official register | CompanyData API |
|---|---|---|
| Businesses in the file | 1,958,734 | 2,378,537 |
| Legal name and denominations | ✓ | ✓ |
| Enterprise number | 515,281 | 2,352,674 |
| Registered address | 500,563 | 2,164,216 |
| Nacebel code and legal form | ✓ | ✓ |
| Website | ✓ | 635,074 |
| Telephone | ✓ | 1,029,895 |
| Mobile number | ✗ | 548,557 |
| Business email | ✓ | 557,681 |
| Employee band | ✗ | ✓ |
| Director or contact person | ✗ | 1,646,102 |
| Revenue and business size | ✗ NBB Balanscentrale, separate | ✓ structured fields |
| Group structure | ✗ | ✓ included |
| International records | ✗ | 365M worldwide |
| Ready to query, no file wrangling | ✗ daily delete-and-insert files | ✓ one live API |
Our column counts every registered entity we hold for this country, active or inactive. Some registers only serve active entities through their API, which we think is a gap: a holding or a trust can be dormant and still matter as an entity, so we keep it. Measured live in our own file, August 2026, and refreshed monthly. Register figure: enterprises on the KBO Public Search counter, active entries only, 19 August 2026.
Search and filter
The Open Data files are code-driven flat files: to select a segment you download the full set, join it against code.csv and reconcile the daily update pairs yourself. CompanyData lets you filter on Nacebel, employee band, revenue, region or city and export in bulk with the enrichment already attached.
Price
The Open Data files are free but static, and the Public Search SOAP service that answers live is paid at an unpublished rate on a prepaid balance. CompanyData is credit-based from EUR 0.02 per credit, with 150 free calls in your first week and one API for 200+ countries.
More fields than the register returns
Employee bands, revenue, directors and higher-fill contacts: one lookup away. Defaults to Belgium, switch country whenever you want.
Working with the official KBO data yourself
The Open Data route is genuinely open, but it is files, not a live lookup. Here is how to get started in three steps, and the six things that cost small teams the most time, whether you enrich with us or not.
Register for the Open Data files
Sign up on economie.fgov.be to download the free full and update files. Registration is required before any download is available.
Decode everything against code.csv
The files are code-driven: statuses, legal forms and Nacebel labels all resolve through the bilingual code.csv. Nothing is human-readable until you join it.
Apply the daily update pairs in order
Updates ship as delete-and-insert rows and must be applied in sequence. For a live single lookup you need the paid Public Search SOAP service instead.
Honestly: the KBO Open Data files are fine if you want a static reference set and are happy to wrangle daily files. If you need employee bands, financials, group structure, higher-fill contacts or international coverage, you end up with us.
Get your API keyEnterprise and establishment numbers share one column
Both are ten digits in the same EntityNumber column, told apart only by the dot pattern: 9999.999.999 is an enterprise, 9.999.999.999 an establishment. Match on the wrong one and you join to the wrong row.
The check digit is 97 minus the rest
The last two digits equal 97 minus the first eight modulo 97. It is a cheap client-side validity check before you ever call.
Validators hardcoded to BE0 are already wrong
The first enterprise number starting with 1 was issued on 19 September 2023. Any check that assumes a leading zero rejects legitimate new Belgian businesses.
contact.csv exists but fills thinly
Belgium is unusual in publishing telephone, email and web address at all, but the practical fill rate is low, so a register-only contact strategy leaves most records blank.
Open Data holds only active entities
Ceased businesses do not appear in the files at all; they show up only through the paid Public Search service, so churn analysis needs a second source.
CBE personal data is not for direct marketing
Personal data reused from the Crossroads Bank may not be used for direct marketing. We carry the marketability flags so you can enforce that in your own flow.
What teams use Belgian register data for
Verify Belgian counterparties on the enterprise number. Status, legal form and registered address checked automatically.
Build prospect lists filtered by Nacebel code, region, revenue or employee band.
Backfill enterprise numbers, Nacebel codes, revenue and contact data across your Belgian accounts in bulk.
Track ceased entities, insolvencies and changes across your Belgian supplier base.
Type-ahead on denominations in your signup form, so the enterprise number and address arrive exactly as the register writes them.
Key suppliers and customers to an enterprise number once, then keep name, status and address current automatically.
Belgium is one of 200+ countries on the same API
The same request, the same response schema, from the Crossroads Bank to Companies House, the German Handelsregister and Sirene. Build the Belgian integration once and take it across the border.
Explore the Company Data API
The same API, register by register
What teams build with register data
Onboarding, KYB and supplier checks in production, on the same endpoints you tried above.
Norway's national trust mark verifies businesses against the register in real time, cutting verification time by 99%.
Read the story
Up-to-date business details from around the world, screened straight inside the onboarding flow.
Read the story
Large-scale KYB verification through business lookup, built straight into the signup path.
Read the story350M statutory addresses and registry director records inside Sumsub's global KYB flows, so shell offices and nominee directors get caught at onboarding.
Read the storyRegistry-sourced business and UBO data across Africa, Asia and Latin America, with 80% fewer manual reviews.
Read the storyKBO API pricing
Transparent, credit-based pricing. Start with a free trial.
Make your first 150 lookups free
- 150 lookups and 10 exports in week one, key right after signup
- 1 credit per business returned, usage-based after that
- No credit card, no contract, no sales call
Questions? Ask a human.
No ticket queue. Your question lands with our data team and you get an answer within 24 hours.
Mon to Fri 9:00 to 17:30 CET · info@companydata.com
What our customers say
Real feedback from the people using CompanyData every day.
The best data company we have worked with.
Great feedback from our team on the data quality.
Frequently asked questions
What is the KBO API?
KBO is the Kruispuntbank van Ondernemingen, Belgium's official business register, known in French as the Banque-Carrefour des Entreprises. It publishes free Open Data files with the enterprise number, establishment numbers, legal form, address, Nacebel activity codes and status, and a paid Public Search SOAP service for live lookups.
Is the KBO API free?
The Open Data files are free after registration, but they are flat files published daily as delete-and-insert pairs, not a live API. The Public Search SOAP service that answers a single live query is paid, at an unpublished rate against a prepaid request balance.
With CompanyData your first 150 lookups are free in week one, and pricing is usage-based after that.
Does KBO give phone numbers and email addresses?
Unusually for a business register, yes: the contact.csv file carries telephone, email and web address. The catch is the fill rate, which is low, so most records come back without them. We add contact data at higher fill on the records where it exists, with the marketability flags attached.
Does KBO have employee counts or financials?
No. Employee figures are held by the social security bodies RSZ and ONSS, and financial accounts sit at the National Bank's Balanscentrale, a separate system with its own pricing. The register itself carries neither. We add employee bands and structured financials alongside the register fields.
How is a Belgian enterprise number formatted?
The ondernemingsnummer is ten digits, written 9999.999.999. Establishment numbers are also ten digits but written 9.999.999.999, and both live in the same column, told apart by the dot pattern. The last two digits equal 97 minus the first eight modulo 97. Since 19 September 2023 numbers can start with a 1, so any validator hardcoded to a leading zero is already wrong.
Can I get Belgian business data in bulk?
Through the Open Data files, yes, but you download the full set, decode it against code.csv and reconcile the daily update pairs yourself. We support bulk selections filtered by Nacebel code, region, revenue and employee band, exported to Excel, CSV or straight over the API, with the enrichment already attached.
How many Belgian businesses do you cover?
2.4M Belgian registrations, including establishments, continuously updated from the register and other official sources.
Make 150 free API calls before you spend anything
Tell us which Belgian businesses you need. You get a trial key with 150 lookups and 10 exports, plus a real sample response for your segment, within 24 hours.
or call +31 (0)20 705 2360