Discover/KVK API
live

KVK APIkvk.nl

Search and look up businesses in the Dutch KVK Handelsregister. Get registration details, legal form, addresses, and branch office entries via 2 endpoints.

This API takes change requests — .
Endpoint health
verified 1d ago
search_businesses
get_business
2/2 passing latest checkself-healing
Endpoints
2
Updated
1d ago

What is the KVK API?

The KVK.nl API gives developers access to the Dutch Handelsregister (trade register) through 2 endpoints. Use search_businesses to run full-text queries against registered company names, KVK numbers, and addresses, or use get_business to retrieve all registration entries — including branch offices (vestigingen) and legal entities (rechtspersoon) — for a specific 8-digit KVK number.

Try it
Page number for pagination (1-based).
Search term: business name, KVK number, address, or keyword.
Number of results per page (1-50).
api.parse.bot/scraper/9c941901-c954-4478-97b5-179954ecdf2b/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/9c941901-c954-4478-97b5-179954ecdf2b/search_businesses?page=1&query=bakker+amsterdam&page_size=10' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace kvk-nl-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: kvk_nl_api SDK — bounded, re-runnable; every call capped."""
from parse_apis.kvk_nl_api import Kvk, BusinessNotFound

client = Kvk()

# Search businesses in the trade register by keyword.
for biz in client.businesses.search(query="bakker amsterdam", limit=3):
    print(biz.naam, biz.kvk_nummer, biz.rechtsvorm)

# Get a single search result for drill-down.
hit = client.businesses.search(query="restaurant rotterdam", limit=1).first()
if hit:
    print(hit.naam, hit.activiteitomschrijving)

# Look up a specific business by KVK number; handle not-found.
try:
    detail = client.businesses.get(kvk_nummer="52185532")
    print(detail.naam, detail.inschrijvingstype)
    if detail.bezoeklocatie:
        print(detail.bezoeklocatie.straat, detail.bezoeklocatie.postcode)
except BusinessNotFound as e:
    print(f"not found: {e.kvk_nummer}")

print("exercised: businesses.search, businesses.get")
All endpoints · 2 totalmissing one? ·

Full-text search across the KVK Handelsregister (Dutch trade register). Matches business names, KVK numbers, addresses, and keywords. Returns paginated results filtered to currently registered (ingeschreven) businesses. Each result includes registration details, legal form, address, and activity description.

Input
ParamTypeDescription
pageintegerPage number for pagination (1-based).
queryrequiredstringSearch term: business name, KVK number, address, or keyword.
page_sizeintegerNumber of results per page (1-50).
Response
{
  "type": "object",
  "fields": {
    "page": "current page number",
    "items": "array of business registration entries",
    "total": "total number of matching results",
    "page_size": "results per page"
  },
  "sample": {
    "data": {
      "page": 1,
      "items": [
        {
          "naam": "Bakker Renovaties Amsterdam",
          "actief": true,
          "kvk_nummer": "52185532",
          "rechtsvorm": "Eenmanszaak",
          "postlocatie": null,
          "handelsnamen": [
            "Bakker Renovaties Amsterdam"
          ],
          "bezoeklocatie": {
            "plaats": "Zwanenburg",
            "straat": "Populierenlaan",
            "postcode": "1161SR",
            "huisnummer": "76"
          },
          "rechtsvorm_code": "EMZ",
          "vestigingsnummer": "000022142878",
          "inschrijvingstype": "Hoofdvestiging",
          "inschrijvingsdatum": "2011-03-01",
          "activiteitomschrijving": "Timmer- en tegelzetwerken. Elektra- en cv-installateur."
        }
      ],
      "total": 305,
      "page_size": 10
    },
    "status": "success"
  }
}

About the KVK API

Searching the Handelsregister

The search_businesses endpoint accepts a query string that can be a business name, KVK number, street address, or keyword. Results are filtered to currently registered (ingeschreven) businesses only. Pagination is controlled via page (1-based) and page_size (1–50 results per page). The response returns total, page, page_size, and an items array of business registration entries, each containing registration details, legal form, and address data.

Looking Up a Specific Business

The get_business endpoint takes a single required parameter: kvk_nummer, an 8-digit KVK registration number (for example, 52185532). It returns all associated registration entries under the entries array, along with a total count. A single KVK number can map to multiple entries when the business operates branch offices — the response distinguishes between vestigingen (branch locations) and the rechtspersoon (legal entity record), giving you a complete structural picture of the organisation.

