Denmark Company Search (CVR) API and MCP — Find Companies by Name
Send a company name and this source returns the matching Danish companies: CVR number, name, status, address, company type and a link to each company on the register.
- You send
- A company name, plus optional max_items, start_page and status
- You get back
- Matching Danish companies with CVR number, name, status, address and register link
- Coverage
- Denmark — entities on CVR.
- 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.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| CVR directly | Type the name into CVR and read the results | 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 | $1 per 1,000, misses not billed | Covers Denmark — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
total_items | number | Records returned in this response. |
total_found | number | Matches the register reports for the keyword. |
page_count | number | Pages read for this response. |
first_item | object | The first result, same shape as items entries. |
items | array | Returned matches. |
items[].registration_number | string | CVR number. |
items[].name | string | Company name as registered. Entities in liquidation carry that in the name. |
items[].status | string | Status in Danish, for example Slettet (deleted) or Under frivillig likvidation (voluntary liquidation). |
items[].address | string | Address on one line. |
items[].url | string | Link to the company on the register. |
items[].company_type | string | Legal form in Danish. |
items[].incorporation_date | null | Null in search results. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "dk_companies_search",
"keyword": "novo nordisk",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Denmark — CVR — company search\n\n- **Keyword:** novo nordisk\n- **Results:** 2 of 72 found\n- **Proxy traffic:** 153.5 KB",
"machine": {
"total_items": 2,
"first_item": {
"registration_number": "39119374",
"name": "Anpartsselskabet af 21.08.2026 (Under frivillig likvidation)",
"status": "Under frivillig likvidation",
"address": "C/O Gorrissen Federspiel, Axeltorv 2, 1609 København V",
"url": "https://datacvr.virk.dk/enhed/virksomhed/39119374",
"company_type": "Anpartsselskab",
"incorporation_date": null
},
"items": [
{
"registration_number": "39119374",
"name": "Anpartsselskabet af 21.08.2026 (Under frivillig likvidation)",
"status": "Under frivillig likvidation",
"address": "C/O Gorrissen Federspiel, Axeltorv 2, 1609 København V",
"url": "https://datacvr.virk.dk/enhed/virksomhed/39119374",
"company_type": "Anpartsselskab",
"incorporation_date": null
},
{
"registration_number": "42345393",
"name": "Filial af Novo Nordisk Finance (Netherlands) B.V.",
"status": "Slettet",
"address": "C/O Novo Nordisk A/S, Novo Alle 1, 2880 Bagsværd",
"url": "https://datacvr.virk.dk/enhed/virksomhed/42345393",
"company_type": "Filial af udenlandsk aktieselskab, kommanditakties",
"incorporation_date": null
}
],
"total_found": 72,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 157192
},
"total_points": 2
}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-dk-companies-search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keyword":"novo nordisk","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Resolve a company name to its number, then pass it to the company or filings source.
See which registered entities already carry a similar name, including dissolved ones.
Match company names in your own data to Danish register entries.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Denmark — entities on CVR.
Read at request time, so the answer reflects the register as it stands when you ask.
CVR is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —Search results are short. Registration date is null and the rest of the record needs the company source.
- —Matching follows the register's own name search, so close names and former names can appear among the results.
Questions, answered
The endpoint accepts a status parameter next to keyword, max_items and start_page. The docs sample does not use it, so check the docs for the accepted values.
Related sources
One Danish company by CVR number: ownership, production units, employment and history.
Annual reports, announcements and registrations of a Danish company.
Company registers across Europe, the Americas and Asia-Pacific, plus global LEI lookup.
Try denmark company search on your own data
One request format across every source in the catalog.