nvNeuralVerge
Corporate registry

Netherlands Company Search (KVK) API and MCP — Find Companies by Name

Send a name and get back matching Dutch companies: KVK number, name, status, legal form, registration date, address, activity description, trade names and branch details, with a link to each record. Set max_items to control the batch.

You send
a company name
You get back
matching Dutch companies with KVK number, status, legal form, address, activity, trade names and branch number
Coverage
Netherlands — entities on KVK Handelsregister.
Price
1 point per returned record — $1 per 1,000
Billed per record actually returned, capped by max_items. A request that returns nothing costs nothing.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
KVK Handelsregister directlyType the name into KVK Handelsregister and read the resultsUsually free, sometimes per-documentA different interface, language and data shape for every country you add
Collecting it yourselfBuild and host a crawler per register, then keep each one aliveInfrastructure and maintenanceRegisters change their pages without warning, and nobody is on the hook when yours breaks
NeuralVergeOne request, the same shape as every other source in the catalog$1 per 1,000, misses not billedCovers Netherlands — other countries are separate sources with the same request format
Response

What you get back

Every field in the example response below.

FieldTypeDescription
session_idstringId of this run, for tracing.
kindstringSource type of the response.
keywordstringThe search text you sent.
max_itemsnumberThe cap you set on returned records.
start_pagenumberResults page the search started from.
partialbooleanWhether the result set is incomplete.
humanstringReadable summary with the number of results and matches found.
total_pointsnumberPoints charged: one per returned record.
machine.total_itemsnumberRecords returned in this batch.
machine.first_itemobjectThe first returned record, same shape as one entry of items.
machine.items[]arrayThe returned records.
machine.total_foundnumberMatches the register reports for the search; null when it does not report one.
machine.page_countnumberResult pages read.
machine.blockedbooleanWhether the register refused the request.
machine.proxy_traffic_bytesnumberSize of the data transferred for the run, in bytes.
machine.items[].registration_numberstringKVK number.
machine.items[].namestringCompany or establishment name.
machine.items[].statusstringRegistration status, e.g. Ingeschreven (registered).
machine.items[].addressstringVisiting address.
machine.items[].urlstringLink to the listing on the register.
machine.items[].company_typestringLegal form.
machine.items[].incorporation_datestringRegistration date (YYYY-MM-DD).
machine.items[].legal_form_codestringShort legal-form code, e.g. BV.
machine.items[].branch_numberstringBranch (vestiging) number.
machine.items[].registration_typestringHoofdvestiging (head office) or another type.
machine.items[].activitystringActivity description in Dutch.
machine.items[].trade_names[]arrayTrade names.
machine.items[].former_trade_names[]arrayFormer trade names; empty in the sample.
machine.items[].statutory_namestringName as in the articles.
machine.items[].postal_addressnullNull in the sample.
Response

Example response

A real response, as returned.

{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "kind": "nl_companies_search",
  "keyword": "philips",
  "max_items": 2,
  "start_page": 1,
  "partial": false,
  "human": "# Netherlands — KVK Handelsregister — company search\n\n- **Keyword:** philips\n- **Results:** 2 of 1549 found\n- **Proxy traffic:** 31.9 KB",
  "machine": {
    "total_items": 2,
    "first_item": {
      "registration_number": "90428587",
      "name": "Philips & Philips B.V.",
      "status": "Ingeschreven",
      "address": "Van Hengellaan 2, 1217AS Hilversum",
      "url": "https://www.kvk.nl/zoeken/?source=handelsregister&q=90428587",
      "company_type": "Besloten Vennootschap",
      "incorporation_date": "2023-06-07",
      "legal_form_code": "BV",
      "branch_number": "000056159579",
      "registration_type": "Hoofdvestiging",
      "activity": "Het uitoefenen van de rechtspraktijk als advocaat.",
      "trade_names": [
        "Philips & Philips B.V."
      ],
      "former_trade_names": [],
      "statutory_name": "Philips & Philips B.V.",
      "postal_address": null
    },
    "items": [
      {
        "registration_number": "90428587",
        "name": "Philips & Philips B.V.",
        "status": "Ingeschreven",
        "address": "Van Hengellaan 2, 1217AS Hilversum",
        "url": "https://www.kvk.nl/zoeken/?source=handelsregister&q=90428587",
        "company_type": "Besloten Vennootschap",
        "incorporation_date": "2023-06-07",
        "legal_form_code": "BV",
        "branch_number": "000056159579",
        "registration_type": "Hoofdvestiging",
        "activity": "Het uitoefenen van de rechtspraktijk als advocaat.",
        "trade_names": [
          "Philips & Philips B.V."
        ],
        "former_trade_names": [],
        "statutory_name": "Philips & Philips B.V.",
        "postal_address": null
      },
      {
        "registration_number": "17062897",
        "name": "Philips Stadion",
        "status": "Ingeschreven",
        "address": "PSV-laan 81, 5616LX Eindhoven",
        "url": "https://www.kvk.nl/zoeken/?source=handelsregister&q=17062897",
        "company_type": "Stichting",
        "incorporation_date": "1983-11-02",
        "legal_form_code": "ST",
        "branch_number": "000001978284",
        "registration_type": "Hoofdvestiging",
        "activity": "Het houden van aandelen van PSV N.V. en het bevorderen van het voetbal en andere sporten in het algemeen",
        "trade_names": [
          "Philips Stadion"
        ],
        "former_trade_names": [],
        "statutory_name": "Stichting PSV Voetbal",
        "postal_address": null
      }
    ],
    "total_found": 1549,
    "page_count": 1,
    "blocked": false,
    "proxy_traffic_bytes": 32628
  },
  "total_points": 2
}
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged.

curl -X POST https://api.neuralverge.ai/functions/v1/run-nl-companies-search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"philips","max_items":2}'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Resolve a name to a KVK number

Get the number for a full lookup.

Tell similar names apart

Use legal form, activity and address to pick the right entity from a list.

Sector and keyword sweeps

Collect Dutch entities carrying a keyword, with activity text.

Screening lists

Check supplier names against the register.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Netherlands — entities on KVK Handelsregister.

Freshness

Read at request time, so the answer reflects the register as it stands when you ask.

Handling

KVK Handelsregister is a public register. Every response carries the source URL it was read from and a session id you can trace.

What it will not do
  • —Results are matches on name, so a brand name can return unrelated entities.
  • —postal_address is null in the sample.
  • —Name history and establishment lists are in Netherlands company, not here.
FAQ

Questions, answered

machine.total_found reports the register's count (1,549 for philips in the sample).

Related

Related sources

Try netherlands company search on your own data

One request format across every source in the catalog.

Get started