VOOZH about

URL: https://apify.com/nocodeventure/kvk-handelsregister-scraper

⇱ KvK Handelsregister Scraper · Apify


👁 KvK Handelsregister Scraper avatar

KvK Handelsregister Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store

KvK Handelsregister Scraper

An Apify Actor for scraping data from the Dutch Chamber of Commerce (Kamer van Koophandel / KVK).

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

👁 No-Code Venture

No-Code Venture

Maintained by Community

Actor stats

0

Bookmarked

49

Total users

11

Monthly active users

7 days ago

Last modified

Share

An Apify Actor that scrapes the Dutch Chamber of Commerce (Kamer van Koophandel / KVK) Handelsregister (Trade Register). Search by company name or look up specific KVK numbers, with full control over filters, result source, and rate limiting.

What it does

  • Search for companies by name or other identifiers
  • Look up one or more KVK numbers directly (batch mode)
  • Filter by registration status, vestiging type, and trade name type
  • Choose between all results, Handelsregister only, or Advies & Inspiratie only
  • Handles pagination automatically
  • Rate-limited by default to avoid IP blocks — works without a proxy for moderate volumes

Input

Search fields

FieldTypeDescriptionDefault
searchQuerystringSearch by company name or other identifier. Leave empty when using kvkNumbers.
kvkNumbersstring[]List of 8-digit KVK numbers to look up directly. Leave empty when using searchQuery.[]
maxPagesintegerMaximum result pages to fetch per query (0 = unlimited).0
pageSizeintegerResults per page (max 100).10

Filters

FieldTypeOptionsDefault
sitestringkvk2014 = All results, handelsregister = Handelsregister only, corporate = Advies & Inspiratie onlykvk2014
inschrijvingsstatusstring[]ingeschreven (active), uitgeschreven (deregistered)["ingeschreven"]
vestigingTypestring[]hoofdvestigingen, nevenvestigingen, rechtspersonen, overig[] (all)
handelsnamenstring[]bestaandeHandelsnamen, vervallenHandelsnamen[] (all)
languagestringnl or ennl

Important: inschrijvingsstatus, vestigingType, and handelsnamen are Handelsregister-specific filters. When site is set to corporate (Advies & Inspiratie only), these filters have no effect and will return empty results if set. Leave them at their defaults or clear them when using corporate.

Performance

FieldTypeDescriptionDefault
maxConcurrencyintegerMaximum parallel requests (max 5).5
maxRequestsPerMinuteintegerRate limit cap. Lower if getting 429 errors without a proxy.120
proxyConfigurationobjectApify proxy settings. Recommended for large scrapes to avoid IP rate-limiting.disabled

Example — search by company name

{
"searchQuery":"Software",
"maxPages":2,
"pageSize":20
}

Example — direct KVK number lookup (batch)

{
"kvkNumbers":["42009680","82871612"],
"inschrijvingsstatus":["ingeschreven"],
"site":"handelsregister"
}

Example — include deregistered companies too

{
"searchQuery":"Bakkerij",
"inschrijvingsstatus":["ingeschreven","uitgeschreven"],
"vestigingType":["hoofdvestigingen","rechtspersonen"]
}

Example — Advies & Inspiratie only (corporate)

Use only Search, Result source, Language, page size, and performance options. Leave Handelsregister filters empty / default.

{
"searchQuery":"KPN",
"site":"corporate",
"language":"nl",
"pageSize":10,
"maxPages":1
}

See Output → Advies & Inspiratie for the dataset JSON shape.

Example — full Handelsregister filter set

{
"kvkNumbers":["42009680"],
"pageSize":10,
"language":"nl",
"site":"kvk2014",
"inschrijvingsstatus":["ingeschreven","uitgeschreven"],
"vestigingType":["hoofdvestigingen","nevenvestigingen","rechtspersonen","overig"],
"handelsnamen":["bestaandeHandelsnamen"],
"maxRequestsPerMinute":120
}

Output

The dataset stores one JSON object per search hit. The shape depends on whether the hit is from the Handelsregister or from Advies & Inspiratie (KVK website articles). With site set to All results (kvk2014), you may get both shapes in the same run.

Handelsregister record

No resultType field — normalized company / establishment data:

{
"id":"e027319e-bddf-4982-ac35-ed5cd4a96222",
"kvkNumber":"82871612",
"establishmentNumber":"000049081160",
"name":"Software Buddy",
"legalFormCode":"EMZ",
"legalForm":"Eenmanszaak",
"isActive":true,
"isEstablishment":true,
"registrationType":"Hoofdvestiging",
"visitingAddress":{
"street":"Kloosterlaan",
"houseNumber":"33",
"houseNumberAddition":null,
"postalCode":"1216NH",
"city":"Hilversum"
},
"postalAddress":{
"street":null,
"houseNumber":null,
"houseNumberAddition":null,
"postalCode":null,
"city":null
},
"activityDescription":"Ontwikkelen, produceren en uitgeven van software...",
"currentTradeNames":["Software Buddy","Maxtrada"],
"formerTradeNames":["Codemap NL"],
"statutoryName":null,
"source":"Actueel"
}

Advies & Inspiratie (site: corporate, or mixed under kvk2014)

When KVK’s search returns Advies & Inspiratie hits (crawler-public), each row looks like this (excerpt — full content can be very long):

