Denmark CVR Company Scraper — Directors, Units & History avatar

Denmark CVR Company Scraper — Directors, Units & History

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Denmark CVR Company Scraper — Directors, Units & History

Denmark CVR Company Scraper — Directors, Units & History

Scrape any Danish company from the official CVR (Virk) by CVR number — name, legal form, status, address, management & board, auditor, production units, NACE industry and full registration history. No API key. Structured JSON for KYB & due diligence. Pay only for matches.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

NeuralVerge

NeuralVerge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Denmark CVR Company Scraper — Financials, Owners & Management ✅ No API Key

Scrape any Danish CVR (datacvr.virk.dk) company profile from its CVR number — legal name, address, company type, status, industry code, purpose, power to bind, directors & board (key individuals), auditor, ownership, annual financial statements, production units (P-enheder) and the full Danish registration history. Powered by the Neuralverge API. No API key or account required, and you only pay for companies we actually find.

Ideal for KYC/KYB, due diligence, compliance, credit checks and feeding company data to AI agents.

✨ Why this Actor

  • 🇩🇰 Full CVR profile — identity, governance, ownership, financials, production units and registration history in one structured object.
  • 💸 Pay only for the companies you get — unresolved CVR numbers are skipped and never billed. Misses are free; no empty, billable rows.
  • 🔑 No API key or account — extraction runs on the Neuralverge backend.
  • Real-time & structured — fresh data each run and one predictable JSON schema.

🔧 How it works

  1. Provide a Danish CVR number (e.g. 39697696) — or an advanced full datacvr.virk.dk profile URL.
  2. Run the Actor. Fetching and AI-structuring the profile happens on the Neuralverge backend.
  3. Get one dataset row per company — the source url, the extraction settings (including the JSON schema) and the structured machine object. Export to CSV, JSON or Excel, or pull it over the Apify API.

If the company can't be resolved, it's logged and skipped without charge.

Input

One company per run.

FieldTypeNotes
companyNumberstringThe Danish CVR number (CVR-nummer), e.g. 39697696.
companyUrlstringAdvanced: a full datacvr.virk.dk profile URL to use instead of the CVR number.
{
"companyNumber": "39697696"
}

What you'll receive

Each dataset row mirrors the Neuralverge system output and has three top-level blocks:

  • url — the datacvr.virk.dk profile URL that was scraped.
  • settings — the extraction settings, including the full JSON schema used, at settings.extract_schema_json.
  • machine — the structured result with these sections: general_information (cvr_number, company_name, address, start_date, company_type, status), expanded_business_information (industry code, purpose, contact), governance (power_to_bind, key_individuals, auditor), ownership, financial_statements, production_units, registration_history_danish, historical_basic_data, number_of_employees, order_other_documents_danish.

Nulls & empty sections are normal. Only data present on the profile is filled — e.g. ownership and historical_basic_data can be empty, and financial figures may be null when a statement isn't published. Registration history (registration_history_danish) and some labels are kept in the original Danish, exactly as the register publishes them.

Example output (real run)

A real dataset row from https://datacvr.virk.dk/enhed/virksomhed/39697696, shown in full — including the complete extraction schema (settings.extract_schema_json) and the full machine-readable result (machine). The human markdown summary is produced by the system but omitted from the dataset.

