Spring til indhold

Register #8 (CVR) — live

CVR-API — danske virksomheder på CVR-nummer

Grundfast genudstiller Det Centrale Virksomhedsregister (CVR) i en ren, gensammensat form: CVR-data som navn, status, selskabsform, branche og beliggenhedsadresse — med oversatte kommune- og regionsnavne. Opslag på CVR-nummer er live nu som Register #8; kun selve virksomhedsposten (aldrig den adgangsbegrænsede CVRPerson-entitet) — demo og datakontrakt kan du teste uden nøgle.

GET /v1/cvr/:cvr

CVR API — slå virksomhed op på CVR-nummer

Grundfast er et CVR API til Det Centrale Virksomhedsregister: ét CVR-opslag på et 8-cifret CVR-nummer giver dig virksomhedens navn, livsstatus, selskabsform, DB07-branchekode og beliggenhedsadresse — som ét fladt JSON-svar. Du slipper for selv at joine Datafordelers CVR-entiteter (CVR_Virksomhed, CVR_Navn, CVR_Adressering og CVR_Branche) og for at oversætte kommune-, regions- og branchekoder til læsbar tekst.

Kald mønstret er ét endpoint — GET /v1/cvr/12345678 — med din gf_live_-nøgle. Samme nøgle, auth og metering som BBR, Matriklen og adresser, så et virksomheds-API og et ejendoms-API deler ét abonnement. Hele datakontrakten kan afprøves uden nøgle via den nøglefrie demo nedenfor.

Prøv CVR live

Kør det nøglefrie /v1/demo/cvr og se en gensammensat virksomhed — navn, status, branche og adresse med oversatte kommune-/ regionsnavne, med rigtig svartid.

GETGET /v1/demo/cvr

Tryk Kør live for at hente et rigtigt virksomhedssvar fra den nøglefrie demo — navn, status, branche og adresse med oversatte kommune-/regionsnavne.

Nøglefri demo: /v1/demo/cvr svarer med et fast virksomhedseksempel (en fast juridisk enhed). Med din nøgle slår /v1/cvr/:cvr en rigtig virksomhed op i samme form over Datafordelers CVR-GraphQL.

Hvad CVR-API’et giver dig

Virksomhed på CVR-nummer

Slå en virksomhed op på dens CVR-nummer og få navn, status, selskabsform, branche og beliggenhedsadresse — gensammensat fra Datafordelers entitetsmodel, så du ikke selv joiner CVR_Virksomhed, CVR_Navn, CVR_Adressering og CVR_Branche.

Kommune & region oversat

Beliggenhedsadressen kommer med kommune- og regionsNAVN (ikke bare koder), oversat offline via DAGI — klar til “find virksomheder i dit område” uden et ekstra opslag.

Normaliseret virksomhedsstatus

Livsstatus normaliseret til aktiv / ophørt / under konkurs / under tvangsopløsning, så du kan filtrere ophørte virksomheder fra med ét felt.

Kun virksomhedsposten

Vi bruger aldrig den adgangsbegrænsede CVRPerson-entitet — kun selve virksomhedsposten. For juridiske enheder (ApS, A/S mv.) er der ingen personoplysninger; for personligt ejede former (fx enkeltmandsvirksomhed) kan virksomhedens eget navn og adresse dog i sig selv være personoplysninger, og feltet reklamebeskyttet gør det muligt at respektere. Cachet og retry’et oven på Datafordeler, så opslag står op selv når upstream flapper.

Kald CVR-API’et i din stack

Samme CVR-opslag i cURL, TypeScript og Python — send CVR-nummeret, læs den gensammensatte virksomhed. Endpointet er GET /v1/cvr/:cvr med en gf_live_-nøgle:

terminal
curl -H "Authorization: Bearer gf_live_…" \
  https://api.grundfast.dk/v1/cvr/12345678

Svaret er ét fladt objekt — auth og metering er de samme som på de øvrige registre:

# Register #8 (CVR), Bearer gf_live_…:
GET /v1/cvr/12345678200  { virksomhed: {
           cvr: "12345678", navn: "Eksempel Nedrivning ApS",
           status: "aktiv", virksomhedsform: "Anpartsselskab",
           adresse: { vejnavn: "Industrivej", husnr: "12B",
                      postnr: "9310", postnrnavn: "Vodskov",
                      kommunekode: "0851", kommune_navn: "Aalborg",
                      regionskode: "1081", region_navn: "Region Nordjylland" },
           branche: { kode: "439990", tekst: "Anden bygge- og anlægsvirksomhed" },
           reklamebeskyttet: false } }

Felter i svaret

Hvert CVR-opslag returnerer objektet virksomhed med disse felter — koder er allerede oversat til tekst:

