Hvad bruger man et CVR API til? 10 konkrete use cases med eksempler

Når man nævner et CVR API, tænker mange først på "det der hvor man slår et firmanavn op via et CVR-nummer". Men det er kun toppen af isbjerget. Et moderne CVR API kobler dig til de officielle registre over 2,2 millioner+ danske virksomheder, deres ejere, ledelse, regnskaber, branchekoder, historik og koncernrelationer — strukturerede data du kan bruge til alt fra automatisk onboarding af nye kunder til due diligence på 5 minutter.
Spørgsmålet er ikke om du kan bruge et CVR API, men hvor du skal begynde. Denne artikel gennemgår 10 konkrete use cases med kodeeksempler, så du ved præcis hvad du kan bygge — og hvordan du kan lade din AI-assistent (Claude, ChatGPT, Codex, Cursor) gøre det meste af arbejdet via vores MCP-server.
Hvad er et CVR API?
Et CVR API (Central Virksomhedsregister API) er en programmatisk grænseflade til de officielle data om danske virksomheder: CVR-numre, navne, adresser, ejere, selskabsform, regnskaber, produktionsenheder, bibrancher, historik og meget mere. Kort sagt: alt hvad der er registreret offentligt om en dansk virksomhed kan hentes med et HTTP-kald og returneres som struktureret JSON.
FirmaAPI er Danmarks første CVR API til AI-agenter — bygget på moderne REST-principper med webhooks, OpenAPI-spec, personprofiler på tværs af virksomheder, og en indbygget MCP-server der lader AI-værktøjer tale direkte med CVR-data. Data opdateres dagligt fra de officielle kilder, så du altid arbejder med friske oplysninger.
Alle eksempler nedenfor antager at du har en API-nøgle — den får du gratis på firmaapi.dk/register med 1.000 opslag om måneden inkluderet. Nøglen sendes som Bearer-token i Authorization-headeren.
1. KYC og compliance-screening ved kundeonboarding
Problemet: Når en ny erhvervskunde opretter sig på din platform, skal du hurtigt kunne verificere at virksomheden eksisterer, er aktiv, og at de personer der står som underskrivende faktisk har tegningsret. Manuel opslag på virk.dk skalerer ikke.
Løsningen: Slå CVR-nummeret op med include=relations,history og tjek:
statuser"Aktiv"(ikke"Ophørt","Konkurs"eller"Tvangsopløsning")signing_ruleviser tegningsreglenownersindeholder den person kunden oplystestatus_historyafslører om virksomheden har været genoprettet efter tidligere konkurs
curl https://firmaapi.dk/api/v1/company/34824770?include=relations,history,events \
-H "Authorization: Bearer cvr_live_din_nøgle"
Det returnerede JSON fortæller dig om virksomheden er reklamebeskyttet (så du ikke må bruge kontaktdata til markedsføring), hvilke events der er registreret de seneste 12 måneder (navneskift, ejerskifte, flytninger), og hele koncernstrukturen hvis det er et holdingselskab.
Tidsbesparelse: Fra 3-5 minutters manuelt arbejde pr. kunde til et automatiseret API-kald der returnerer på under 100ms.
2. Kreditvurdering og risk scoring i realtid
Problemet: Før du giver en ny B2B-kunde kredit, har du brug for at vurdere deres økonomiske helbred. Regnskaber ligger offentligt hos Erhvervsstyrelsen, men at hente og parse dem manuelt er smertefuldt.
Løsningen: Brug include=finance for at hente udvidede regnskabsfelter (omsætning, bruttofortjeneste, årets resultat, egenkapital, balancesum, soliditet, likviditetsgrad) for de sidste år. Du kan bygge en scoring-model oven på:
- Omsætningsvækst over 3 år
- Positiv soliditet (>20% = sund)
- Positivt resultat (
net_profit > 0) - Voksende egenkapital
- Ingen aktive konkursvarsler i
events
curl "https://firmaapi.dk/api/v1/company/24256790?include=finance,events" \
-H "Authorization: Bearer cvr_live_din_nøgle"
Response inkluderer financials som array med et objekt pr. år, så du kan sammenligne udvikling over tid og give kreditmaks baseret på faktiske tal — ikke magefornemmelse.
Webhook-variant: Abonnér på company.status.changed og company.financials.published events, så du får besked med det samme når en eksisterende kunde får et nyt regnskab eller skifter status. Dit risk-dashboard opdateres automatisk.
3. Lead-generering og ICP-matching til B2B-salg
Problemet: Dit SaaS-produkt sælger bedst til danske IT-virksomheder med 10-50 ansatte og omsætning mellem 5-30M. Hvor finder du 500 af dem?
Løsningen: GET /api/v1/search/advanced tager 20+ filtre og returnerer præcist de virksomheder der matcher din Ideal Customer Profile:
curl "https://firmaapi.dk/api/v1/search/advanced?\
industry=620100&\
employees=10-50&\
revenue_min=5000000&\
revenue_max=30000000&\
status=NORMAL&\
has_phone=true&\
ad_protected=false&\
limit=100" \
-H "Authorization: Bearer cvr_live_din_nøgle"
Du får en liste af CVR-numre med navne, adresser, telefonnumre, e-mails (hvor oplyst) og webadresser — alt sammen kun for virksomheder der ikke er reklamebeskyttede, så du kan kontakte dem lovligt.
Tip: Kombinér med webhooks på company.participant.changed for at fange virksomheder der lige har fået en ny CMO eller CTO — de er mest åbne for nye værktøjer i de første 90 dage.
4. Automatisk udfyldning af formularer og ERP-data
Problemet: Dine kunder hader at udfylde deres egne stamdata. De glemmer postnummer, laver tastefejl, og støtten bliver bombarderet med "mit CVR er forkert".
Løsningen: Erstat stamdata-feltet med ét enkelt CVR-input. Når brugeren skriver sit CVR, henter du resten automatisk:
curl https://firmaapi.dk/api/v1/company/34824770 \
-H "Authorization: Bearer cvr_live_din_nøgle"
Response indeholder name, address, zipcode, city, company_type, industry_text — alt hvad en standard B2B-form har brug for. Du gemmer kun CVR-nummeret og henter resten når du skal bruge det, så du aldrig lagrer forældede data.
Bonus: GET /api/v1/company/search?q=... giver live-autocomplete mens brugeren skriver virksomhedsnavnet, så de slet ikke behøver huske CVR'et.
5. Fakturering, EAN/CVR-validering og regnskabsintegration
Problemet: Regnskabs- og faktureringssystemer skal bruge validerede CVR-numre, korrekte debitoradresser, og opdaterede oplysninger når kunder flytter eller skifter navn.
Løsningen: Ved oprettelse af en debitor: slå CVR op, hent adressen fra API'et, og gem updated_at fra response sammen med resten. Lav så et scheduleret job der tjekker om stamdata er ændret:
curl -X POST https://firmaapi.dk/api/v1/company/batch \
-H "Authorization: Bearer cvr_live_din_nøgle" \
-H "Content-Type: application/json" \
-d '{"cvr_numbers": ["34824770", "24256790", "19625095"]}'
Batch-endpointet tager op til 500 CVR-numre pr. kald og returnerer alle i ét response — perfekt til nattekørsler der synkroniserer hele din debitorliste.
Endnu bedre: Sæt en webhook op på company.address.changed og company.name.changed — så opdateres dit ERP automatisk næste gang en kunde flytter eller skifter navn, uden at nogen ringer ind.
6. HR og rekruttering — verificér CV-oplysninger
Problemet: En kandidat skriver at de var CFO hos et specifikt A/S fra 2018-2022. Er det sandt? Og har de andre interessante roller du ikke kendte til?
Løsningen: Personprofiler (Professionel-planen eller højere) lader dig slå en person op og se alle deres registrerede roller på tværs af alle danske virksomheder. Hver affiliation har joined_date, left_date, role_title og duration_days:
curl "https://firmaapi.dk/api/v1/person/search?q=lars%20sandahl" \
-H "Authorization: Bearer cvr_live_din_nøgle"
Når du har fundet personen, henter du fulde profil via UUID:
curl https://firmaapi.dk/api/v1/person/123e4567-e89b-12d3-a456-426614174000 \
-H "Authorization: Bearer cvr_live_din_nøgle"
Response splitter rollerne i active_company_count (igangværende) og historical_company_count (afsluttede), så du ikke forveksler korte formelle roller (fx advokat som direktør i få dage ved selskabsstiftelse) med rigtige ansættelser. duration_days på hver rolle lader dig filtrere støj fra.
7. Due diligence og M&A research
Problemet: Du skal vurdere et opkøbsmål og har 48 timer til at forstå deres ejerstruktur, koncernrelationer og finansielle udvikling.
Løsningen: Ét API-kald med include=relations,finance,history,events giver dig:
- Fulde koncernrelationer: moderselskaber, datterselskaber, kontrolandele (
control_share) - Alle regnskaber i databasen (typisk 5+ år tilbage)
- Historik: navneskift, statusskift, adresseflytninger, branche-ændringer
- Events: de seneste officielle hændelser (ejerskifte, kapitalforhøjelse, etc.)
curl "https://firmaapi.dk/api/v1/company/24256790?\
include=relations,finance,history,events,production_units" \
-H "Authorization: Bearer cvr_live_din_nøgle"
Kombinér med personprofiler på de identificerede ejere for at kortlægge netværket af relaterede selskaber — ofte afslører dette stråmandsselskaber, cirkulære ejerskaber eller skjulte interessekonflikter som ellers ville kræve timer af manuel analyse.
Vi har en separat guide til due diligence-flowet i vores artikel om due diligence på 5 minutter — men essensen er at du kan automatisere 80% af arbejdet med et enkelt API-kald.
8. Markedsovervågning og konkurrentintelligens
Problemet: Du vil vide hvornår en konkurrent åbner en ny afdeling, skifter CEO, får nyt regnskab eller tager kapital ind — før det rammer nyhederne.
Løsningen: Opret webhooks på de specifikke CVR-numre du overvåger:
curl -X POST https://firmaapi.dk/api/v1/webhooks \
-H "Authorization: Bearer cvr_live_din_nøgle" \
-H "Content-Type: application/json" \
-d '{
"url": "https://din-app.dk/webhooks/competitor",
"events": [
"company.status.changed",
"company.capital.changed",
"company.participant.changed",
"company.address.changed",
"company.financials.published"
],
"cvr_filter": ["31112233", "26223344", "37334455"]
}'
Hver gang registret opdateres, får dit endpoint et signeret HTTP POST med fuld event-payload. Dit dashboard pling'er inden for minutter af officiel registrering — ofte timer eller dage før pressemeddelelser.
Produktionsenheds-tracking (production_units-blokken) viser antallet af fysiske lokationer pr. konkurrent. En virksomhed der lige er gået fra 3 til 7 P-numre vokser aggressivt — en virksomhed der gik fra 12 til 8 er i konsolideringsfase.
9. Branche-analytics og markedsrapporter
Problemet: Du skal lave en benchmark-rapport på fx "Danske ejendomsmæglerfirmaer": hvor mange er der, hvordan fordeler størrelsen sig, hvad er den gennemsnitlige omsætning, hvor ligger de geografisk?
Løsningen: GET /api/v1/industries giver dig det komplette danske branchetræ (DB07) med koder og antal virksomheder. Kombinér med avanceret søgning for at aggregere data:
# 1. Find korrekt branchekode
curl https://firmaapi.dk/api/v1/industries \
-H "Authorization: Bearer cvr_live_din_nøgle"
# 2. Hent alle virksomheder i branchen med regnskabstal
curl "https://firmaapi.dk/api/v1/search/advanced?\
industry=683100&has_financials=true&limit=100&include_total=true" \
-H "Authorization: Bearer cvr_live_din_nøgle"
Paginér gennem resultatet med offset for at analysere hele branchen. Du kan lave histogrammer over omsætning, geografisk fordeling (via municipalities-kataloget), virksomhedsform, ansatte-intervaller og meget mere. Data der tidligere krævede en dyr markedsrapport kan du nu generere selv på 10 minutter.
10. AI-agenter og interne værktøjer via MCP
Problemet: Dine ansatte stiller hele tiden spørgsmål som "Hvem ejer denne virksomhed?" eller "Find 10 leads vi kan ringe til i dag". Du vil ikke bygge et nyt dashboard hver gang.
Løsningen: Vores MCP-server (Model Context Protocol) installeres i Claude Desktop, Claude Code, Codex, Cursor eller enhver anden MCP-kompatibel AI-klient. Fra det øjeblik kan dit team bare spørge i naturligt sprog, og AI'en kalder CVR API'et for dem:
npm install -g firmaapi-mcp-server
Derefter i Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"firmaapi": {
"command": "firmaapi-mcp-server",
"env": { "FIRMAAPI_KEY": "cvr_live_din_nøgle" }
}
}
}
Nu kan dit team skrive prompts som:
"Find 10 aktive virksomheder i Aarhus indenfor transport med 20+ ansatte og telefonnummer vi kan ringe til — giv mig navn, CVR, telefon og branche."
AI'en kalder selv firmaapi_advanced_search med de rigtige parametre, parser svaret, og præsenterer det som en tabel. Dine sælgere behøver ikke engang vide at der er et API i baggrunden.
Andre eksempler:
"Slå CVR 34824770 op og opsummer deres seneste regnskab plus ejerstruktur."
"Hvilke virksomheder blev stiftet denne måned i branchen 'Computerprogrammering' i København?"
"Søg efter alle personer der hedder 'Lars Sandahl Sørensen' og vis deres virksomhedsroller de sidste 10 år."
Dit interne værktøj er nu bare... Claude. Ingen UI at vedligeholde. Ingen BI-platform. Bare spørgsmål og svar.
Læs vores opsætningsguide til MCP-serveren for detaljerede instruktioner til Claude Desktop, Claude Code, Cursor og andre klienter.
Bonus: Kombinér flere use cases med webhooks
Ægte værdi opstår når du kæder use cases sammen. Et realistisk eksempel fra en dansk SaaS-virksomhed:
- Ny kunde opretter sig med CVR →
GET /company/{cvr}autoudfylder stamdata (use case 4) - Samme kald kører KYC-screening på ejere (use case 1) og kreditvurdering (use case 2)
- Hvis alt er grønt: kunden kommer på en liste der abonnerer på webhooks for
company.status.changed,company.participant.changedogcompany.financials.published(use case 8) - Hver nat kører batch-sync (use case 5) for at fange mindre opdateringer
- CS-teamet bruger MCP (use case 10) til at spørge "Hvem er vores top 20 kunder i risikobranchen byggeri?"
Hele flowet er ét API og én API-nøgle. Ingen integrationshelvede.
Priser og hvordan du kommer i gang
Vores planer er designet så du kan starte gratis og skalere op efter behov:
| Plan | Pris/md | Opslag/md | Hastighed | Features |
|---|---|---|---|---|
| Gratis | 0 kr. | 1.000 | 2 req/s | Base-endpoints, MCP-server |
| Basis | 79 kr. | 50.000 | 5 req/s | + Batch-opslag |
| Standard | 299 kr. | 150.000 | 10 req/s | + Webhooks, produktionsenheder |
| Professionel | 469 kr. | 500.000 | 20 req/s | + Personprofiler |
| Enterprise | Custom | 1.000.000+ | 50 req/s | SLA, dedikeret support |
Opret en konto på firmaapi.dk/register, kopier din nøgle, og du er i gang inden for 60 sekunder. Der er ingen kreditkort påkrævet for den gratis plan.
FAQ — de mest stillede spørgsmål om CVR API'et
Hvad bruger man et CVR API til?
Typiske use cases er KYC-screening, kreditvurdering, autoudfyldning af formularer, lead-generering, fakturering, due diligence, markedsovervågning, branche-analytics og AI-integrationer. Se de 10 detaljerede eksempler ovenfor.
Er data opdateret?
Ja. FirmaAPI henter opdateringer fra de officielle danske virksomhedsregistre dagligt, og webhooks leverer ændringer inden for minutter af officiel registrering.
Må jeg bruge kontaktoplysninger til markedsføring?
Kun for virksomheder hvor ad_protected er false. Vores API returnerer feltet eksplicit, så du kan filtrere reklamebeskyttede virksomheder fra automatisk.
Kan jeg bruge CVR API'et i min AI-agent?
Ja. Vi er Danmarks første CVR-API med MCP-server — plug-and-play med Claude, ChatGPT, Codex, Cursor, Windsurf, VS Code og alle andre MCP-kompatible klienter.
Hvor hurtigt svarer API'et?
Mindre end 100ms gennemsnitlig server-responstid, ~12ms pr. CVR ved batch-opslag. EU-hosted.
Kræver det et SDK?
Nej. FirmaAPI er et rent REST API med JSON-svar — alle programmeringssprog kan kalde det med deres indbyggede HTTP-klient. Vi udgiver en fuld OpenAPI-spec så du kan autogenerere klienter hvis du vil.
Næste skridt
Et CVR API er ikke bare et opslagsværktøj — det er en databackbone for alt B2B-arbejde der berører danske virksomheder. Fra KYC og kredit til salg, rekruttering, research og AI-agenter.
Start med den use case der giver mest værdi for dig lige nu, og byg på. De fleste af vores kunder begynder med én eller to integrationer, og opdager efter 3 måneder at de bruger API'et ti steder i deres stack.
- Opret gratis API-nøgle — 1.000 opslag/md, ingen kreditkort
- Læs den fulde dokumentation
- Installér MCP-serveren til din AI-klient
- Spørgsmål? Skriv til [email protected]
Vi glæder os til at se hvad du bygger.