Belgium Company Registry (KBO/CBE) Scraper avatar

Belgium Company Registry (KBO/CBE) Scraper

Pricing

from $12.75 / 1,000 results

Go to Apify Store
Belgium Company Registry (KBO/CBE) Scraper

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Belgium KBO/BCE Company Registry Scraper

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
companyNamestringconditionalColruytSearch Belgian companies by name and collect matching enterprises with full details.
enterpriseNumberstringconditional(empty)Look up one company by enterprise number, for example 0400.378.485 or 0400378485. Takes priority over companyName.
maxCompaniesintegerno10Maximum companies to collect when searching by name. Free Apify plans are capped at 10 per run.
languageenumnofrLanguage of labels and descriptions: fr, nl, de, or en.
withAiCompanySummarybooleannofalseAdd an AI plain-English business summary per company. Billed only when a summary is produced. Paid Apify plans only.
withAiRiskFlagsbooleannofalseAdd KYB red flags (stopped/dissolved status, legal situation, entity age, missing registrations). Billed only when flags are produced. Paid Apify plans only.
withAiIndustrybooleannofalseAdd a normalized NACE/NAICS-style industry classification. Billed only when a classification is produced. Paid Apify plans only.
enrichContactsbooleannofalseFor 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.
enrichContactsMaxintegerno50Cap 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.

FieldTypeDescription
enterpriseNumberstringFormatted KBO/BCE enterprise number.
vatNumberstringVAT number (BE + digits) when the company is VAT registered.
namestringOfficial company name.
abbreviationstringRegistered abbreviation, or null.
statusstringRegistration status, for example Actif (active).
legalSituationstringLegal situation, for example Situation normale.
startDatestringEnterprise start date as published.
legalFormstringLegal form, for example Société anonyme.
entityTypestringEntity type, for example Personne morale.
addressstringRegistered seat address.
phonestringRegistered phone, or null.
emailstringRegistered email, or null.
websitestringRegistered website, or null.
capitalstringRegistered capital shown in the header block, or null.
establishmentUnitCountintegerNumber of establishment units.
activitiesobject[]NACE activities, each with registration, naceVersion, naceCode, naceLabel, since.
functionHoldersobject[]Directors and representatives, each with role, personName, personNumber, since.
establishmentUnitsobject[]Establishment units, each with establishmentNumber, status, startDate, name, address.
qualitiesobject[]Registered qualities, each with label and since.
entrepreneurialCapacitiesobject[]Entrepreneurial capacities, each with label and since.
authorizationsobject[]Registered authorizations.
financialDataobjectFinancial block: capital, generalMeeting, fiscalYearEnd, when published.
entityLinksobject[]Links to related entities, each with enterpriseNumber, name, relation.
externalLinksobject[]Official external resources, each with label and url.
aiCompanySummarystringAI business summary, or null unless enabled.
aiRiskFlagsstring[]AI KYB risk flags, or null unless enabled.
aiRiskLevelstringAI risk level, or null unless enabled.
aiIndustrystringAI industry label, or null unless enabled.
aiIndustryCodestringAI industry code, or null unless enabled.
enrichedEmailstringPublic contact email found by the contact add-on (only when enrichContacts is on).
enrichedContactNamestringContact person name found by the add-on (only when enrichContacts is on).
enrichedJobTitlestringContact job title from the add-on (only when enrichContacts is on).
enrichedEmailStatusstringValidation status of the found email (only when enrichContacts is on).
urlstringDirect URL to the KBO/BCE public page for this company.
languagestringLanguage of the labels in this record.
sourcestringAlways Crossroads Bank for Enterprises (KBO/BCE).
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). 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 error field 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 maxTotalChargeUsd on 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.

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.