Felter i svaret
FeltTypeBeskrivelse
cvrstringVirksomhedens CVR-nummer (8 cifre).
navnstringVirksomhedens aktuelle navn.
statusstringNormaliseret livsstatus: aktiv / ophørt / under konkurs / under tvangsopløsning.
virksomhedsformstringSelskabsform i klartekst, fx “Anpartsselskab”.
adresseobjectBeliggenhedsadresse — se de udfoldede felter nedenfor.
adresse.postnr / .postnrnavnstringPostnummer og by for beliggenhedsadressen.
adresse.kommunekode / .kommune_navnstringKommunekode + oversat kommunenavn (via DAGI, offline).
adresse.regionskode / .region_navnstringRegionskode + oversat regionsnavn.
branche.kodestringDB07-branchekode (6 cifre).
branche.tekststringBranchetekst, oversat fra DB07-nomenklaturen.
reklamebeskyttetbooleanOm virksomheden har reklamebeskyttelse registreret i CVR.

Der er én parameter — selve CVR-nummeret i stien:

Parametre
ParameterPlaceringBeskrivelse
cvrsti8-cifret CVR-nummer, fx 12345678. Ikke-numeriske eller for lange værdier afvises med 400.

CVR vs. DAWA vs. rå Datafordeler

DAWA dækkede aldrig CVR — den kolonne er nej hele vejen. Den reelle sammenligning er mod Datafordelers rå CVR-GraphQL, hvor du selv joiner entiteter og slår koder op:

Funktionssammenligning: Grundfast, DAWA og rå Datafordeler
FunktionGrundfastDAWARå Datafordeler
Slå op på CVR-nummerJaNejJa
Oversat DB07-branchekode + tekstJaNejNej
Kommune- & regionsnavn (ikke kun koder)JaNejNej
Normaliseret status (aktiv/ophørt/…)JaNejNej
Ét fladt svar (ingen entitets-join)JaNejNej
Cachet SLA-mirror + retryJaNejNej
Bro til adresse → BFE → ejendomJaNejNej
Fritekst-/navnesøgningPå vejNejNej

Hvornår skal du bruge CVR-API’et

CVR-opslag på nummer dækker de fleste beriger- og validerings-flows, hvor du allerede har CVR-numrene:

  • Berig CRM & leadlister. Slå CVR-nummeret op og udfyld firmanavn, branche og beliggenhedsadresse automatisk — i stedet for manuelt indtastede, forældede felter.
  • KYC & onboarding-validering. Bekræft at et CVR-nummer eksisterer og hører til den forventede virksomhed, før du opretter en kunde eller leverandør.
  • Filtrér ophørte selskaber fra. Forgren på det normaliserede status-felt og luk ophørte, konkursramte eller tvangsopløste virksomheder ude med ét felt.
  • Segmentér pr. kommune eller region. Beliggenhedsadressen kommer med oversatte kommune- og regionsnavne, så du kan gruppere virksomheder geografisk uden et ekstra opslag.

Branchekode-opslag

Hver virksomhed kommer med sin branche som branche.kode (en 6-cifret DB07-branchekode) og branche.tekst (den oversatte branchetekst). Vi slår DB07-nomenklaturen op for dig, så du ikke selv skal vedligeholde kodelisten — brug koden til at filtrere eller segmentere din liste og teksten direkte i din UI:

# branche på hver virksomhedspost — kode + oversat tekst:
GET /v1/cvr/12345678
→ … "branche": {
       "kode":  "439990",                          # DB07-branchekode (6 cifre)
       "tekst": "Anden bygge- og anlægsvirksomhed"  # oversat branchetekst
     }
# Filtrér din leadliste på branche.kode (fx alle "41.20.00 Opførelse af bygninger")
# uden selv at slå DB07-nomenklaturen op.

Berig en hel virksomhedsliste med CVR

Det stærke ved at have CVR i samme API som ejendomsdata er krydsopslaget: fra et CVR-nummer kan du gå CVR → adresse → BFE → ejendom med samme gf_-nøgle. Slå virksomheden op, vask beliggenhedsadressen til et BFE-nummer, og åbn så bygninger, enheder, jordstykke og ejerlav — uden at skifte leverandør undervejs:

# CVR → adresse → BFE → ejendom — samme gf_-nøgle hele vejen:

# 1) CVR-nummer → virksomhedens beliggenhedsadresse
GET /v1/cvr/12345678
→ virksomhed.adresse = { vejnavn: "Industrivej", husnr: "12B",
                         postnr: "9310", postnrnavn: "Vodskov",}

# 2) adresse → koordinat + BFE (datavask matcher tekst → DAR + jordstykke)
GET /v1/datavask/adgangsadresser?betegnelse=Industrivej%2012B%2C%209310%20Vodskov
→ resultater[0] = { adgangsadresse_id, bfe_nummer: 5651067, koordinat }

