canonical: https://jentic.com/apis/cvr.dev/cvr

# CVR API

Jentic publishes the only available OpenAPI specification for CVR API, keeping it validated and agent-ready. CVR API exposes the Danish Central Business Register (CVR) and adds a Norwegian company lookup, so applications can resolve a company by CVR/organisation number, P-number, name, or phone number. The two endpoints (GET and POST) accept the same query parameters and return company facts including registered address, industry code, status, and ownership. The token is passed as a query-string parameter and the API is widely used for KYC, due diligence, and B2B prospect enrichment.

## For AI agents

Look up Danish (CVR) and Norwegian companies by registration number, P-number, name, or phone number to fetch official registry data.

## Scope

Does not handle global company data, financial statements, or person-level enrichment - use for Danish (CVR) and Norwegian company-registry lookups only.

## Capabilities

- Look up a Danish company by its CVR number via GET /api?country=dk&vat={vat}
- Look up a production unit (P-number) inside the Danish CVR via GET /api?country=dk&produ={produ}
- Search Danish companies by name or partial name via GET /api?country=dk&search={search}
- Resolve a Danish company from a phone number via GET /api?country=dk&phone={phone}
- Look up a Norwegian company by organisation number via the country=no parameter
- Send the same query as a POST /api request when calling from a server with stricter outbound rules

## Use cases

### KYC for Danish B2B onboarding

Validate a CVR number a customer types into a signup form. The CVR API returns the registered company name, address, industry code, and active/dissolved status, which lets onboarding code auto-fill the rest of the form and reject inactive entities. The full check is one HTTP call.

Example prompt: Look up CVR 12345678 in Denmark and confirm the status is 'Active' before creating the customer account.

### B2B prospect enrichment

Enrich a list of Danish or Norwegian companies with registry data before passing them into a CRM. A script iterates the source list, calls /api with the CVR or organisation number, and writes the standardised name, address, and industry back to the prospect record so sales reps see consistent data.

Example prompt: For each row in prospects.csv, call /api with the CVR number and append registered address and industry code to the row.

### Caller-ID enrichment for inbound support

Resolve a Danish phone number to a registered company on inbound calls. The /api endpoint accepts a phone parameter and returns matching CVR records, which a CTI integration can use to surface the caller's company alongside the phone number in the agent console.

Example prompt: Look up phone +4533123456 and surface the matched company name and CVR number to the support agent.

### Agent-driven CVR lookup via Jentic

Let an autonomous agent answer questions like 'Is this CVR number valid?' or 'Who is this Danish company?' inside a chat workflow. The agent searches Jentic for 'look up a Danish company by CVR number', loads the schema, and calls /api - the token never leaves your Jentic One instance.

Example prompt: Through Jentic, look up CVR 12345678 and return the company name, address, and active status to the user.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api` | Look up a company by CVR/organisation number, P-number, name, or phone (query string) |
| POST | `/api` | Same lookup as GET but with parameters in the request body |

## Key resources

- **Company Lookup** — Resolve Danish or Norwegian companies by CVR/organisation number, P-number, name, or phone number

## Why Jentic

- **Setup:** Wiring the CVR API by hand means provisioning a token, appending it as a query parameter on every request, and mapping its Danish and Norwegian registry lookups yourself. Through Jentic you install once, import the CVR API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The CVR API exposes a single lookup endpoint that takes the company reference as a parameter rather than a resource id in the URL path, so scope the agent to that lookup operation. That is the only surface it can reach on the registry.
- **Credential handling:** Your CVR token is stored once, encrypted, by your own Jentic One instance and injected at execution time, even though the API normally expects it as a query parameter. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'look up a Danish company by CVR number', and Jentic returns the matching CVR operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Clearbit** — Global B2B company and contact enrichment
- **People Data Labs** — Global company and person dataset for enrichment and search
- **FullContact** — Identity resolution and contact enrichment platform

## FAQ

### Why is there no official OpenAPI spec for CVR API?

CVR API (cvrapi.dk) does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call CVR via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the CVR API use?

A token passed as the 'token' query-string parameter. Through Jentic, the token is held in the encrypted vault and injected at execution time, so it never appears in agent prompts or logs.

### Which countries does this CVR API cover?

Denmark and Norway. Pass country=dk for Danish CVR lookups and country=no for Norwegian organisation-number lookups against /api.

### Can I look up a company by phone number?

Yes for Denmark. /api accepts a 'phone' query parameter alongside country=dk and returns the registered Danish company that matches the number.

### What are the rate limits for the CVR API?

Limits depend on your cvrapi.dk plan rather than being declared in the spec. Free tiers are tightly throttled, so handle 429 responses with backoff and check your plan in the cvrapi.dk dashboard before running a bulk enrichment job.

### How do I look up a Danish company through Jentic?

Run pip install jentic, search for 'look up a Danish company by CVR number', load the GET /api schema, and execute with country=dk and the CVR number. Jentic returns the registry response without exposing the token to the agent.

### Can I limit what my agent is allowed to do with the CVR API?

Yes. Because you run Jentic One yourself, your own rules decide which CVR operations your agent may call and which credentials it may use. The CVR API exposes a single company-lookup operation that takes the company reference (CVR or organisation number, P-number, name, or phone) as a parameter rather than a resource id in the URL path, so you can scope the agent to just that GET or POST /api lookup and nothing else on the registry. The token stays in your instance and is injected at execution time, so the agent can only reach the lookup you allow.
