nvNeuralVerge
Corporate registry

Denmark Company Registry (CVR) API and MCP — Company, Owners & Directors by CVR Number

Send a CVR number, or the link to the company on the Danish register, and this source returns the record as structured data: name, status, legal form, address, activity and industry codes, registered capital, directors, auditors, owners and production units.

You send
A Danish CVR number or a link to the company on the register
You get back
Name, status, legal form, address, activity, directors, owners, auditors, production units, employment figures and history
Coverage
Denmark — entities on CVR.
Price
5 pts — $5 per 1,000
Charged only when the record resolves. A lookup that finds nothing is not billed.
Comparison

Ways to get this data

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

ApproachWhat it takesCostTrade-off
CVR directlyOpen CVR and read the recordUsually 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$5 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
registration_numberstringCVR number.
namestringRegistered company name.
statusstringCompany status as the register words it, for example Normal.
addressstringRegistered address on one line.
urlstringLink to the company on the register.
company_typestringLegal form in Danish, for example Aktieselskab.
company_type_codestringNumeric code of the legal form.
incorporation_datestringRegistration date, YYYY-MM-DD.
end_datenullEnd date. Null in the sample because the company is active.
phonestringRegistered phone number.
emailnullRegistered email. Null in the sample.
faxnullFax number. Null in the sample.
secondary_phonenullSecond phone number. Null in the sample.
postal_addressnullSeparate postal address. Null in the sample.
municipalitystringMunicipality of the registered address.
address_countrystringCountry of the address, in Danish.
foreign_addressnullForeign address, when the company has one. Null in the sample.
activitystringMain activity in Danish.
industry_codestringMain industry code.
secondary_activitiesarraySecondary industry codes, each with its Danish description.
previous_namesarrayEarlier company names, as plain strings.
purposestringCompany purpose text. The sample ends mid-sentence, so long texts appear cut.
financial_year_periodstringFinancial year, day.month to day.month.
registered_capitalstringRegistered capital with currency, formatted as the register shows it.
capital_classesbooleanWhether the company has share classes.
directorsarrayManagement and board entries with name, group, role and election_form.
signing_rulestringHow the company is bound by signature. Text is cut when long.
auditorsarrayAuditors with name, registration_number, role and address.
listedbooleanWhether the company is listed.
latest_articles_datestringDate of the latest articles of association.
advertising_protectionbooleanWhether the company has advertising protection on the register.
state_ownedbooleanState-owned flag.
social_economicbooleanSocial economic enterprise flag.
aml_coveredbooleanWhether the company is covered by anti-money-laundering rules, as flagged on the register.
production_unitsarrayProduction units (P-numbers) with name, address, start and end dates, active flag, industry and contact fields. The sample shows two.
production_units_totalnumberTotal number of production units found.
production_units_truncatedbooleanWhether the production unit list was cut.
ownersarrayCurrent owners with name, entity_type, address, ownership_share, voting_share, capital_class, changed_date, details and influence_roles.
owners_ceasedarrayFormer owners. Empty in the sample.
beneficial_ownersarrayBeneficial owners. Empty in the sample.
beneficial_owners_ceasedarrayFormer beneficial owners. Empty in the sample.
board_deemed_beneficial_ownersbooleanWhether the board is treated as beneficial owners.
first_financial_period_startnullStart of the first financial period. Null in the sample.
first_financial_period_endnullEnd of the first financial period. Null in the sample.
filings_totalnumberNumber of filings on the register for the company.
announcements_totalnumberNumber of announcements.
registrations_totalnumberNumber of registrations.
employeesnumberLatest employee count.
employees_periodstringMonth the employee count refers to.
employment_monthlyarrayMonthly employees and full-time equivalents.
employment_quarterlyarrayOlder quarterly figures, some given as an interval instead of a number.
historyobjectPast values with from and to dates: names, addresses, legal_forms, statuses, industry_codes, secondary_industry_codes, purposes, registered_capital, articles_dates, signing_rules.
Response

Example response

A real response, as returned.

