KVK Handelsregister Scraper — Dutch Chamber of Commerce Lookup
Pricing
from $12.00 / 1,000 result scrapeds
KVK Handelsregister Scraper — Dutch Chamber of Commerce Lookup
Look up any Dutch company in the KVK Handelsregister (Chamber of Commerce): confirm it's registered and active before you sign a contract, extend credit, or wire a payment. Search by name, KVK number, city, or postal code and get the registered name, address, legal form, trade names, and status.
Pricing
from $12.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
24
Total users
3
Monthly active users
3 days ago
Last modified
Categories
Share
Look up any Dutch company in the KVK Handelsregister, the trade register kept by the Kamer van Koophandel (Chamber of Commerce). Confirm a company is real, registered, and still active before you sign a contract, extend credit, or wire a payment. Search by company name, KVK number, city, or postal code and get back the registered name, KVK number, address, trade names, legal form, SBI activity codes, and registration status. No cookies, no login required.
How to scrape KVK company data
This actor searches the official Dutch Kamer van Koophandel register and extracts structured company data. The KVK register contains every Dutch company, sole trader, foundation, and association — over 2.5 million active entities.
Search by Company Name
Enter a company name or keyword. The actor searches the KVK register and returns all matching companies with their registration details, addresses, and activity codes.
Search by KVK Number
Look up a specific company by its 8-digit KVK number for an exact match. Every Dutch company has a unique KVK number assigned at registration.
Filter by Location
Narrow results by city name or postal code to focus on a specific geographic area. Useful for local market research, mapping competitors, or building regional lead lists.
What data does Dutch Company Register Scraper extract?
| Field | Type | Description |
|---|---|---|
| companyName | String | Official registered company name |
| kvkNumber | String | 8-digit KVK registration number |
| branchNumber | String | 12-digit branch establishment number (vestigingsnummer) |
| rsin | String | Not available — KVK only shows this on a paid extract, always empty |
| legalForm | String | Legal form (Besloten Vennootschap, Eenmanszaak, etc.) |
| registrationStatus | String | Active or deregistered |
| tradeNames | Array | Current trade names (handelsnamen) |
| formerTradeNames | Array | Not available — KVK only shows this on a paid extract, always empty |
| address | String | Full visiting address |
| street | String | Street name, parsed from the address |
| houseNumber | String | House number, parsed from the address |
| postalCode | String | Dutch postal code (1234AB format) |
| city | String | City name |
| province | String | Not available — KVK only shows this on a paid extract, always empty |
| sbiActivities | Array | Free-text primary activity description KVK shows on the search card. The numeric SBI code needs KVK's paid extract, so code is always empty here — only description is populated. |
| employeeCount | String | Not available — KVK only shows this on a paid extract, always empty |
| establishmentType | String | Hoofdvestiging (main) or Nevenvestiging (branch) |
| registrationDate | String | Not available — KVK only shows this on a paid extract, always empty |
| url | String | Link to the company's KVK order page |
| scrapedAt | String | ISO timestamp of extraction |
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| Company Name / Keywords | String | — | Search by company name or keywords |
| KVK Number | String | — | Look up by 8-digit KVK number |
| City | String | — | Filter by city name |
| Postal Code | String | — | Filter by postal code |
| Active Companies Only | Boolean | true | Skip deregistered companies |
| Max Results | Integer | 100 | Maximum companies to return |
| Proxy Configuration | Object | Residential | Proxy settings |
Example output
{"companyName": "Philips & Philips B.V.","kvkNumber": "90428587","branchNumber": "000056159579","rsin": "","legalForm": "Besloten Vennootschap","registrationStatus": "active","tradeNames": ["Philips & Philips B.V."],"formerTradeNames": [],"address": "Van Hengellaan 2, 1217AS Hilversum","street": "Van Hengellaan","houseNumber": "2","postalCode": "1217AS","city": "Hilversum","province": "","sbiActivities": [{ "code": "", "description": "Het uitoefenen van de rechtspraktijk als advocaat." }],"employeeCount": "","establishmentType": "Hoofdvestiging","registrationDate": "","url": "https://www.kvk.nl/bestellen/#/90428587000056159579?origin=search","scrapedAt": "2026-08-29T07:51:13.589Z"}
Fields left empty above (rsin, formerTradeNames, province, employeeCount, registrationDate, and the numeric part of sbiActivities) are not shown on KVK's free search page — KVK only releases them through its paid extract product.
Tips for best results
- B2B lead generation: Search by city + industry keyword to build targeted lead lists. Example: "accountant" in "Rotterdam".
- Due diligence: Look up specific KVK numbers to verify company existence and registration status.
- Competitor mapping: Search by product or service keyword to find all competitors in a region.
- Active filter: Keep "Active Companies Only" enabled to exclude dissolved and deregistered entities.
- Rate limiting: The KVK site has modest rate limits. For large runs (1000+ results), use proxy configuration.
How much does it cost?
Dutch Company Register Scraper charges $0.04 per run (start fee, based on its 4 GB memory allocation) plus $0.012 per result. 10 companies costs about $0.16; 100 about $1.24; 1,000 about $12.04. A run's usage cost only settles after it reports SUCCEEDED.
Can I integrate?
Yes. Send Dutch company data directly to your existing tools:
- Google Sheets — Build a live Dutch company database
- HubSpot / Salesforce — Enrich CRM contacts with official KVK data
- Slack — Get notified about new companies matching your criteria
- Webhooks — Push to any HTTP endpoint for custom workflows
Can I use it as an API?
Yes. Call Dutch Company Register Scraper programmatically:
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("studio-amba/kvk-scraper").call(run_input={"searchQuery": "Philips","city": "Amsterdam","maxResults": 20,})for company in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{company['companyName']} (KVK {company['kvkNumber']}) — {company['city']}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('studio-amba/kvk-scraper').call({searchQuery: 'IT',city: 'Utrecht',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(c => console.log(`${c.companyName} | KVK ${c.kvkNumber} | ${c.city}`));
FAQ
What is the KVK?
The KVK (Kamer van Koophandel) is the Netherlands' official commercial register. Every Dutch business entity — companies, sole traders, foundations, associations — must register with the KVK and receives a unique 8-digit KVK number.
What is a KVK number?
A KVK number is a unique 8-digit identifier assigned to every entity in the Dutch commercial register. It's used for business identification, tax, and legal purposes.
What are SBI codes?
SBI (Standaard Bedrijfsindeling) codes classify companies by economic activity, similar to NACE codes in Europe. Each company has one or more SBI codes describing what they do.
How to verify a Dutch company?
Enter the KVK number in this actor to verify a company's registration status, legal form, and address. Active companies are currently registered; deregistered companies have been dissolved.
What's the difference between KVK number and vestigingsnummer?
The KVK number identifies the legal entity. The vestigingsnummer (12 digits) identifies a specific establishment/branch location. A company with 5 offices has 1 KVK number and 5 vestigingsnummers.
Limitations
- Detailed company profiles (numeric SBI codes, RSIN, employee counts, registration date, annual reports) require the paid KVK API — this actor extracts what's publicly available on the search interface, including the free-text activity description and trade name(s)
- The KVK site rate-limits at roughly 60-120 requests/minute
- Maximum 50 results per search page on kvk.nl — broad queries need multiple pages
- Some company data (e.g., financial statements) is only available via paid KVK products
Other European company register scrapers
Working with European business data? Combine with these tools:
- EU Dealer Counterparty Check — runs this scraper alongside 14 other European registries and merges the results into one counterparty dossier with risk flags
- Belgian Company Enrichment — Belgian KBO/BCE company register
- German Company Register — German Handelsregister
- French Company Enrichment — French company data from official sources
Your feedback
Found a bug or want a feature? Open an issue on the Issues tab. Your feedback helps improve this actor.