# 3) BFE → hele ejendommen, i samme datamodel
GET /v1/bbr/ejendom/5651067        # bygninger + enheder
GET /v1/matrikel/ejendom/5651067   # jordstykke + ejerlav

Beriger du kundelister med CVR-data? Kombinér med datavask af kundelister — så vaskes både adresser og virksomhedsfelter i ét flow.

Har du kun firmanavne og ikke CVR-numrene endnu? Fritekst-/navnesøgning på virksomhed er en separat flade på vej — den kræver et lokalt indeks over et CVR-udtræk. Indtil da er opslag på CVR-nummer live.

Status & datakontrakt

LiveRegister #8 — live over Datafordelers CVR-GraphQL; demoen virker uden nøgle.

Endpointet er GET /v1/cvr/:cvr med en gf_live_-nøgle. Den nøglefrie GET /v1/demo/cvr spejler samme datakontrakt og virker offline.

GET/v1/cvr/:cvr
live

CVR-nummer → ren, gensammensat virksomhed. Live nu — klar at kalde.

GET/v1/demo/cvr
live

Offline eksempel — prøv datakontrakten allerede nu, uden nøgle.

Kom i gang med virksomhedsdata

Opret en gratis nøgle og prøv /v1/demo/cvr nu — så er du klar til /v1/cvr/:cvr, der allerede er live. Skal du berige en hel virksomhedsliste? Skriv til os.

Se også BBR-API’et og Adresse-API’et (DAR), Datafordeler-alternativ og Migrering 2026.

Ofte stillede spørgsmål

Hvad er CVR / et virksomheds-API?

CVR (Det Centrale Virksomhedsregister) er den autoritative kilde til danske virksomheder. Grundfast genudstiller CVR i en ren, gensammensat form: navn, status, selskabsform, branche og beliggenhedsadresse med oversatte kommune-/regionsnavne — i stedet for Datafordelers rå entitetsmodel (CVR_Virksomhed + CVR_Navn + CVR_Adressering + …).

Hvilke CVR-data får jeg?

Hvert opslag returnerer de centrale CVR-data om virksomheden: navn, CVR-nummer, livsstatus (aktiv / ophørt / under konkurs / under tvangsopløsning), virksomhedsform, branche (kode + tekst) og beliggenhedsadresse med oversatte kommune- og regionsnavne. Vi gensammensætter disse CVR-data fra Datafordelers entitetsmodel (CVR_Virksomhed, CVR_Navn, CVR_Adressering, CVR_Branche), så du får ét rent felt-sæt i stedet for selv at joine rå entiteter. Alle CVR-data stammer fra Det Centrale Virksomhedsregister via Datafordeler, og vi krediterer kilden.

Er CVR-API’et live?

Ja — opslag på CVR-nummer er live som Register #8 (GET /v1/cvr/:cvr), oven på Datafordelers CVR-GraphQL. Den nøglefrie demo (GET /v1/demo/cvr) virker også offline.

Indeholder det personoplysninger?

For langt de fleste opslag: nej. Vi bruger aldrig den adgangsbegrænsede CVRPerson-entitet — kun selve virksomhedsposten, som for juridiske enheder (ApS, A/S mv.) ikke er personoplysninger. Undtagelsen er personligt ejede virksomheder (fx enkeltmandsvirksomhed), hvor virksomhedens eget navn og beliggenhedsadresse kan udgøre indehaverens personoplysninger. Det håndterer vi efter en DPIA, og felterne virksomhedsform og reklamebeskyttet gør det muligt at filtrere og respektere.

Kan jeg slå op på virksomhedsnavn?

v1 er opslag på CVR-nummer (det dækker beriger-flows, der allerede har CVR-numrene). Fritekst-/navnesøgning er en separat flade på vej — den kræver et lokalt indeks over et CVR-udtræk.

Hvad koster CVR-opslag?

CVR kører på den fælles selvbetjente prismodel (Free / Starter / Pro / Scale) med samme nøgle og metering som BBR, Matriklen og adresser. Se priser for kald-inkluderet og overforbrug.

Er Grundfast officielt / tilknyttet SDFI?

Nej. Grundfast er et uafhængigt compatibility-lag — uofficielt, men det virker. CVR-data leveres via Datafordeler; vi krediterer kilden.

Dansk erhverv, landsdækkende

CVR — virksomheder i hele Danmark

Slå enhver dansk virksomhed op på CVR-nummer — gensammensat, ryddet post fra Det Centrale Virksomhedsregister, serveret fra den cachede mirror. Landsdækkende, i din egen gf_-nøgle.

Tegnet af vores egne data — grænser: DAGI · adresser: DAR · matrikler: Matriklen (åbne data).