{
"resultType":"advies-en-inspiratie",
"id":"4d4ee662-5cda-4b78-8545-52649a21c610",
"title":"Zo help je een werknemer met geldzorgen | KVK",
"url":"https://www.kvk.nl/personeel/zo-help-je-een-werknemer-met-geldzorgen/",
"description":"Vermoed je dat je werknemers geldzorgen hebben of vragen ze om een voorschot van salaris? Weet wat je als werkgever kunt doen om je werknemers te ondersteunen.",
"content":"Zo help je een werknemer met geldzorgen Esther Riphagen ...",
"language":"nl"
}
FieldMeaning
resultTypeAlways advies-en-inspiratie for this shape
idUnique identifier from KVK
titlePage title
urlArticle URL on kvk.nl
descriptionShort teaser text
contentFull article body from the source (often very long)
languageLanguage code of the article

Note on multiple records per KVK number

A single KVK number can return more than one record. For example, a company may have both a Rechtspersoon (legal entity) and one or more Vestiging (establishment) entries — each as a separate dataset item sharing the same kvkNumber but with a different id and establishmentNumber.

Rate limiting

Without a proxy, all requests go through the same IP. The default of 120 requests/minute is safe for most use cases. If you hit 429 errors:

  • Lower maxRequestsPerMinute (try 60)
  • Enable a proxy via proxyConfiguration

With a proxy, session rotation automatically handles rate-limited requests by switching IP.

Pay Per Event Billing

This Actor uses Apify's Pay Per Event pricing — you only pay for what actually runs.

EventCharged byDescription
apify-actor-startApify (auto)Once per run start
apify-default-dataset-itemApify (auto)Once per result record pushed
kvk-searchCustomOnce per search or pagination page the scraper runs
retry-eventCustomOnce per retry on a failed request
event-proxyCustomOnce per run when using Apify Proxy (no group)
event-proxy-groupCustomOnce per run when using a proxy group (e.g. RESIDENTIAL)

You can cap total spend in the Apify Console when starting a run via Max total charge (USD) or Max paid dataset items.

Disclaimer

This Actor is provided for educational and informational purposes only. By using it you agree to:

  • Comply with KVK's Terms of Service
  • Use the data responsibly and in accordance with applicable laws
  • Not overload KVK servers with excessive requests

This Actor is not affiliated with or endorsed by KVK (Kamer van Koophandel).

Resources

You might also like

Handelsregister Unternehmensregister

harvestedge/handelsregister-unternehmensregister

This scraper allows you to search the German Chamber of Commerce or handelsregister for businesses by name, registration number (HRB/HRA), EUID, company status, and last update.

👁 User avatar

Harvest Edge

6

Handelsregister API

radeance/handelsregister-api

Access valuable key company data from the German Commercial Register in realtime from Handelsregister.de: shareholders, executives, addresses, court details, and official documents. Ideal for LegalTech, compliance, and due diligence workflows.

211

5.0

👥 LinkedIn Groups Scraper - Members & Posts [NO COOKIES] ✅

unseenuser/LinkedIn-Groups-Scraper

Extract members, posts, and discussions from any public LinkedIn Group. Identify niche professional communities and build hyper-targeted lead lists by group affiliation. No login, no cookies, no Chrome extension. Bulk-process multiple groups. Built for B2B marketers and recruiters.

👁 User avatar

Unseen User

47

5.0

Northdata Scraper

silentflow/northdata-scraper

Scrape Northdata.com for European company profiles. Pull registry, officers, address, foundingDate, industry, status, events and corporate purpose from UK Companies House, Siren, Handelsregister, KBO, KvK and more. Search by name or load specific URLs. Per-result pricing, proxies included.

26

Linkedin Group Member Scraper

bhansalisoft/linkedin-group-member-scraper

Linkedin Group Member Scraper– is Advance Software with Unique Feature for Extract Member information from Any Linkedin Group - update 07/06/2026 via api now very fast

👁 User avatar

bhansalisoft

447

5.0

Instagram B2B Email Scraper

contacts-api/instagram-b2b-lead-generator-email-scraper

Generate targeted business leads with our Instagram B2B Email Scraper. Extract verified business emails from Instagram profiles for B2B outreach, sales prospecting, and marketing—fast, accurate, and scalable.

👁 User avatar

Lead Heaven

97

5.0

KvK Handelsregister Dutch Business

harvestedge/kvk-handelsregister-dutch-business

Scrape company data from the Dutch Chamber of Commerce (Kamer van Koophandel). Get company names, KVK numbers, addresses, trade names, and activity descriptions.

👁 User avatar

Harvest Edge

11

LinkedIn Scraper at Scale Without Cookie

freshdata/fresh-linkedin-profile-data

Get real-time LinkedIn profile data, including experience, education, current company and more.

878

5.0

Handelsregister Scraper

dominic-quaiser/handelsregister-scraper

Leistungsstarker Actor zur Identifikation von Firmen und Entscheidungsträgern aus dem deutschen Handelsregister. Zugriff auf Geschäftsführer, Vorstände und vertretungsberechtigte Personen per Echtzeit-API — ideal für Lead-Enrichment, Marktanalysen, KYC und Due-Diligence.

👁 User avatar

Dominic M. Quaiser

68