Start here
This guide contains public integration notes for Denmark. Use it for identifier formats, search behavior, and country-specific caveats. The live source of truth for coverage, pricing, data sources, documents, legal forms, roles, and status values is the pricing page.Denmark coverage, pricing, and sources
Open the current catalog for supported datapoints, documents, sources, identifiers, and availability.
Country details below are preserved as integration notes. If a table or example conflicts with the live pricing page, use the pricing page as the source of truth and contact support.
Table of Contents
- Data Sources
- Company Identifiers
- Search Capabilities
- Fast search data
- Quirks & Gotchas
- Mappings
- Data Availability
- Example API Responses
Data Sources
Denmark uses official registries operated by the Danish Business Authority (Erhvervsstyrelsen). For a given entity, data comes from a single primary source — the CVR. Financial documents are sourced separately from the ERST publication index.All entity types
- CVR (Det Centrale Virksomhedsregister / Central Business Register) — Operated by the Danish Business Authority (Erhvervsstyrelsen), the CVR is the central government register containing primary data on all businesses in Denmark and Greenland. This is the sole primary source for company profile data. The CVR provides comprehensive structured data including: company name, legal form, status, incorporation date, registered address, share capital, activity codes, management (legal representatives), legal shareholders, beneficial owners (UBOs), contact information, employee counts, and production units (establishments). The CVR covers all entity types: commercial companies (A/S, ApS), sole proprietorships (ENK), partnerships (I/S, K/S), non-profits, cooperatives, and public institutions.
- ERST (Erhvervsstyrelsens Offentliggorelsesindeks / Financial Publication Index) — Operated by the Danish Business Authority. Used exclusively for financial statement retrieval (annual reports in XBRL, XHTML, and PDF formats). The ERST indexes all financial publications filed with the Danish Business Authority. It is not a structured data source for company attributes.
The CVR is accessed via an Elasticsearch API (
distribution.virk.dk:8443/cvr-re) that returns deeply nested data structures with historical versioning. Each data field includes validity periods (gyldigFra / gyldigTil), allowing the system to extract current values while preserving historical records.Company Identifiers
Query Identifiers
Identifiers in API Response
Once you retrieve company data, theidentifiers object contains all available identifiers for that entity:
Search Capabilities
Name search queries the CVR Elasticsearch API with a multi-strategy approach: exact match (highest boost), fuzzy match, prefix match, and historical name match. Identifier searches (CVR number) perform exact
term lookups and are significantly faster.Fast search data
Denmark company data is periodically synchronized from the CVR Open Data (Elasticsearch) into a fast search index.Search
Search queries hit the fast search index first for instant results, with automatic fallback to the live CVR Elasticsearch API if the fast search index misses.Companies in fast search data
The fast search index contains all Danish entities from the CVR, regardless of status. Company status is mapped during conversion:
No entities are excluded; all statuses are included in the fast search index to support comprehensive search coverage.
Onboarding Mode
In onboarding mode, requests for thecompany datapoint use the live CVR API, not the fast search dataset. Denmark already had a fast onboarding path via the live CVR Elasticsearch API before the batch pipeline was added. Data is always real-time from the CVR.
Quirks & Gotchas
Mappings
Company Status
Company status is determined deterministically from the CVRsammensatStatus field and lifespan data. The AI enrichment step adds standardized status mapping.
Status determination logic: (1) Use
sammensatStatus if available; (2) Fall back to virksomhedsstatus array for current entry; (3) Check livsforloeb (lifespan) — if the latest lifespan period has an end date, status is OPHORT.Legal Forms
Denmark uses thevirksomhedsformkode from the CVR. The system returns the full description (langBeskrivelse) rather than the abbreviation (kortBeskrivelse). Legal form standardization (English translation, standardized type) is applied deterministically for known codes; for unrecognized codes, AI-based classification is used as fallback. ISO 20275 (ELF) codes will be populated in a future update.
Legal forms are classified from official registry data. For known codes, standardized classification is applied directly; for unrecognized codes, AI-based classification is used as fallback. The local Danish legal form name (
langBeskrivelse) is always preserved verbatim.Key Business Forms
Sole Proprietorships
Partnerships
Cooperatives & Limited Liability Associations
Non-Profits & Foundations
Foreign Entities & Branches
European Legal Forms
Public & Special Entities
Other
Legal Representatives
Legal representatives are extracted deterministically from the CVRdeltagerRelation data. Persons associated with organizations of type LEDELSESORGAN (management body) are classified as legal representatives. Their roles are extracted from the FUNKTION attribute within medlemsData.
The classification of a role as legal representative vs. other key person and the English translation are AI-enriched after deterministic extraction.
Common Management Roles
Common Management Roles
Supervisory & Board Roles
Supervisory & Board Roles
Ownership & Partner Roles
Ownership & Partner Roles
Role enrichment (English translation, standardized role, ISO 5009 code) is AI-enriched. The local Danish role name (
FUNKTION value) is always preserved verbatim. Both current and historical roles are included, with startDate and endDate fields to indicate tenure periods. Entries without endDate are current.Other Key Persons
Persons in the CVRdeltagerRelation associated with LEDELSESORGAN organizations who do not hold statutory authority (e.g., auditors, alternate members) are classified as other key persons. The distinction between legal representative and other key person is AI-enriched based on the role context.
Shareholders
Shareholders are extracted deterministically from the CVRdeltagerRelation data. Persons or companies associated with organizations of type REGISTER are evaluated for ownership. The system explicitly excludes beneficial owners (those with FUNKTION = "Reel ejer") from the shareholder list.
CVR stores ownership percentages as decimals (0.25 = 25%). The system automatically converts these to percentages. Only current ownerships (no end date or future end date) are included. Beneficial owners (
Reel ejer) are excluded from the shareholder list and appear only in the UBO data point. Both individual and corporate shareholders are supported.Activity Code Mapping
Denmark uses the DB07 (Dansk Branchekode 2007) classification, which aligns closely with the European NACE Rev. 2 standard. The system maps activity codes across three levels:AI Enrichment: When ISIC codes cannot be derived from NACE via formal mapping tables, the system uses an LLM to match activity descriptions to ISIC Rev. 4 codes. Every activity item includes an
isAIInferred flag to distinguish official vs. AI-derived codes. DBR and NACE codes are never AI-inferred for Denmark.Data Availability
Data Availability Matrix
Legend: ✅ Available | ❌ Not Available | ⚠️ Conditionally Available | Async = Asynchronous processing
Documents by Company Type
Financial Document Formats: Danish financial statements can be in XBRL (machine-readable), XHTML (human-readable), or PDF format. Each document includes period information (
startDate and endDate) for the fiscal year it covers. The system detects the actual file format from magic bytes because CVR MIME types can be inaccurate.Example API Responses
All examples use placeholder data. Query:POST /v2/company with { "id": "<id>", "countryCode": "DK", "dataPoints": ["company", "legalRepresentatives"] }
Active A/S (Source: CVR), corporation with board
Active A/S (Source: CVR), corporation with board
Closed Sole Proprietorship (Source: CVR)
Closed Sole Proprietorship (Source: CVR)
active: false, status OPHORT. Legal representatives may have endDate set. Sole proprietorships typically do not have shareholders or UBO data.Nonprofit, Voluntary Association (Source: CVR)
Nonprofit, Voluntary Association (Source: CVR)
LEDELSESORGAN management data.UBO Response (dedicated datapoint)
UBO Response (dedicated datapoint)
Query with Note: UBOs are always individuals (never corporate entities). They are identified by
"dataPoints": ["ultimateBeneficialOwners"]:FUNKTION = "Reel ejer" in the CVR REGISTER organizations. Ownership and voting rights percentages are derived from the CVR EJERANDEL data. The beneficial ownership percentage may differ from the legal shareholding percentage.When a company has no registered beneficial owners, the registered management is returned instead (see below). These entries carry control.types: ["significant-influence-or-control"] and no ownership percentage, and control.description notes they are designated management.Available Documents (company example)
Available Documents (company example)
Documents are returned when
"dataPoints": ["availableDocuments"] is requested.Data Source Priority & Routing
For a given entity, all data comes from a single source: the CVR — Denmark does not have multiple competing registries. Financial documents are the only exception, sourced from the separate ERST publication index.Data Flow:
- Company Profile — CVR Elasticsearch API (
distribution.virk.dk:8443/cvr-re) via authenticated API call - Financial Statements — ERST Offentliggorelsesindeks (
distribution.virk.dk/offentliggoerelser) via proxied API call - Official Publications & Trade Register Extract — CVR Gateway (
datacvr.virk.dk/gateway)
Ultimate Beneficial Owners
UBOs are extracted from the same CVR data as shareholders but are filtered specifically for individuals withFUNKTION = "Reel ejer" (beneficial owner). UBO ownership percentages may differ from legal shareholding percentages.
When a company has no registered beneficial owners. Under Danish anti-money-laundering law, if no beneficial owner can be identified — a common case when ownership runs up through a foreign parent — the company’s registered management is recorded as the beneficial owners. Topograph mirrors this: when there are no beneficial owners to return,
ultimateBeneficialOwners falls back to the company’s current directors and board members, each with control.types: ["significant-influence-or-control"], no ownership percentage, and a control.description indicating they are designated management.Two safeguards keep this faithful to the register:- Active companies only. The management substitution is applied only to companies that are currently active. Companies that are closed or being wound up return no beneficial owners (their management is no longer current).
- Liquidators excluded. A liquidator appointed to dissolve a company is never returned as a beneficial owner.