nvNeuralVerge
Corporate registry

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.
Comparison

Ways to get this data

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

ApproachWhat it takesCostTrade-off
CVR directlyType the name into CVR 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 Denmark — other countries are separate sources with the same request format
Response

What you get back

Every field in the example response below.

FieldTypeDescription
total_itemsnumberRecords returned in this response.
total_foundnumberMatches the register reports for the keyword.
page_countnumberPages read for this response.
first_itemobjectThe first result, same shape as items entries.
itemsarrayReturned matches.
items[].registration_numberstringCVR number.
items[].namestringCompany name as registered. Entities in liquidation carry that in the name.
items[].statusstringStatus in Danish, for example Slettet (deleted) or Under frivillig likvidation (voluntary liquidation).
items[].addressstringAddress on one line.
items[].urlstringLink to the company on the register.
items[].company_typestringLegal form in Danish.
items[].incorporation_datenullNull in search results.
Response

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
}
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-dk-companies-search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"novo nordisk","max_items":2}'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Find the CVR number

Resolve a company name to its number, then pass it to the company or filings source.

Check a name before you use it

See which registered entities already carry a similar name, including dissolved ones.

Match CRM records

Match company names in your own data to Danish register entries.

Coverage & limits

Coverage, freshness and limits

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

Coverage

Denmark — entities on CVR.

Freshness

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

Handling

CVR 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
  • —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.
FAQ

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

Related sources

Try denmark company search on your own data

One request format across every source in the catalog.

Get started