CVR-opslag i JavaScript

CVR-API sender CORS-headers, så du kan kalde det direkte fra browseren. Samme kode virker i Node.js 18 og nyere, hvor fetch er indbygget.

Slå en virksomhed op på CVR-nummer

javascript
async function getCompany(cvr) {
  const res = await fetch(`https://apicvr.dk/api/v1/${cvr}`);
  if (res.status === 404) return null;
  if (!res.ok) throw new Error(`CVR-API svarede ${res.status}`);
  return res.json();
}

const company = await getCompany(24256790);
console.log(company.name, company.zipcode, company.city);

getCompany returnerer null, når CVR-nummeret ikke findes (404). Andre fejl kaster en exception.

Søg på virksomhedsnavn

Fuzzy-søgningen er velegnet til autocomplete. Husk at encodeURIComponent navnet.

javascript
async function searchCompanies(name) {
  const res = await fetch(`https://apicvr.dk/api/v1/search/fuzzy/${encodeURIComponent(name)}`);
  if (!res.ok) throw new Error(`CVR-API svarede ${res.status}`);
  return res.json();
}

const hits = await searchCompanies("novo nordisk");
for (const hit of hits.slice(0, 5)) {
  console.log(hit.cvr_number, hit.name, "-", hit.industrytext);
}
Bruger du søgningen i et inputfelt, så vent ca. 300 ms efter sidste tastetryk (debounce), før du kalder API'et.

Håndter fejl

StatusBetydning
200Virksomheden blev fundet. Svaret er JSON.
404Der findes ingen virksomhed med det CVR-nummer. Body: {"detail": {"error": "NOT_FOUND"}}
422CVR-nummeret er ikke et tal.
502CVR-registret svarede ikke. Prøv igen om lidt.

Ejere, direktion og reklamebeskyttelse

javascript
const { ejere, direktion, protected: isProtected } = await getCompany(24256790);

for (const owner of ejere) {
  console.log(owner.name, owner.ownership_range);
}
for (const person of direktion) {
  console.log(person.role, person.name);
}
if (isProtected) {
  console.log("Reklamebeskyttet");
}
Tjek altid protected, før du bruger data til markedsføring. Er feltet true, har virksomheden frabedt sig reklamehenvendelser.

Ofte stillede spørgsmål

Kan jeg kalde CVR-API direkte fra browseren?

Ja. API'et tillader CORS fra alle domæner, så du behøver ingen proxy.

Virker eksemplerne i Node.js?

Ja, i Node.js 18 og nyere, hvor fetch er indbygget. I ældre versioner kan du bruge pakken node-fetch.

Kan jeg bruge det med TypeScript?

Ja. Den fulde OpenAPI-specifikation ligger på /openapi.json, så du kan generere typer ud fra den.