Hop til hovedindhold

cvr.dev API dokumentation (1.5)

Introduktion

Velkommen til cvr.dev's HTTP API dokumentation.

Dette dokument beskriver, hvordan du kan benytte vores API til at hente CVR-data. Vi henter og cacher data fra Virks CVR-database en gang i minuttet, så vi altid kan levere så nøjagtig data som muligt.

Udover at være beskrevet på denne sige, er vores API også beskrevet i OpenAPI 3.0 format og som Postman-dokumentation.

For at benytte vores API skal du have en cvr.dev-konto med et aktivt abonnement, som du kan prøve gratis de første 30 dage.

Reklamebeskyttelse

Alle brugere skal, når de laver en konto, tilkendegive at de har til hensigt at følge loven om reklamebeskyttelse. Det er ulovligt at lave reklamehenvendelser til virksomheder, der er reklamebeskyttet i CVR.

Læs mere her: https://datacvr.virk.dk/artikel/vilkaar-og-betingelser#accordion-5-button

AI, LLM og Agenter

For mange vil det være en fordel at benytte AI (LLM'er eller Agenter) til at integrere med vores API, eksempelvis ChatGPT, Claude Code, Amp, Gemini, Codex. Hvis du benytter AI, kan du med fordel indsætte et link til vores LLM OpenAPI specifikation. Denne fil indeholder en teknisk definition af vores endpoints, som i høj grad hjælper agenter med at benytte vores endpoints korrekt.

Eksempel på brug:

Use docs.cvr.dev/llms.txt to implement a simple API wrapper in javascript to help me get information about the company with cvr_nummer 10582989. Keep it simple and make it explicit where I have to insert my api key.

Regnskaber og XBRL-formatet

Som udgangspunkt indsender virksomheder én årsrapport hvert år, som dækker virksomhedens regnskabsår. Bemærk at et regnskabsår er ikke nødvendigvis er 12 måneder langt, men bbåde kan være enten længere eller kortere. Dette kan eksempelvis skyldes at virksomheden er nystartet, er under nedlukning, eller blot ønsker at rykke sit regnskabsår til en anden periode.

Regnskaber kan i dag indberettes som XBRL, PDF og - af virksomheder, der er af historiske årsager er fritaget fra digital indberetning - på papir. For langt størstedelen er PDF-filen er det juridisk gyldige regnskab. Nærmest alle regnskaber skal altså være tilgængelige digitalt, men det er ikke alle regnskaber, der er tilgængelige i det maskinlæsbare XBRL-format.

Omgjorte årsrapporter

Som udgangspunkt indsender virksomheder én årsrapport hvert år, som offentliggøres. I nogle tilfælde er det dog nødvendigt at omgøre en allerede offentliggjort årsrapport. Omgjorte årsrapporter vil dog stadig være tilgængelige. Årsrapporter omgøres typisk:

  • Hvis virksomheden selv opdager væsentlige fejl eller ulovlige forhold, der skal rettes
  • Hvis Erhvervsstyrelsen opdager væsentlige fejl eller ulovlige forhold, og påkræver rettelser

Ønsker du at se omgjorte årsrapporter for en virksomhed, kan vores endpoint med rå-data benyttes. Bemærk, at parametren omgjort=true skal sættes.

XBRL-format

Som en hjælp til vores brugere, arbejder vi aktivt på at oversætte det officielle XBRL-format til et simplere JSON-format.

Ønsker du at benytte det XBRL-data direkte, er her den officielle dokumentation

Endpoints

Vi tilbyder pt. adgang til regnskabsdata via vores endpoint med rå-data fra CVR.

Vi arbejder aktivt på at oversætte det officielle XBRL-format til et simplere JSON-format i et nyt endpoint.

Autentificering

For at benytte vores API skal du have en cvr.dev-konto og oprette en API key på hjemmesiden.

Dine API keys er personlige og skal sendes med i alle requests. Din API key skal medsendes som en såkaldt Bearer token og sættes i Authorization-headeren, som vist her:

Authorization: Bearer din-api-key

Du kan teste, om du medsender din API key korrekt, ved at benytte vores Test API key endpoint

Test API key

Dette endpoint lader dig teste om du medsender din API key korrekt. Dette endpoint tæller ikke med i dit månedlige forbrug.

Dine API keys er personlige og skal sendes med i alle requests. Din API key skal sættes i Authorization-headeren, som vist her:

Authorization: Bearer din-api-key

Authorizations:
APIKey

Responses

Response samples

Content type
application/json
{
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}

Rå-data fra CVR

Disse endpoints returnerer rå-data fra CVR-registret, som den kommer fra Virk. Dataformaterne i disse endpoints er derfor bestemt af Virk, ikke af cvr.dev.

Endpoints i denne kategori er inkluderet i alle vores abonnementer.

Udover eksemplerne på returdata givet ude i højre side, er der en uddybende beskrivelse af data for hvert endpoint ved den grønne 200-kode under Responses i hvert endpoint.

Data om Virksomheder

Dette endpoint returnerer alt data om en virksomhed, som den er i CVR. Dette dataformat er bestemt af Virk, ikke af cvr.dev.

Data

Bemærk feltet virksomhedMetadata, der indeholder en simplificeret opsummering af resten af data. Det er meget ofte denne information, man ønsker at benytte.

Query parametre

OBS: Sendes begge query parametre samtidig, vil kun cvr_nummer blive brugt.

Authorizations:
APIKey
query Parameters
cvr_nummer
int
Example: cvr_nummer=10103940

CVR-nummer på virksomheden, der søges efter

navn
string
Example: navn=Statsministeriet, Departementet

Navn på virksomheden, der søges efter

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Data om Produktionsenheder

Dette endpoint returnerer alt data om en produktionsenhed, som den er i CVR. Dette dataformat er bestemt af Virk, ikke af cvr.dev.

Data

Bemærk feltet produktionsEnhedMetadata, der indeholder en simplificeret opsummering af resten af data. Det er meget ofte denne information, man ønsker at benytte.

Query parametre

OBS: Sendes begge query parametre samtidig, vil kun p_nummer blive brugt.

Authorizations:
APIKey
query Parameters
p_nummer
string
Example: p_nummer=1004862579

P-nummer på produktionsenheden, der søges efter

adresse
string
Example: adresse=Nybrovej 410 2800

Adresse på produktionsenheden, der søges efter

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Data om Regnskaber

Dette endpoint returnerer regnskabsdata for en virksomhed, som den er i CVR. Dette dataformat er bestemt af Virk, ikke af cvr.dev.

Data

Endpointet returnerer en liste af regnskaber for den givne virksomhed. Hvert regnskab indeholder bl.a. links til dokumenter (PDF og/eller XBRL), regnskabsperiode og offentliggørelsestidspunkt.

Se også vores sektion om regnskaber generelt.

Omgjorte regnskaber

Som standard returneres kun det aktive (ikke-omgjorte) regnskab for hver regnskabsperiode. Sættes omgjort=true, returneres også omgjorte regnskaber.

Authorizations:
APIKey
query Parameters
cvr_nummer
required
int
Example: cvr_nummer=10582989

CVR-nummer på virksomheden, hvis regnskaber ønskes

dato
string <date>
Example: dato=2014-01-01

Dato for regnskabsperioden, der søges efter. Returnerer regnskaber hvor den givne dato falder inden for regnskabsperioden. Hvis ingen dato angives, returneres alle regnskaber

omgjort
bool or null
Example: omgjort=true

Sættes til true hvis omgjorte regnskaber ønskes returneret

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Ejerskabshierarki

Disse endpoints returnerer information vedr. ejerskabsforholdene for en given virksomhed eller person. Denne data er afledt fra en eller flere kilder, inklusiv rå-data fra CVR. Dataformaterne i disse endpoints er bestemt af cvr.dev.

Endpoints i denne kategori er ikke inkluderet i vores Starter-abonnement.

Udover eksemplerne på returdata givet ude i højre side, er der en uddybende beskrivelse af data for hvert endpoint ved den grønne 200-kode under Responses i hvert endpoint.

Data om virksomheds datterselskaber

Dette endpoint returnerer hierarkiet af alle datterselskaber som enheden (person eller virksomhed) står noteret som ejer for i CVR-registret. Denne data inkluderer enhedens omtrentlige ejerskab og stemmerettigheder, som det er angivet i CVR.

Ejerskab og stemmeret udgør ikke altid 100%

Den danske lovgivning gør, at det ikke altid er muligt at se ejerne af en virksomhed. Eksempelvis siger Selskabslovens § 55, at det kun er ejere med en kapitalandel eller stemmeret over 5%, der skal offentliggøres.

Der er andre tilfælde, hvor eksempelvis en virksomheds ledelse er noteret som ejere, hvor ejerskabet ikke fremgår direkte af CVRs data.

Query parametre

OBS: Sendes begge query parametre samtidig, vil kun enhedsnummer blive brugt.

Authorizations:
APIKey
query Parameters
cvr_nummer
int
Example: cvr_nummer=10582989

CVR-nummer på virksomheden, hvis datterselskaber ønskes

enhedsnummer
int
Example: enhedsnummer=2337773

Enhedsnummer på enheden (virksomhed eller person), hvis datterselskaber ønskes

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Data om virksomheds ejere

Dette endpoint returnerer hierarkiet af alle enheder der, direkte eller indirekte, er noteret som ejere af den givne virksomhed i CVR-registret. Denne data inkluderer enhedens omtrentlige ejerskab og stemmerettigheder, som det er angivet i CVR.

Ejerskab og stemmeret udgør ikke altid 100%

Den danske lovgivning gør, at det ikke altid er muligt at se ejerne af en virksomhed. Eksempelvis siger Selskabslovens § 55, at det kun er ejere med en kapitalandel eller stemmeret over 5%, der skal offentliggøres.

Der er andre tilfælde, hvor eksempelvis en virksomheds ledelse er noteret som ejere, hvor ejerskabet ikke fremgår direkte af CVRs data.

Query parametre

OBS: Sendes begge query parametre samtidig, vil kun enhedsnummer blive brugt.

Authorizations:
APIKey
query Parameters
cvr_nummer
int
Example: cvr_nummer=10582989

CVR-nummer på virksomheden, hvis ejerhierarki ønskes

enhedsnummer
int
Example: enhedsnummer=2337773

Enhedsnummer på virksomheden, hvis ejerhierarki ønskes

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Segmentering

Disse endpoints muliggør målgruppesøgning baseret på diverse parametre. Denne data er afledt fra en eller flere kilder, inklusiv rå-data fra CVR. Dataformaterne i disse endpoints er bestemt af cvr.dev.

Endpoints i denne kategori er ikke inkluderet i vores Starter-abonnement.

Udover eksemplerne på returdata givet ude i højre side, er der en uddybende beskrivelse af data for hvert endpoint ved den grønne 200-kode under Responses i hvert endpoint.

Segmentering af virksomheder

Dette endpoint returnerer information om alle virksomheder, der matcher samtlige parametre. Dette kan eksempelvis benyttes til segmentering af potentielle kunder. Endpointet er pagineret og kan returnere op til 100 virksomheder per forespørgsel.

Vær opmærksom på at dette endpoint i nogle tilfælde kan være langsomt, specielt første paginerede side; endpointet er helt nyt, og vi har endnu ikke en god forståelse af hvilke attributter, der oftest bliver søgt på sammen.

OBS: loven om reklamebeskyttelse skal overholdes.

Authorizations:
APIKey
query Parameters
pagination_token
integer <int64>
Example: pagination_token=123456

Token som benyttes til at hente næste batch, såfremt der er flere virksomheder tilbage i søgningen. Værdien er et internt id, der intet har med sidetal at gøre.

hovedbranchekoder
string
Example: hovedbranchekoder=622000,692000

Komma-separerede branchekoder, uden punktummer. Branchekoder kan findes her https://erst.virk.dk/branchekode/soeg/indexSoeg

bibranchekoder
string
Example: bibranchekoder=622000,692000

Komma-separerede branchekoder, uden punktummer. Branchekoder kan findes her https://erst.virk.dk/branchekode/soeg/indexSoeg

virksomhedsformer
string
Example: virksomhedsformer=ApS,A/S

Komma-separerede virksomhedsformer, eksempelvis ENK (enkeltmand), ApS (anpartsselskab), FFO (frivillig forening), I/S (interessentselskab), PMV (personligt ejet mindre virksomhed), A/S (aktieselskab), FOR (forening), EFO (erhvervsdrivende forening) med flere

postnumre
string
Example: postnumre=8000,2000

Komma-separerede postnumre for den registrerede hovedadresse. Postnumre kan findes på https://api.dataforsyningen.dk/postnumre

kommunekoder
string
Example: kommunekoder=0101,0147

Komma-separerede kommunekoder for den registrerede hovedadresse. Kommunekoder kan findes på https://danmarksadresser.dk/adressedata/kodelister/kommunekodeliste

stiftelsesdato_min
string <date>
Example: stiftelsesdato_min=2020-04-21

Dato fra og med hvornår virksomheden tidligst må være stiftet

stiftelsesdato_max
string <date>
Example: stiftelsesdato_max=2023-04-21

Dato til og med hvornår virksomheden senest må være stiftet

reklamebeskyttet
boolean
Example: reklamebeskyttet=false

Om virksomheden skal være reklamebeskyttet eller ej. Denne skal være false for virksomheder, du ønsker at kontakte med henblik på salg

kontaktoplysninger
boolean
Example: kontaktoplysninger=true

Om virksomheden skal have kontaktoplysninger registreret i CVR

ansatte_min
integer <int32>
Example: ansatte_min=5

Det minimale antal ansatte virksomheden skal have haft ved virksomhedens seneste registrering af ansatte

ansatte_max
integer <int32>
Example: ansatte_max=25

Det maksimale antal ansatte virksomheden skal have haft ved virksomhedens seneste registrering af ansatte

aarsvaerk_min
number <float>
Example: aarsvaerk_min=0.5

Det minimale antal årsværk virksomheden skal have haft ved virksomhedens seneste registrering af ansatte

aarsvaerk_max
number <float>
Example: aarsvaerk_max=7.5

Det maksimale antal årsværk virksomheden skal have haft ved virksomhedens seneste registrering af ansatte

limit
integer <int32>
Example: limit=50

Det maksimale antal af virksomheder, der må returneres i hver forespørgsel

Responses

Response samples

Content type
application/json
{
  • "pagination_token": 123456,
  • "virksomheder": [
    ]
}

Ansatte og årsværk

Disse endpoints giver adgang til historikken af virksomheders ansatte og årsværk. Denne data er afledt fra en eller flere kilder, inklusiv rå-data fra CVR. Dataformaterne i disse endpoints er bestemt af cvr.dev.

Endpoints i denne kategori er ikke inkluderet i vores Starter-abonnement.

Udover eksemplerne på returdata givet ude i højre side, er der en uddybende beskrivelse af data for hvert endpoint ved den grønne 200-kode under Responses i hvert endpoint.

Antal ansatte og årsværk

Dette endpoint returnerer historikken for en virksomheds antal ansatte og årsværk. Dette dataformat er bestemt af cvr.dev.

Authorizations:
APIKey
query Parameters
cvr_nummer
required
int
Example: cvr_nummer=10582989

CVR-nummer på virksomheden, der søges efter

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Roller

Disse endpoints giver adgang til en virksomheds aktive og historiske roller, eksempelvis stiftere, direktører, revisor mv. Denne data er afledt fra en eller flere kilder, inklusiv rå-data fra CVR. Dataformaterne i disse endpoints er bestemt af cvr.dev.

Endpoints i denne kategori er ikke inkluderet i vores Starter-abonnement.

Udover eksemplerne på returdata givet ude i højre side, er der en uddybende beskrivelse af data for hvert endpoint ved den grønne 200-kode under Responses i hvert endpoint.

Roller

Dette endpoint returnerer en virksomheds roller, eksempelvis stiftere, direktører, revisor mv.

Som standard returneres kun aktive roller, men sættes aktiv til false, kan historiske roller også returneres. Dette dataformat er bestemt af cvr.dev.

Authorizations:
APIKey
query Parameters
cvr_nummer
required
int
Example: cvr_nummer=22756214

CVR-nummer på virksomheden, der søges efter

aktiv
bool or null
Example: aktiv=false

Sættes til false hvis historiske roller ønskes returneret

Responses

Response samples

Content type
application/json
[
  • {
    }
]