Netherlands Company Registry (KVK) API and MCP — Company Profile by KVK Number
Send a KVK number and get the company as structured JSON: name, status, legal form, registration date, address, activity description, current and former legal names, trade names and the establishments registered under it.
- You send
- a KVK number, or the link to the company page
- You get back
- status, legal form, registration date, address, activity, current and former names, trade names and establishments
- Coverage
- Netherlands — entities on KVK Handelsregister.
- Price
- 5 pts — $5 per 1,000
- Charged only when the record resolves. A lookup that finds nothing is not billed.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| KVK Handelsregister directly | Open KVK Handelsregister and read the record | Usually free, sometimes per-document | A different interface, language and data shape for every country you add |
| Collecting it yourself | Build and host a crawler per register, then keep each one alive | Infrastructure and maintenance | Registers change their pages without warning, and nobody is on the hook when yours breaks |
| NeuralVerge | One request, the same shape as every other source in the catalog | $5 per 1,000, misses not billed | Covers Netherlands — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
session_id | string | Id of this run, for tracing. |
kind | string | Source type of the response. |
company | string | The identifier you sent. |
company_id | string | The identifier as the register uses it. |
human | string | Readable summary of the record. |
total_points | number | Points charged for the run. |
machine.company.registration_number | string | KVK number. |
machine.company.name | string | Company name. |
machine.company.status | string | Registration status, e.g. Ingeschreven (registered). |
machine.company.address | string | Visiting address. |
machine.company.url | string | Link to the company search page on the register. |
machine.company.company_type | string | Legal form. |
machine.company.incorporation_date | string | Registration date (YYYY-MM-DD). |
machine.company.activity | string | Activity description in Dutch, shortened in the sample. |
machine.company.requested_id | string | The identifier you sent. |
machine.company.legal_form_code | string | Short code for the legal form, e.g. NV. |
machine.company.statutory_name | string | Name as in the articles. |
machine.company.current_legal_names[] | array | Current legal names. |
machine.company.former_legal_names[] | array | Former legal names. |
machine.company.trade_names[] | array | Trade names. |
machine.company.former_trade_names[] | array | Former trade names. |
machine.company.postal_address | null | Empty in the sample. |
machine.company.head_office | object | Head office: branch_number, registration_type, name, status, address, registration_date, activity, trade_names and former_trade_names. |
machine.company.registrations_total | number | Number of registrations. |
machine.company.establishments_total | number | Total establishments. |
machine.company.establishments_active | number | Active establishments. |
machine.company.establishments_listed | number | Establishments included in the list. |
machine.company.establishments[] | array | Establishments, same shape as head_office, with registration_type such as Hoofdvestiging (head office) or Nevenvestiging (branch). |
machine.company.source_rows_fetched | number | Register rows read to build the record. |
machine.blocked | boolean | Whether the register refused the request. |
machine.pages_opened | number | Register pages read for the run. |
machine.proxy_traffic_bytes | number | Size of the data transferred for the run, in bytes. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "nl_company",
"company": "17001910",
"company_id": "17001910",
"human": "# Netherlands — KVK Handelsregister — company\n\n- **Number:** 17001910\n- **Pages opened:** 1\n- **Proxy traffic:** 5.5 KB\n- **Name:** Koninklijke Philips N.V.\n- **Status:** Ingeschreven\n- **Type:** Naamloze Vennootschap\n- **Registered:** 1912-09-11\n- **Address:** High Tech Campus 34, 5656AE Eindhoven",
"machine": {
"company": {
"registration_number": "17001910",
"name": "Koninklijke Philips N.V.",
"status": "Ingeschreven",
"address": "High Tech Campus 34, 5656AE Eindhoven",
"url": "https://www.kvk.nl/zoeken/?source=handelsregister&q=17001910",
"company_type": "Naamloze Vennootschap",
"incorporation_date": "1912-09-11",
"activity": "Het oprichten van, het deelnemen in en het beheren en financieren van rechtspersonen, vennootschappen en andere rechtsvormen ten dienste van fabricage en verhandeling van elektrische, elektronische, m",
"requested_id": "17001910",
"legal_form_code": "NV",
"statutory_name": "Koninklijke Philips N.V.",
"current_legal_names": [
"Koninklijke Philips N.V."
],
"former_legal_names": [
"Koninklijke Philips Electronics N.V.",
"PHILIPS ELECTRONICS N.V."
],
"trade_names": [
"Koninklijke Philips N.V.",
"Royal Philips"
],
"former_trade_names": [
"\"PHILIPS' GLOEILAMPENFABRIEKEN\"",
"\"PHILIPS INDUSTRIES\""
],
"postal_address": null,
"head_office": {
"branch_number": "000064349039",
"registration_type": "Hoofdvestiging",
"name": "Koninklijke Philips N.V.",
"status": "Ingeschreven",
"address": "High Tech Campus 34, 5656AE Eindhoven",
"postal_address": null,
"registration_date": "1912-09-11",
"activity": "Het oprichten van, het deelnemen in en het beheren en financieren van rechtspersonen, vennootschappen en andere rechtsvormen ten dienste van fabricage en verhandeling van elektrische, elektronische, m",
"trade_names": [
"Koninklijke Philips N.V.",
"Royal Philips"
],
"former_trade_names": []
},
"registrations_total": 6,
"establishments_total": 5,
"establishments_active": 4,
"establishments_listed": 5,
"establishments": [
{
"branch_number": "000064349039",
"registration_type": "Hoofdvestiging",
"name": "Koninklijke Philips N.V.",
"status": "Ingeschreven",
"address": "High Tech Campus 34, 5656AE Eindhoven",
"postal_address": null,
"registration_date": "1912-09-11",
"activity": "Het oprichten van, het deelnemen in en het beheren en financieren van rechtspersonen, vennootschappen en andere rechtsvormen ten dienste van fabricage en verhandeling van elektrische, elektronische, m",
"trade_names": [
"Koninklijke Philips N.V.",
"Royal Philips"
],
"former_trade_names": []
},
{
"branch_number": "000006060609",
"registration_type": "Nevenvestiging",
"name": "Koninklijke Philips N.V.",
"status": "Ingeschreven",
"address": "High Tech Campus 52, 5656AG Eindhoven",
"postal_address": null,
"registration_date": "1912-09-11",
"activity": "Het oprichten van, het deelnemen in en het beheren en financieren van rechtspersonen, vennootschappen en andere rechtsvormen ten dienste van fabricage en verhandeling van elektrische, elektronische, m",
"trade_names": [
"Koninklijke Philips N.V.",
"Royal Philips"
],
"former_trade_names": [
"\"PHILIPS' GLOEILAMPENFABRIEKEN\"",
"\"PHILIPS INDUSTRIES\""
]
}
],
"source_rows_fetched": 6
},
"blocked": false,
"pages_opened": 1,
"proxy_traffic_bytes": 5596
},
"total_points": 5
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
One company per request. Pass the registration number or the link to the record on the register.
curl -X POST https://api.neuralverge.ai/functions/v1/run-nl-companies \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"17001910"}'What teams use it for
Where this field shows up in an actual workflow.
Confirm a company is registered, its legal form and its visiting address.
Match an invoice or contract that carries a former legal or trade name to the current entity.
Separate the head office from branches, and count active ones.
Fill legal form, registration date and trade names from a KVK number.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Netherlands — entities on KVK Handelsregister.
Read at request time, so the answer reflects the register as it stands when you ask.
KVK Handelsregister is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —The activity text in the sample is cut short, so treat it as a description, not a full statement.
- —Postal address is null in the sample.
- —Statuses and activity text are in Dutch as published.
Questions, answered
The 8-digit KVK number, such as 17001910, or the link to the company page.
Related sources
Try netherlands company on your own data
One request format across every source in the catalog.