GnistAI GnistAI
Log in

Getting Started with CVR (Danish Company Registry)

Danish company registry — CVR lookup, name search, production units, owners, industry codes from Det Centrale Virksomhedsregister.

All Tutorials   |   Overview   |   Playground   |   MCP   |   REST API   |   Home
Legal

Data source: CVR via cvrapi.dk (free public API, Det Centrale Virksomhedsregister)

Overview

CVR (Danish Company Registry) wraps CVR via cvrapi.dk (free public API, Det Centrale Virksomhedsregister), handling authentication, pagination, and rate limits for you. This tutorial covers all 4 tools with working code examples you can copy and run.

Prerequisites

  1. Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
  2. Choose your integration method: MCP protocol or REST API.

Connect via MCP

Add to your MCP client config (Claude Desktop, Cursor, etc.):

MCP Config
{
  "mcpServers": {
    "gnist-cvr": {
      "url": "https://context.gnist.ai/mcp/cvr/",
      "headers": {
        "Gnist-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Tools (4)

lookup_cvr_company

Look up a Danish company by its CVR number. Returns company details including name, address, company type, industry, employees, owners, and production units. Args: cvr_number: Danish CVR number (8 digits). Returns: Company record, or {"error": "not_found"} if the CVR number is unknown.

ParameterTypeRequiredDescription
cvr_numberintegerrequiredDanish CVR number (8 digits, e.g. 10150817 for Carlsberg).
curl -X POST "https://context.gnist.ai/mcp/cvr/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "lookup_cvr_company", "arguments": {"cvr_number": 10150817}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/cvr/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'cvr_number': 10150817},
            'name': 'lookup_cvr_company'}},
)
print(resp.json())

search_cvr_company

Search for a Danish company by name in the Central Business Register (CVR). Returns the best-matching company with full details including address, company type, industry, owners, and production units. Args: name: Company name or partial name to search for. Returns: Best-matching company record, or {"error": "not_found"} if no match.

ParameterTypeRequiredDescription
namestringrequiredCompany name to search for (e.g. 'Novo Nordisk', 'LEGO').
curl -X POST "https://context.gnist.ai/mcp/cvr/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_cvr_company", "arguments": {"name": "'Novo"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/cvr/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'name': "'Novo"}, 'name': 'search_cvr_company'}},
)
print(resp.json())

lookup_cvr_production_unit

Look up a Danish production unit by its P-nummer. Production units are individual business locations registered under a parent company in the Danish CVR. Args: pno: Production unit number (P-nummer). Returns: Company record for the parent company, or {"error": "not_found"}.

ParameterTypeRequiredDescription
pnointegerrequiredDanish production unit number (P-nummer, 10 digits).
curl -X POST "https://context.gnist.ai/mcp/cvr/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "lookup_cvr_production_unit", "arguments": {"pno": 5}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/cvr/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'pno': 5}, 'name': 'lookup_cvr_production_unit'}},
)
print(resp.json())

report_feedback

Report a bug, feature request, or general feedback for this data source. Use this when something doesn't work as expected, when you'd like a new feature, or when you have suggestions for improvement. Args: feedback: Describe the issue or suggestion. feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: general)
curl -X POST "https://context.gnist.ai/mcp/cvr/" \
  -H "Content-Type: application/json" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "report_feedback", "arguments": {"feedback": "example"}}}'
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/cvr/",
    headers={"Gnist-API-Key": "YOUR_API_KEY"},
    json={'id': 1,
 'jsonrpc': '2.0',
 'method': 'tools/call',
 'params': {'arguments': {'feedback': 'example'}, 'name': 'report_feedback'}},
)
print(resp.json())

Common Patterns

Search then retrieve
Use search_cvr_company to find items, then lookup_cvr_company to get full details. This two-step pattern is common for exploring data before drilling down.

FAQ

What data does CVR (Danish Company Registry) provide?

Danish company registry — CVR lookup, name search, production units, owners, industry codes from Det Centrale Virksomhedsregister. It exposes 4 tools: lookup_cvr_company, search_cvr_company, lookup_cvr_production_unit, report_feedback.

What do I need to get started?

A Gnist API key (free tier: 100 calls/day). Sign up at https://context.gnist.ai/signup.

What format does the CVR (Danish Company Registry) API return?

JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.

Next Steps

Related Tutorials