Data Coverage

All data reflects the KVK Handelsregister, which is the official Dutch trade register maintained by the Kamer van Koophandel. Coverage is limited to Netherlands-registered entities. The API surfaces registration metadata — legal form, address, and branch structure — for active registrations. Historical deregistered entries and detailed financial filings are not part of the current response schema.

Reliability & maintenanceVerified

The KVK API is a managed, monitored endpoint for kvk.nl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kvk.nl changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official kvk.nl API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Verify a Dutch supplier's legal registration status before onboarding them as a vendor.
  • Auto-fill company details in a B2B signup form by looking up a KVK number.
  • Map all branch offices of a Dutch company using the vestigingen entries from get_business.
  • Build a company enrichment pipeline that resolves business names to canonical KVK records.
  • Screen counterparties in Netherlands-based contracts for valid active registration.
  • Aggregate legal form distributions across industries by querying search_businesses with sector keywords.
  • Cross-reference address data from the Handelsregister against other Dutch public datasets.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does KVK have an official developer API?+
Yes. KVK offers an official API at developer.kvk.nl, which requires registration and approval. It covers similar Handelsregister data but access is gated behind a formal application process. This Parse API provides an alternative that does not require that approval workflow.
What does `get_business` return when a KVK number has multiple locations?+
It returns all registration entries associated with that KVK number in the entries array. Each entry represents either a branch location (vestiging) or the legal entity record (rechtspersoon). The total field tells you how many entries exist. A company with three branch offices and one head office would typically return four entries.
Does `search_businesses` return deregistered or historical companies?+
No — results are filtered to currently registered (ingeschreven) businesses only. Historical or deregistered entities are not included in the response. You can fork this API on Parse and revise it to adjust the registration-status filter if you need to surface deregistered records.
Does the API return financial data such as annual reports or turnover figures?+
Not currently. The endpoints return registration metadata: legal form, address, branch structure, and KVK number. Financial filings and annual reports deposited with KVK are not part of the current response schema. You can fork this API on Parse and revise it to add an endpoint targeting that data.
Is coverage limited to the Netherlands?+
Yes. The KVK Handelsregister covers only entities registered in the Netherlands. Businesses registered in Belgium, Germany, or other countries will not appear in results even if they have Dutch operations that are not separately registered with KVK.
Page content last updated . Spec covers 2 endpoints from kvk.nl.
Related APIs in B2b DirectorySee all →
drimble.nl API
Search and access detailed business information from Drimble.nl, including company addresses, SBI classifications, and activity descriptions. Find specific companies or browse listings to get comprehensive details about Dutch businesses.
kbopub.economie.fgov.be API
Look up detailed information about Belgian companies including their official details, management structure, business activities, and legal capacities from the KBO/BCE public registry. Find key data like company names, directors, officers, and operational classifications to verify business credentials or conduct company research.
gelbeseiten.de API
Search for businesses on Gelbe Seiten (gelbeseiten.de) by keyword and location, and retrieve full business details including contact information, opening hours, categories, and reviews.
registroimprese.it API
Search Italian companies by name or ID to instantly access official business registration details including company status, founding information, and corporate structure from the authoritative Italian Business Registry. Get comprehensive company profiles with verified legal and operational data all in one place.
stagemarkt.nl API
Search for Dutch MBO internship companies on Stagemarkt.nl and access detailed information including contact details, addresses, and their available internship specializations with sector and qualification levels. Get company recommendations and browse comprehensive profiles to find the perfect internship match.
developer.company-information.service.gov.uk API
Search for UK registered companies and retrieve detailed information including company profiles, officer names, and their dates of birth. Access comprehensive corporate records directly from the official Companies House register to verify business details and identify key personnel.
infobel.com API
Search and retrieve business and person contact information from Infobel directories across the globe to find phone numbers, addresses, and other details. Quickly locate companies or individuals by name to build targeted contact lists or verify business information worldwide.
businessregistration.moc.gov.kh API
Search and retrieve detailed business information from Cambodia's official business registry, including company profiles, director details, and registered addresses for corporations, partnerships, and sole proprietorships. Instantly access verified business entity data to verify company credentials, find ownership details, and conduct due diligence on Cambodian businesses.