{
"url": "https://datacvr.virk.dk/enhed/virksomhed/39697696",
"settings": {
"has_schema": true,
"country_code": "us",
"extract_schema_json": {
"type": "object",
"properties": {
"general_information": {
"type": "object",
"description": "Basic, general information about the company.",
"properties": {
"cvr_number": {
"type": "string",
"description": "The unique CVR number of the company."
},
"company_name": {
"type": "string",
"description": "The legal name of the company."
},
"address": {
"type": "string",
"description": "The registered legal address of the company."
},
"start_date": {
"type": "string",
"format": "date",
"description": "The date the company was established."
},
"company_type": {
"type": "string",
"description": "The legal form of the company (e.g., A/S, ApS)."
},
"status": {
"type": "string",
"description": "The current operational status of the company (e.g., Normal, Inaktiv)."
}
},
"required": [
"cvr_number",
"company_name"
]
},
"expanded_business_information": {
"type": "object",
"description": "More detailed information about the company's business activities.",
"properties": {
"industry_code": {
"type": "string",
"description": "The primary industry code and description."
},
"secondary_industry_codes": {
"type": "array",
"description": "List of secondary industry codes and descriptions.",
"items": {
"type": "string"
}
},
"company_purpose": {
"type": "string",
"description": "The stated purpose or objective of the company."
},
"contact_information": {
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "Official phone number."
},
"email": {
"type": "string",
"description": "Official email address."
},
"website": {
"type": "string",
"description": "Official company website."
}
}
}
}
},
"governance": {
"type": "object",
"description": "Information about company management, power to bind, and auditors.",
"properties": {
"power_to_bind": {
"type": "string",
"description": "The rule describing who has the authority to legally bind the company."
},
"key_individuals": {
"type": "array",
"description": "A list of key individuals in the company, such as directors and board members.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The full name of the individual."
},
"role": {
"type": "string",
"description": "The individual's role or title (e.g., CEO, Bestyrelsesformand)."
},
"joined_on": {
"type": "string",
"format": "date",
"description": "The date the individual joined this role."
}
},
"required": [
"name",
"role"
]
}
},
"auditor": {
"type": "object",
"description": "Information about the company's auditor, if any.",
"properties": {
"name": {
"type": "string",
"description": "The name of the auditing firm or individual."
},
"cvr_number": {
"type": "string",
"description": "The CVR number of the auditing firm."
},
"address": {
"type": "string",
"description": "The address of the auditor."
}
}
}
}
},
"ownership": {
"type": "array",
"description": "A list of owners, both real and legal, with significant holdings.",
"items": {
"type": "object",
"properties": {
"owner_name": {
"type": "string",
"description": "The name of the owner (person or company)."
},
"ownership_percentage": {
"type": "string",
"description": "The percentage or range of ownership."
},
"nationality_or_country": {
"type": "string",
"description": "Nationality of the person or country of incorporation for the company."
}
},
"required": [
"owner_name"
]
}
},
"financial_statements": {
"type": "array",
"description": "A list of historical annual financial statements.",
"items": {
"type": "object",
"properties": {
"year": {
"type": "integer",
"description": "The fiscal year of the report."
},
"gross_profit": {
"type": "number",
"description": "Bruttofortjeneste."
},
"profit_loss_before_tax": {
"type": "number",
"description": "Resultat før skat."
},
"profit_loss": {
"type": "number",
"description": "Årets resultat (profit/loss for the year)."
},
"equity": {
"type": "number",
"description": "Egenkapital (total equity)."
},
"total_assets": {
"type": "number",
"description": "Balance (total assets)."
},
"currency": {
"type": "string",
"description": "The currency of the financial figures (e.g., DKK)."
}
},
"required": [
"year"
]
}
},
"production_units": {
"type": "array",
"description": "A list of production units (P-enheder) associated with the company.",
"items": {
"type": "object",
"properties": {
"p_number": {
"type": "string",
"description": "The unique P-number of the production unit."
},
"name": {
"type": "string",
"description": "The name of the production unit."
},
"address": {
"type": "string",
"description": "The address of the production unit."
},
"start_date": {
"type": "string",
"format": "date",
"description": "The start date of the production unit."
},
"industry_code": {
"type": "string",
"description": "The industry code and description for the unit."
}
},
"required": [
"p_number",
"name",
"address"
]
}
},
"registration_history_danish": {
"type": "array",
"description": "A chronological list of official registration events in Danish.",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time",
"description": "The date and time of the registration event."
},
"event_description_danish": {
"type": "string",
"description": "The description of the event as registered, in Danish."
}
},
"required": [
"date",
"event_description_danish"
]
}
},
"historical_basic_data": {
"type": "array",
"description": "A log of changes to the company's basic data over time.",
"items": {
"type": "object",
"properties": {
"valid_from": {
"type": "string",
"format": "date",
"description": "The date from which this data was valid."
},
"field_changed": {
"type": "string",
"description": "The data field that was changed (e.g., Name, Address)."
},
"value": {
"type": "string",
"description": "The value of the field during this period."
}
},
"required": [
"valid_from",
"field_changed",
"value"
]
}
},
"number_of_employees": {
"type": "string",
"description": "The most recently reported number of employees, often as a range (e.g., '10-19 ansatte')."
},
"order_other_documents_danish": {
"type": "array",
"description": "A list of other available documents that can be ordered, with descriptions in Danish.",
"items": {
"type": "object",
"properties": {
"document_name_danish": {
"type": "string",
"description": "The name of the document in Danish (e.g., 'Vedtægter')."
},
"last_updated": {
"type": "string",
"format": "date",
"description": "The date the document was last updated."
}
}
}
}
},
"required": [
"general_information"
]
}
},
"machine": {
"general_information": {
"cvr_number": "39697696",
"company_name": "Lunar Bank A/S",
"address": "Hack Kampmanns Plads 10\n8000 Aarhus C",
"start_date": "2018-07-02",
"company_type": "Aktieselskab",
"status": "Normal"
},
"expanded_business_information": {
"industry_code": "641900 Andre pengeinstitutters aktiviteter",
"secondary_industry_codes": [],
"company_purpose": "Selskabets formål er at drive bankvirksomhed samt anden accessorisk virksomhed tilladt i henhold til lovgivningen.",
"contact_information": null
},
"governance": {
"power_to_bind": "Selskabet tegnes af en direktør i forening med et bestyrelsesmedlem, af to medlemmer af bestyrelsen eller af den samlede bestyrelse.",
"key_individuals": [
{
"name": "Søren Kyhl",
"role": "(Adm. dir)",
"joined_on": null
},
{
"name": "Gitte Margrethe Roskær",
"role": "(Direktør)",
"joined_on": null
},
{
"name": "Joakim Skaarup Hansen",
"role": "(Direktør)",
"joined_on": null
},
{
"name": "Robert Nils Stambro",
"role": "(Direktør)",
"joined_on": null
},
{
"name": "Jens Peter Leschly Neergaard",
"role": "(Formand)",
"joined_on": null
},
{
"name": "Claus Okholm",
"role": null,
"joined_on": null
},
{
"name": "Ken Villum Guldbrandt Klausen",
"role": null,
"joined_on": null
},
{
"name": "Jens Mikael Kristoffer Ismunden",
"role": null,
"joined_on": null
},
{
"name": "Ola Reinhold Nordbye",
"role": null,
"joined_on": null
},
{
"name": "Matthew Crispin Hurst Westerman",
"role": null,
"joined_on": null
},
{
"name": "Annica Maria Witschard",
"role": null,
"joined_on": null
}
],
"auditor": {
"name": "PRICEWATERHOUSECOOPERS STATSAUTORISERET REVISIONSPARTNERSELSKAB",
"cvr_number": null,
"address": "Strandvejen 44\n2900 Hellerup"
}
},
"ownership": [],
"financial_statements": [
{
"year": 2025,
"gross_profit": null,
"profit_loss_before_tax": null,
"profit_loss": null,
"equity": null,
"total_assets": null,
"currency": "DKK"
},
{
"year": 2024,
"gross_profit": null,
"profit_loss_before_tax": null,
"profit_loss": null,
"equity": null,
"total_assets": null,
"currency": "DKK"
},
{
"year": 2023,
"gross_profit": null,
"profit_loss_before_tax": null,
"profit_loss": null,
"equity": null,
"total_assets": null,
"currency": "DKK"
},
{
"year": 2022,
"gross_profit": null,
"profit_loss_before_tax": null,
"profit_loss": null,
"equity": null,
"total_assets": null,
"currency": "DKK"
},
{
"year": 2021,
"gross_profit": null,
"profit_loss_before_tax": null,
"profit_loss": null,
"equity": null,
"total_assets": null,
"currency": "DKK"
},
{
"year": 2020,
"gross_profit": null,
"profit_loss_before_tax": null,
"profit_loss": null,
"equity": null,
"total_assets": null,
"currency": "DKK"
},
{
"year": 2019,
"gross_profit": null,
"profit_loss_before_tax": null,
"profit_loss": null,
"equity": null,
"total_assets": null,
"currency": "DKK"
},
{
"year": 2018,
"gross_profit": null,
"profit_loss_before_tax": null,
"profit_loss": null,
"equity": null,
"total_assets": null,
"currency": "DKK"
}
],
"production_units": [
{
"p_number": "1025681610",
"name": "Lunar Bank A/S",
"address": "Bredgade 43\n1260 København K",
"start_date": "2020-01-01",
"industry_code": "641900 Andre pengeinstitutters aktiviteter"
},
{
"p_number": "1023764349",
"name": "Lunar Bank A/S",
"address": "Hack Kampmanns Plads 10\n8000 Aarhus C",
"start_date": "2018-07-02",
"industry_code": "641900 Andre pengeinstitutters aktiviteter"
}
],
"registration_history_danish": [
{
"date": "2026-06-19T00:00:00Z",
"event_description_danish": "Ændring i personkreds\n\nCVR-nummer: 39697696\n\nNavn og adresse: Lunar Bank A/S Hack Kampmanns Plads 10, 8000 Aarhus C\n\n# Bestyrelse: ## Tiltrådte: [Ken Villum Guldbrandt Klausen](https://datacvr.virk.dk/enhed/person/4004083032/deltager) , den 02.06.2026. # Direktion: ## Fratrådte: Ken Villum Guldbrandt Klausen, (adm. dir), den 01.06.2026. ## Tiltrådte: [Søren Kyhl](https://datacvr.virk.dk/enhed/person/4006430035/deltager) , (adm. dir), den 01.06.2026."
},
{
"date": "2026-06-01T00:00:00Z",
"event_description_danish": "Ændring i personkreds\n\nCVR-nummer: 39697696\n\nNavn og adresse: Lunar Bank A/S Hack Kampmanns Plads 10, 8000 Aarhus C\n\n# Bestyrelse: ## Fratrådte: Lars Andersen, den 29.04.2026, Klaus Østergaard, den 29.04.2026. ## Tiltrådte: [Annica Maria Witschard](https://datacvr.virk.dk/enhed/person/4010786807/deltager) , den 29.04.2026."
},
{
"date": "2026-05-19T00:00:00Z",
"event_description_danish": "Ændring i personkreds\n\nCVR-nummer: 39697696\n\nNavn og adresse: Lunar Bank A/S Hack Kampmanns Plads 10, 8000 Aarhus C\n\n# Direktion: ## Fratrådte: Ken Villum Guldbrandt Klausen, den 01.05.2026. ## Tiltrådte: [Ken Villum Guldbrandt Klausen](https://datacvr.virk.dk/enhed/person/4004083032/deltager) , (adm. dir), den 01.05.2026."
},
{
"date": "2026-03-20T00:00:00Z",
"event_description_danish": "Ændring i personkreds\n\nCVR-nummer: 39697696\n\nNavn og adresse: Lunar Bank A/S Hack Kampmanns Plads 10, 8000 Aarhus C\n\n# Direktion: ## Fratrådte: Jonas Kjær Leed, den 01.03.2026. ## Tiltrådte: [Joakim Skaarup Hansen](https://datacvr.virk.dk/enhed/person/4010736765/deltager) , den 01.03.2026, [Gitte Margrethe Roskær](https://datacvr.virk.dk/enhed/person/4004179563/deltager) , den 01.03.2026."
},
{
"date": "2026-01-27T00:00:00Z",
"event_description_danish": "Ændring i personkreds\n\nCVR-nummer: 39697696\n\nNavn og adresse: Lunar Bank A/S Hack Kampmanns Plads 10, 8000 Aarhus C\n\n# Bestyrelse: ## Fratrådte: Jens Peter Leschly Neergaard, den 12.01.2026, Timothy Tracy Brooke Thom, (formand), den 12.01.2026. ## Tiltrådte: [Jens Peter Leschly Neergaard](https://datacvr.virk.dk/enhed/person/4007809328/deltager) , (formand), den 12.01.2026, [Matthew Crispin Hurst Westerman](https://datacvr.virk.dk/enhed/person/4010645786/deltager) , den 30.12.2025."
},
{
"date": "2026-01-08T00:00:00Z",
"event_description_danish": "Gennemførelse af fusion eller spaltning\n\nCVR-nummer: 39697696\n\nNavn og adresse: Lunar Bank A/S Hack Kampmanns Plads 10, 8000 Aarhus C\n\nErhvervsstyrelsen har modtaget oplysning om, at der er truffet beslutning om nedenstående fusion. Virksomheden er fusioneret med CVR-nummer: 36683279 Lunar Payments ApS, der samtidigt er opløst. Vedtægter ændret: 30.12.2025 \n\nNye binavne: Lunar Payments A/S, Paylike A/S \n\nKapitalforhøjelsen er besluttet den 30.12.2025. \n\nkr. 1,00, indbetalt ved fusion, kurs 16.686.538,93. \n\nKapitalen udgør herefter kr. 42.077.081,00."
}
],
"historical_basic_data": [],
"number_of_employees": null,
"order_other_documents_danish": []
}
}

Genuine output from a live run — Lunar Bank A/S, with 11 key individuals, an auditor, two production units and six Danish registration-history events resolved.

Pricing

Pay per result — $0.005 per company ($5 per 1,000) returned to the dataset. You pay only for rows returned — misses are free.

EventPrice
Actor startFree
Company returned (per dataset row)$0.005

CVR numbers that can't be resolved are not billed. Pricing is on top of your Apify platform usage.

Integrations & API

Results are stored in a standard Apify dataset — export as CSV, JSON, XML or Excel, or fetch on demand through the Apify API. The Actor also plugs into Apify's integrations (Make, Zapier, n8n, webhooks) and can be called from any MCP client.

FAQ

Do I need an account or API key? No. Extraction runs on the Neuralverge backend.

What identifier do I use? The Danish CVR number (CVR-nummer) — an 8-digit number like 39697696. You can also pass a full datacvr.virk.dk profile URL.

Am I charged if a company isn't found? No. You're billed only for rows returned to the dataset.


Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Danish Business Authority (Erhvervsstyrelsen) or CVR. Data originates from the public datacvr.virk.dk register.