{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "kind": "dk_company",
  "company": "24256790",
  "company_id": "24256790",
  "human": "# Denmark — CVR — company\n\n- **Number:** 24256790\n- **Pages opened:** 4\n- **Proxy traffic:** 1.58 MB\n- **Name:** NOVO NORDISK A/S\n- **Status:** Normal\n- **Type:** Aktieselskab\n- **Registered:** 1931-11-28\n- **Address:** Novo Alle 1, 2880 Bagsværd",
  "machine": {
    "company": {
      "registration_number": "24256790",
      "name": "NOVO NORDISK A/S",
      "status": "Normal",
      "address": "Novo Alle 1, 2880 Bagsværd",
      "url": "https://datacvr.virk.dk/enhed/virksomhed/24256790",
      "company_type": "Aktieselskab",
      "incorporation_date": "1931-11-28",
      "end_date": null,
      "phone": "44448888",
      "email": null,
      "municipality": "Gladsaxe",
      "activity": "Fremstilling af farmaceutiske præparater",
      "industry_code": "212000",
      "secondary_activities": [
        "201400 Fremstilling af andre organiske basiskemikalier",
        "211000 Fremstilling af farmaceutiske råvarer"
      ],
      "previous_names": [
        "NORDISK GENTOFTE A/S",
        "NORDISK INSULINLABORATORIUM A/S"
      ],
      "purpose": "Selskabets formål er at forske i, udvikle, producere og markedsføre farmaceutiske, medicinske og tekniske produkter og ydelser samt anden dertil knyttet virksomhed efter bestyrelsens nærmere bestemmel",
      "financial_year_period": "01.01 - 31.12",
      "registered_capital": "446.500.000,00 DKK",
      "directors": [
        {
          "name": "Maziar Doustdar",
          "group": "Direktion",
          "role": "Adm. dir.",
          "election_form": null
        },
        {
          "name": "Karsten Munk Knudsen",
          "group": "Direktion",
          "role": "Direktør",
          "election_form": null
        }
      ],
      "signing_rule": "Selskabet forpligtes ved underskrift (i) af to direktører i forening, (ii) af en direktør eller et bestyrelsesmedlem i forening med bestyrelsens formand eller næstformand eller (iii) af den samlede be",
      "auditors": [
        {
          "name": "DELOITTE STATSAUTORISERET REVISIONSPARTNERSELSKAB",
          "registration_number": "5651072",
          "role": "Revisor",
          "address": "Weidekampsgade 6, 2300 København S"
        },
        {
          "name": "DELOITTE STATSAUTORISERET REVISIONSPARTNERSELSKAB",
          "registration_number": "5651072",
          "role": "Bæredygtighedsrevisor",
          "address": "Weidekampsgade 6, 2300 København S"
        }
      ],
      "listed": true,
      "latest_articles_date": "2026-03-26",
      "capital_classes": true,
      "advertising_protection": false,
      "production_units": [
        {
          "p_number": "1029829825",
          "name": "DKLY NV32",
          "address": "Nørgaardsvej 32, 2800 Kongens Lyngby",
          "start_date": "2023-06-01",
          "end_date": null,
          "active": true,
          "industry_code": "212000",
          "industry": "Fremstilling af farmaceutiske præparater",
          "phone": null,
          "email": null,
          "advertising_protected": true
        },
        {
          "p_number": "1017660779",
          "name": "NOVO NORDISK A/S - 1R 1S 1T 1V 1Y",
          "address": "Brudelysvej 22, 2880 Bagsværd",
          "start_date": "2012-05-09",
          "end_date": null,
          "active": true,
          "industry_code": "212000",
          "industry": "Fremstilling af farmaceutiske præparater",
          "phone": null,
          "email": null,
          "advertising_protected": true
        }
      ],
      "production_units_total": 220,
      "production_units_truncated": false,
      "company_type_code": "60",
      "address_country": "Danmark",
      "foreign_address": null,
      "state_owned": false,
      "social_economic": false,
      "aml_covered": false,
      "fax": null,
      "secondary_phone": null,
      "postal_address": null,
      "first_financial_period_start": null,
      "first_financial_period_end": null,
      "owners": [
        {
          "name": "Novo Holdings A/S",
          "entity_type": "company",
          "address": "Tuborg Havnevej 19, 2900 Hellerup",
          "ownership_share": "25-33,32% (13.11.2000 - )",
          "voting_share": "66,67-89,99% (13.11.2000 - )",
          "capital_class": "A, B (13.11.2000 - )",
          "changed_date": "2000-11-13",
          "details": "Ejerandel: 25-33,32% (13.11.2000 - ); Stemmerettigheder: 66,67-89,99% (13.11.2000 - ); Kapitalklasse: A, B (13.11.2000 - ); Ændringsdato: 13.11.2000",
          "influence_roles": []
        }
      ],
      "owners_ceased": [],
      "beneficial_owners": [],
      "beneficial_owners_ceased": [],
      "board_deemed_beneficial_owners": false,
      "filings_total": 137,
      "announcements_total": 11,
      "registrations_total": 118,
      "employees": 27279,
      "employees_period": "Juli 2026",
      "employment_monthly": [
        {
          "period": "Juli 2026",
          "year": 2026,
          "month": 7,
          "quarter": null,
          "employees": 27279,
          "employees_interval": null,
          "full_time_equivalents": 26308,
          "full_time_equivalents_interval": null
        },
        {
          "period": "Juni 2026",
          "year": 2026,
          "month": 6,
          "quarter": null,
          "employees": 27895,
          "employees_interval": null,
          "full_time_equivalents": 26934,
          "full_time_equivalents_interval": null
        }
      ],
      "employment_quarterly": [
        {
          "period": "3. kvt 2019",
          "year": 2019,
          "month": null,
          "quarter": 3,
          "employees": null,
          "employees_interval": "ANTAL_1000_999999",
          "full_time_equivalents": null,
          "full_time_equivalents_interval": "ANTAL_1000_999999"
        },
        {
          "period": "2. kvt 2019",
          "year": 2019,
          "month": null,
          "quarter": 2,
          "employees": null,
          "employees_interval": "ANTAL_1000_999999",
          "full_time_equivalents": null,
          "full_time_equivalents_interval": "ANTAL_1000_999999"
        }
      ],
      "history": {
        "names": [
          {
            "value": "NOVO-NORDISK A/S",
            "from": "1989-05-04",
            "to": "1990-05-08"
          },
          {
            "value": "NOVO INDUSTRI A/S",
            "from": "1931-11-28",
            "to": "1989-05-03"
          }
        ],
        "addresses": [
          {
            "value": "Novo Alle, 2880 Bagsværd",
            "from": "1931-11-28",
            "to": "2002-10-04"
          }
        ],
        "legal_forms": [],
        "statuses": [],
        "industry_codes": [
          {
            "value": "212000 Fremstilling af farmaceutiske præparater",
            "from": "2008-01-01",
            "to": "2024-12-31"
          },
          {
            "value": "244200 Medicinalvarefabrikker",
            "from": "1999-10-18",
            "to": "2007-12-31"
          }
        ],
        "secondary_industry_codes": [
          {
            "value": "325000 Fremstilling af medicinske og dentale instrumenter samt udstyr hertil",
            "from": "2008-01-01",
            "to": "2024-12-31"
          },
          {
            "value": "211000 Fremstilling af farmaceutiske råvarer",
            "from": "2008-01-01",
            "to": "2024-12-31"
          }
        ],
        "purposes": [],
        "registered_capital": [
          {
            "value": "451.000.000,00",
            "from": "2023-04-26",
            "to": "2024-04-23"
          },
          {
            "value": "456.000.000,00",
            "from": "2022-04-27",
            "to": "2023-04-25"
          }
        ],
        "articles_dates": [
          {
            "value": "2025-03-27",
            "from": "2025-03-27",
            "to": "2026-03-25"
          },
          {
            "value": "2024-04-24",
            "from": "2024-04-24",
            "to": "2025-03-26"
          }
        ],
        "signing_rules": []
      }
    },
    "blocked": false,
    "pages_opened": 4,
    "proxy_traffic_bytes": 1661294
  },
  "total_points": 5
}
Integration

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-dk-companies \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company":"24256790"}'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Know who owns a Danish company

Pull owners with ownership and voting shares and the date each stake changed, instead of reading the ownership page by hand.

Supplier and counterparty checks

Confirm status, legal form, registered capital, directors and auditors before signing a contract.

Account enrichment

Add industry codes, municipality, employee counts and production units to company records in your CRM.

Track name and address changes

The history block shows earlier names, addresses and capital, which helps when a company shows up under an old name.

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
  • —Production units can run long; the response reports the total and says whether the list was cut.
  • —Beneficial owners come back empty when the register shows none. The sample company has an empty list.
  • —Text fields such as purpose and signing_rule can arrive cut short, as in the sample.
FAQ

Questions, answered

The company's CVR number, or the link to the company on the Danish register. The request body takes a single company field.

Related

Related sources

Try cvr company on your own data

One request format across every source in the catalog.

Get started