cvrradar

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

  1. Log ind med din mail og opret en nøgle. Den begynder med cvr_.
  2. Send nøglen i headeren Authorization: Bearer cvr_… i hvert kald.
  3. 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

Alle kald kræver en API-nøgle.
Metode og stiHvad den gør
GET /v1/virksomhed/{cvr}Én virksomhed ud fra et CVR-nummer.
POST /v1/virksomhederOp 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}/personerEjere, direktion og bestyrelse.
GET /v1/virksomhed/{cvr}/regnskabNøgletal pr. år. Betalt pakke.
GET /v1/virksomhed/{cvr}/kreditFaresignaler og score 1-100. Betalt pakke.
GET /v1/virksomhed/{cvr}/ejergrafEjere og koncern. Betalt pakke.
GET /v1/virksomhed/{cvr}/digitalHjemmeside, SSL, platform og mail. Betalt pakke.
GET /v1/nyeNye 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.

Statuskoder
KodeBetydning
400Ugyldigt input, fx et CVR-nummer uden 8 cifre.
401Manglende eller ugyldig API-nøgle.
404Virksomheden findes ikke.
429Kvoten 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.