Belgium Company Registry (KBO/CBE) Scraper
Pricing
from $12.75 / 1,000 results
Belgium Company Registry (KBO/CBE) Scraper
Look up Belgian companies by enterprise number from the CBE (KBO/BCE) public registry. Get official name, status, legal form, registered address, NACE activities, start date, contact details and directors. Export to JSON, CSV or Excel.
Pricing
from $12.75 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Belgium KBO/BCE Company Registry Scraper
Here is one real result, with the fields the actor returns (long arrays trimmed, noted below):
{"enterpriseNumber": "0400.378.485","vatNumber": "BE0400378485","name": "Colruyt Group","abbreviation": null,"status": "Actif","legalSituation": "Situation normale","startDate": "9 mars 1950","legalForm": "Société anonyme","entityType": "Personne morale","address": "Edingensesteenweg 196 1500 Halle","phone": null,"email": null,"website": null,"capital": null,"establishmentUnitCount": 38,"activities": [{ "registration": "VAT", "naceVersion": "2025", "naceCode": "47.110", "naceLabel": "Commerce de détail non spécialisé dans lequel les produits alimentaires et le tabac prédominent", "since": "1 janvier 2025" },{ "registration": "NSSO", "naceVersion": "2025", "naceCode": "70.100", "naceLabel": "Activités des sièges sociaux", "since": "1 janvier 2025" }],"functionHolders": [{ "role": "Représentant permanent", "personName": "Colruyt, Willem", "personNumber": "0422.041.357", "since": "26 septembre 2018" },{ "role": "Représentant permanent", "personName": "Coppens, Rika", "personNumber": "0479.445.561", "since": "29 mars 2019" }],"establishmentUnits": [{ "establishmentNumber": "2.102.363.449", "status": "Actif", "startDate": "25 octobre 1982", "name": "Colruyt Group Services", "address": "Edingensesteenweg 196 Boîte . 1500 Halle" }],"qualities": [{ "label": "Employeur ONSS", "since": "1 janvier 1945" },{ "label": "Assujettie à la TVA", "since": "1 janvier 1971" }],"entrepreneurialCapacities": [{ "label": "Boucher-charcutier", "since": "3 juin 2019" }],"authorizations": [],"financialData": { "capital": "387.537.870,25 EUR", "generalMeeting": "septembre", "fiscalYearEnd": "31 mars" },"entityLinks": [{ "enterpriseNumber": "0401.377.189", "name": "COLRUYT RETAIL", "relation": "est absorbée par cette entité depuis le 1 janvier 2020" }],"externalLinks": [{ "label": "Publications des comptes annuels à la BNB", "url": "https://consult.cbso.nbb.be/consult-enterprise/0400378485" }],"aiCompanySummary": null,"aiRiskFlags": null,"aiRiskLevel": null,"aiIndustry": null,"aiIndustryCode": null,"url": "https://kbopub.economie.fgov.be/kbopub/toonondernemingps.html?ondernemingsnummer=0400378485&lang=fr","language": "fr","source": "Crossroads Bank for Enterprises (KBO/BCE)","observedAt": "2026-08-10T14:28:45.203Z"}
(This company returns 7 activities, 21 functionHolders, and 38 establishmentUnits; each array is trimmed above to keep the example readable. Every value shown is real and unedited.)
The most complete Belgian company registry scraper available. It returns every field the official Crossroads Bank for Enterprises (KBO/BCE) publishes for an enterprise, including directors, establishment units, NACE activities, financial data, entity links, and official external links, plus optional AI and contact-enrichment add-ons to turn a registry record into a KYB or sales lead.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor reads the official Belgian Crossroads Bank for Enterprises (KBO/BCE) public registry. Look up one company by its enterprise number, or search by company name and collect every matching enterprise. Each record is parsed into a normalized structure: official name, VAT number, status, legal form, registered address, start date, all NACE activities (across NACE 2003/2008/2025 versions), directors and representatives, establishment units, registered qualities and capacities, financial data, links to related entities, and official external links (annual accounts at the NBB, Moniteur belge publications, and more).
Labels and descriptions are returned in the language you choose (fr, nl, de, or en). Missing source values are returned as null, never invented. Optional add-ons can generate an AI business summary, KYB risk flags, an industry classification, and a public contact email plus contact name.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 companies matching the name "Colruyt" with French labels.
{"maxCompanies": 10,"companyName": "Colruyt","language": "fr"}
To look up a single company by its enterprise number instead:
{"enterpriseNumber": "0400.378.485","language": "en"}
enterpriseNumber takes priority over companyName when both are set.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
companyName | string | conditional | Colruyt | Search Belgian companies by name and collect matching enterprises with full details. |
enterpriseNumber | string | conditional | (empty) | Look up one company by enterprise number, for example 0400.378.485 or 0400378485. Takes priority over companyName. |
maxCompanies | integer | no | 10 | Maximum companies to collect when searching by name. Free Apify plans are capped at 10 per run. |
language | enum | no | fr | Language of labels and descriptions: fr, nl, de, or en. |
withAiCompanySummary | boolean | no | false | Add an AI plain-English business summary per company. Billed only when a summary is produced. Paid Apify plans only. |
withAiRiskFlags | boolean | no | false | Add KYB red flags (stopped/dissolved status, legal situation, entity age, missing registrations). Billed only when flags are produced. Paid Apify plans only. |
withAiIndustry | boolean | no | false | Add a normalized NACE/NAICS-style industry classification. Billed only when a classification is produced. Paid Apify plans only. |
enrichContacts | boolean | no | false | For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found. |
enrichContactsMax | integer | no | 50 | Cap how many results the contact add-on tries to enrich. Free Apify accounts are capped at 3. |
Provide either companyName or enterpriseNumber.
Output reference
One dataset item per company. Types: string, integer, object, object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
enterpriseNumber | string | Formatted KBO/BCE enterprise number. |
vatNumber | string | VAT number (BE + digits) when the company is VAT registered. |
name | string | Official company name. |
abbreviation | string | Registered abbreviation, or null. |
status | string | Registration status, for example Actif (active). |
legalSituation | string | Legal situation, for example Situation normale. |
startDate | string | Enterprise start date as published. |
legalForm | string | Legal form, for example Société anonyme. |
entityType | string | Entity type, for example Personne morale. |
address | string | Registered seat address. |
phone | string | Registered phone, or null. |
email | string | Registered email, or null. |
website | string | Registered website, or null. |
capital | string | Registered capital shown in the header block, or null. |
establishmentUnitCount | integer | Number of establishment units. |
activities | object[] | NACE activities, each with registration, naceVersion, naceCode, naceLabel, since. |
functionHolders | object[] | Directors and representatives, each with role, personName, personNumber, since. |
establishmentUnits | object[] | Establishment units, each with establishmentNumber, status, startDate, name, address. |
qualities | object[] | Registered qualities, each with label and since. |
entrepreneurialCapacities | object[] | Entrepreneurial capacities, each with label and since. |
authorizations | object[] | Registered authorizations. |
financialData | object | Financial block: capital, generalMeeting, fiscalYearEnd, when published. |
entityLinks | object[] | Links to related entities, each with enterpriseNumber, name, relation. |
externalLinks | object[] | Official external resources, each with label and url. |
aiCompanySummary | string | AI business summary, or null unless enabled. |
aiRiskFlags | string[] | AI KYB risk flags, or null unless enabled. |
aiRiskLevel | string | AI risk level, or null unless enabled. |
aiIndustry | string | AI industry label, or null unless enabled. |
aiIndustryCode | string | AI industry code, or null unless enabled. |
enrichedEmail | string | Public contact email found by the contact add-on (only when enrichContacts is on). |
enrichedContactName | string | Contact person name found by the add-on (only when enrichContacts is on). |
enrichedJobTitle | string | Contact job title from the add-on (only when enrichContacts is on). |
enrichedEmailStatus | string | Validation status of the found email (only when enrichContacts is on). |
url | string | Direct URL to the KBO/BCE public page for this company. |
language | string | Language of the labels in this record. |
source | string | Always Crossroads Bank for Enterprises (KBO/BCE). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | Present only on a failed lookup; a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"companyName": "Colruyt", "language": "fr"}), arrays trimmed for length:
{"enterpriseNumber": "0400.378.485","vatNumber": "BE0400378485","name": "Colruyt Group","status": "Actif","legalSituation": "Situation normale","startDate": "9 mars 1950","legalForm": "Société anonyme","entityType": "Personne morale","address": "Edingensesteenweg 196 1500 Halle","establishmentUnitCount": 38,"financialData": { "capital": "387.537.870,25 EUR", "generalMeeting": "septembre", "fiscalYearEnd": "31 mars" },"url": "https://kbopub.economie.fgov.be/kbopub/toonondernemingps.html?ondernemingsnummer=0400378485&lang=fr","language": "fr","source": "Crossroads Bank for Enterprises (KBO/BCE)","observedAt": "2026-08-10T14:28:45.203Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~belgium-kbo-companies-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"enterpriseNumber":"0400.378.485","language":"en"}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~belgium-kbo-companies-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companyName":"Colruyt","maxCompanies":25,"language":"fr"}'
Apify CLI:
apify call scrapers_lat/belgium-kbo-companies-scraper \--input '{"enterpriseNumber":"0400378485"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per company returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a lookup fails, the actor writes an item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Add-ons are opt-in. AI summary, risk flags, and industry classification are billed per record only when usable output is produced. Contact enrichment is billed per attempt, with an extra charge only when an email is found. All add-ons require a paid Apify plan.
- Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 companies per run, and contact enrichment at 3. Upgrade for higher caps.
FAQ and troubleshooting
A run returned 0 records. Why? The name matched nothing, or the enterprise number does not exist in KBO/BCE. Check the spelling of the name or the digits of the number. Zero-result runs are not charged.
Which number formats are accepted?
Both dotted (0400.378.485) and plain digits (0400378485) work for enterpriseNumber.
Can I get results in English?
Yes. Set language to en. Note that some registry labels and proper names remain in the original language as published by the source.
What contact data can I get?
Registered phone, email, and website when the company publishes them. Many companies do not, so those fields are often null. The optional contact enrichment add-on attempts to find a public business email and contact name for records that lack one.
Does it include directors and subsidiaries?
Yes. functionHolders lists directors and permanent representatives; entityLinks lists related entities such as absorbed or absorbing companies; establishmentUnits lists each registered branch.
Is this an official government tool? No. This actor is independent and has no affiliation with the Belgian government or KBO/BCE. It reads only data that is publicly available on the KBO/BCE public register. Use it in accordance with the source's terms.
Related scrapers
- France Company Search Scraper: French company registry records.
- Netherlands KVK Funda: Netherlands listings and company context.
- Ireland CRO Companies Scraper: Irish company registry records.
- Denmark CVR Companies Scraper: Danish CVR company records.
- GLEIF LEI Company Records Scraper: Global LEI legal entity records.
- EU VAT VIES Validation Scraper: Validate EU VAT numbers via VIES.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the Belgian government or KBO/BCE. Accesses only publicly available registry data. Use in accordance with the source's terms.
