CVR API
Slå virksomheder op fra dit eget system. Søg på navn, hent en virksomhed på CVR-nummer, og find virksomheden bag et domæne eller en mailadresse. 1.000 opslag i døgnet er gratis.
Kom i gang
- Log ind med din mail og opret en nøgle. Den begynder med
cvr_. - Send nøglen i headeren
Authorization: Bearer cvr_…i hvert kald. - Du får JSON tilbage. Fejl har altid formen
{"fejl": "tekst"}.
API'et ligger på https://cvrradar.dk/v1. Svarene er på dansk og bygger på Erhvervsstyrelsens CVR, som synkroniseres hver nat.
Kodeeksempler
Hent én virksomhed. Skift CVR-nummer og nøgle ud med dine egne.
curl
curl -H "Authorization: Bearer cvr_DIN_NOEGLE" \
"https://cvrradar.dk/v1/virksomhed/12345678"JavaScript
const svar = await fetch("https://cvrradar.dk/v1/virksomhed/12345678", {
headers: { Authorization: "Bearer cvr_DIN_NOEGLE" },
});
if (!svar.ok) throw new Error(`Opslag fejlede: ${svar.status}`);
const virksomhed = await svar.json();
console.log(virksomhed.navn, virksomhed.status);PHP
$ch = curl_init("https://cvrradar.dk/v1/virksomhed/12345678");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer cvr_DIN_NOEGLE"],
]);
$svar = curl_exec($ch);
$virksomhed = json_decode($svar, true);
echo $virksomhed["navn"];Python
import requests
svar = requests.get(
"https://cvrradar.dk/v1/virksomhed/12345678",
headers={"Authorization": "Bearer cvr_DIN_NOEGLE"},
timeout=10,
)
svar.raise_for_status()
print(svar.json()["navn"])
Søg på navn
curl -H "Authorization: Bearer cvr_DIN_NOEGLE" \
"https://cvrradar.dk/v1/soeg?q=eksempel&limit=5"Endpoints
| Metode og sti | Hvad den gør |
|---|---|
GET /v1/virksomhed/{cvr} | Én virksomhed ud fra et CVR-nummer. |
POST /v1/virksomheder | Op til 500 virksomheder i ét kald. |
GET /v1/soeg?q= | Søg på navn eller CVR-nummer. |
GET /v1/domaene/{domaene} | Virksomheden bag et domæne eller en mail. |
GET /v1/virksomhed/{cvr}/personer | Ejere, direktion og bestyrelse. |
GET /v1/virksomhed/{cvr}/regnskab | Nøgletal pr. år. Betalt pakke. |
GET /v1/virksomhed/{cvr}/kredit | Faresignaler og score 1-100. Betalt pakke. |
GET /v1/virksomhed/{cvr}/ejergraf | Ejere og koncern. Betalt pakke. |
GET /v1/virksomhed/{cvr}/digital | Hjemmeside, SSL, platform og mail. Betalt pakke. |
GET /v1/nye | Nye virksomheder med filtre. |
Alle endpoints med felter og eksempler står i dokumentationen, også benchmark, sammenligning, historik, SEO-data og overvågning. Maskinlæsbart i OpenAPI-filen.
Svar
Et opdigtet eksempel, forkortet.
{
"cvr": "12345678",
"navn": "Eksempel ApS",
"binavne": [],
"adresse": { "vej": "Eksempelvej", "husnummer": "1", "postnr": "8000", "by": "Aarhus C" },
"branche": { "kode": "620100", "tekst": "Computerprogrammering" },
"virksomhedsform": { "kode": 80, "kort": "ApS", "tekst": "Anpartsselskab" },
"status": "NORMAL",
"aktiv": true,
"stiftet": "2019-03-14",
"ansatte": "5-9",
"kontakt": { "hjemmeside": "www.eksempel.dk", "email": null, "telefon": null },
"reklamebeskyttet": false
}
Felter, der ikke er oplyst i CVR, er null. Hemmelige kontaktoplysninger returneres aldrig.
Kvoter og fejl
Den gratis nøgle giver 1.000 opslag i døgnet på stamdata og personer, og 100 smagsprøver om måneden på regnskab, kreditvurdering, ejergraf og digital profil. Er kvoten brugt, svarer API'et 429 med en forklaring og headeren Retry-After. Uden nøgle kan du slå stamdata op 50 gange i døgnet pr. IP-adresse. Benchmark, sammenligning, overvågning og SEO-data kræver en betalt pakke.
| Kode | Betydning |
|---|---|
400 | Ugyldigt input, fx et CVR-nummer uden 8 cifre. |
401 | Manglende eller ugyldig API-nøgle. |
404 | Virksomheden findes ikke. |
429 | Kvoten er brugt. Vent til Retry-After er gået. |
Frabedt reklame
Virksomheder med "reklamebeskyttet": true har frabedt sig henvendelser i markedsføringsøjemed. Du må ikke bruge dem til direkte markedsføring. Det står også i vilkårene.
Prøv det
Kald API'et herfra med din egen nøgle.
Afprøvningen kræver JavaScript. Uden kan du bruge curl-eksemplet ovenfor.