Belgian Company Enrichment — KBO/BCE Lookup, No Login Required
Pricing
Pay per usage
Belgian Company Enrichment — KBO/BCE Lookup, No Login Required
Enrich Belgian company data from the official KBO/BCE database. Look up any enterprise by number, name, or address. Returns legal form, NACE activities, capital, management, address, and more. No cookies, no login.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Belgian Company Enrichment — KBO/BCE Lookup
Enrich Belgian company data from the official Kruispuntbank van Ondernemingen (KBO/BCE) database. Look up any enterprise by number, name, or address. Returns legal form, NACE activity codes, capital, management, address, VAT status, and more. No cookies, no login required.
How to scrape Belgian company data
This actor provides three search modes for accessing official Belgian company data:
Mode 1: Enterprise Number Lookup (fastest)
Paste one or more KBO/BTW enterprise numbers. The actor fetches the official company page and extracts all available data. Accepts multiple formats: 0417.497.106, 0417497106, or BE0417497106.
Use this for B2B lead enrichment — feed a list of enterprise numbers from your CRM and get back full company profiles.
Mode 2: Name Search
Search by company name (or part of a name). The actor searches the KBO database, collects all matching enterprise numbers, then enriches each result. Useful for finding competitors, verifying company identity, or prospecting by name.
Mode 3: Address Search
Find all companies registered at a specific address. Search by postal code, street name, and house number. Useful for mapping business density in an area, or checking who else is registered at a shared office address.
What data does Belgian Company Enrichment extract?
| Field | Type | Description |
|---|---|---|
| enterpriseNumber | String | Official KBO number (format: 0417.497.106) |
| name | String | Current registered company name |
| abbreviation | String | Company abbreviation if registered |
| legalForm | String | Legal form (NV, BV, VZW, CV, VOF, etc.) |
| entityType | String | Entity type (Rechtspersoon, Natuurlijk persoon) |
| status | String | Active or stopped |
| legalCondition | String | Legal condition with date (Normale toestand, Gerechtelijk akkoord, etc.) |
| startDate | String | Date the company was registered |
| address | String | Full registered address |
| street | String | Street name |
| houseNumber | String | House number |
| postalCode | String | Belgian postal code |
| city | String | City name |
| phone | String | Phone number (if registered in KBO) |
| String | Email address (if registered in KBO) | |
| website | String | Website URL (if registered in KBO) |
| naceActivities | Array | NACE-BEL activity codes with descriptions |
| capital | String | Registered capital amount |
| numberOfEstablishments | Integer | Number of branch establishments |
| annualMeetingMonth | String | Month of annual general meeting |
| fiscalYearEnd | String | End date of fiscal year |
| vatRegistered | Boolean | Whether VAT-registered |
| vatSince | String | VAT registration date |
| employerRegistered | Boolean | Whether registered as employer (RSZ) |
| employerSince | String | Employer registration date |
| management | Array | Board members with function and appointment date |
| establishments | Array | Branch unit details (if "Include Establishments" is enabled) |
| qualifications | Array | Official qualifications and registrations |
| previousEnterpriseNumbers | Array | Previous KBO numbers (from mergers, restructuring) |
| url | String | Direct link to the KBO Public Search page |
| scrapedAt | String | ISO timestamp of extraction |
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| Search Mode | Select | number | Choose: Number Lookup, Name Search, or Address Search |
| Enterprise Numbers | String List | — | One or more KBO/BTW numbers |
| Company Name | String | — | Company name to search (name mode) |
| Postal Code | String | — | Postal code filter (name + address mode) |
| Street Name | String | — | Street name (address mode) |
| House Number | String | — | House number (address mode) |
| Include Establishments | Boolean | false | Also scrape branch establishment data |
| Include Management | Boolean | true | Also extract board members and positions |
| Active Companies Only | Boolean | true | Skip companies with stopped status |
| Max Results | Integer | 100 | Maximum companies to return |
| Language | Select | nl | Nederlands or Francais |
| Proxy Configuration | Object | — | Apify proxy settings |
Example output
{"enterpriseNumber": "0400.378.485","name": "Colruyt Group","abbreviation": null,"legalForm": "Naamloze vennootschap","entityType": "Rechtspersoon","status": "Actief","legalCondition": "Normale toestand sinds 09/03/1950","startDate": "09/03/1950","address": "Edingensesteenweg 196, 1500 Halle","street": "Edingensesteenweg","houseNumber": "196","postalCode": "1500","city": "Halle","country": "Belgium","phone": null,"email": null,"website": null,"naceActivities": [{ "code": "74.999", "description": "Overige professionele, wetenschappelijke en technische activiteiten" },{ "code": "47.110", "description": "Niet-gespecialiseerde detailhandel waarbij voedings- en genotmiddelen overheersen" },{ "code": "70.100", "description": "Activiteiten van hoofdkantoren" }],"capital": "387.537.870,25 EUR","numberOfEstablishments": 38,"annualMeetingMonth": "september","fiscalYearEnd": "31 maart","vatRegistered": true,"vatSince": "01/01/1971","employerRegistered": true,"employerSince": "01/01/1945","management": [{ "function": "Bestuurder", "name": "Jef Colruyt", "appointmentDate": "26/09/2024" },{ "function": "Bestuurder", "name": "Wim Colruyt", "appointmentDate": "30/09/2021" }],"establishments": [],"qualifications": ["BTW-plichtige sinds 01/01/1971", "Werkgever RSZ sinds 01/01/1945"],"previousEnterpriseNumbers": [],"url": "https://kbopub.economie.fgov.be/kbopub/toonondernemingps.html?ondernemingsnummer=0400378485","language": "nl","scrapedAt": "2026-05-20T10:30:00.000Z"}
Tips for best results
- Batch enrichment: Paste up to 1,000 enterprise numbers for batch enrichment. The actor processes them sequentially with polite rate limiting.
- Lead qualification: Use NACE codes to filter by industry. Code 47.xxx = retail, 62.xxx = IT, 70.xxx = management consulting.
- Detect active companies: Enable "Active Companies Only" to skip dissolved or stopped entities.
- Full company profile: Enable both "Include Management" and "Include Establishments" for the most complete profile.
- French results: Set Language to
frto get results in French (the KBO site is bilingual). - Enterprise number formats: The actor accepts any common format —
0417.497.106,0417497106, orBE0417497106— and normalizes automatically.
How much does it cost?
Belgian Company Enrichment runs on the Apify platform. You pay only for compute resources used. No login or cookies required.
| Enrichment size | Estimated time | Estimated cost |
|---|---|---|
| 1 company lookup | ~3 seconds | ~$0.003 |
| 10 companies | ~30 seconds | ~$0.02 |
| 100 companies | ~5 minutes | ~$0.15 |
| 1,000 companies | ~50 minutes | ~$1.20 |
Apify's free tier includes $5 of monthly compute — enough to enrich hundreds of companies at no cost.
Can I integrate?
Yes. Send enriched company data directly to your existing tools:
- Google Sheets — Build a live Belgian company database, updated on schedule
- HubSpot / Salesforce — Enrich CRM contacts with official company data
- Slack — Get notified when new companies matching your criteria are registered
- Webhooks — Push to any HTTP endpoint for custom enrichment pipelines
Set up integrations from the Apify console under the "Integrations" tab.
Can I use it as an API?
Yes. Call Belgian Company Enrichment programmatically from any language:
Python — Enrich a list of companies
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("studio-amba/kbo-enrichment").call(run_input={"mode": "number","enterpriseNumbers": ["0417.497.106", "0400.378.485", "0471.811.661"],"includeManagement": True,})for company in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{company['name']} ({company['legalForm']}) — {company['address']}")
JavaScript — Search by company name
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('studio-amba/kbo-enrichment').call({mode: 'name',companyName: 'Colruyt',maxResults: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(c => console.log(`${c.enterpriseNumber} | ${c.name} | ${c.legalForm}`));
FAQ
What is KBO?
The KBO (Kruispuntbank van Ondernemingen) or BCE (Banque-Carrefour des Entreprises) is Belgium's official enterprise register. Every Belgian company, non-profit, and self-employed professional is registered with a unique enterprise number.
How to look up a Belgian company?
Enter the enterprise number (KBO/BTW number) in the "Enterprise Numbers" field. You can also search by company name or registered address.
What is a KBO number?
A KBO number is a unique 10-digit identifier assigned to every registered entity in Belgium. Format: 0XXX.XXX.XXX. It's also used as the BTW (VAT) number with a BE prefix.
How to find a company's NACE code?
This actor returns the official NACE-BEL activity codes registered in the KBO. NACE codes classify companies by economic activity (e.g., 47.110 = supermarket retail).
Is this a KBO API alternative?
Yes. The official KBO web service charges EUR 50 per 2,000 lookups. This actor provides the same public data at a fraction of the cost, without registration or contracts.
Can I use this for GDPR compliance?
This actor only returns publicly available data from the KBO public register. It does not access any restricted or personal data. The KBO explicitly prohibits using personal data from natural persons for direct marketing — this actor includes no such data.
Limitations
- Data comes from the public KBO website — some fields (phone, email, website) are often empty because companies don't always register contact details
- Name search uses phonetic matching, which may return false positives for common names
- Management data depends on companies filing their board changes promptly
- The KBO site occasionally has maintenance windows (typically weekends)
- Rate limited to be polite to the government server — don't expect >1,000 lookups per hour
Other Belgian data scrapers
Working with Belgian business data? Combine with these tools:
- Staatsblad Scraper — Belgian Official Gazette: laws, company formations, board changes
- AutoVlan Scraper — Belgian vehicle classifieds
- Biddit Scraper — Belgian notary property auctions
- Immovlan Scraper — Belgian real estate listings
Your feedback
Found a bug or want a feature added? Open an issue on the Issues tab. Your feedback helps improve this actor.