{"openapi":"3.0.2","info":{"title":"APICVR.dk","description":"\nFree & open-source JSON API for the Danish company register (CVR).\n\nEvery endpoint proxies **distribution.virk.dk** (ERST's official\ndistribution API), does the hard work of navigating its nested schema,\nand returns a clean, stable shape.\n\n### Quickstart\n\n```bash\ncurl https://apicvr.dk/api/v1/41013583\n```\n\n### What you can do\n\n* **Look up a company by CVR** — full profile, production units,\n  current *direktion*, *fully-liable participants*, and *legal owners*.\n* **Search** by name (prefix or fuzzy), email, email domain, phone,\n  or street address.\n* **Just the leadership** — hit `/api/v1/{cvr}/direktion-og-ansvarlig`\n  for a slim response with only the people/entities that matter.\n\n### Auth\n\nNone. Rate limits apply — please be nice. If you're building something\nthat needs sustained heavy traffic, drop a line: noah@noahbohme.com.\n\n### Source & issues\n\n<https://github.com/NoahBohme/apicvr.dk>\n","contact":{"name":"Noah Böhme Rasmussen","url":"https://noahbohme.com","email":"noah@noahbohme.com"},"license":{"name":"MIT License","url":"https://raw.githubusercontent.com/NoahBohme/apicvr.dk/master/LICENSE"},"version":"1.0"},"paths":{"/api/v1/search":{"get":{"tags":["Search"],"summary":"Combined search by name and/or CVR","description":"Search by name (prefix), CVR number, or both. At least one is required.\n\nReturns a list of matching companies with the same shape as\n`GET /api/v1/{cvrNumber}` (minus production units and relations, which\nare only expanded for single-company lookups).","operationId":"api_search_api_v1_search_get","parameters":[{"required":false,"schema":{"title":"Name","type":"string"},"name":"name","in":"query"},{"required":false,"schema":{"title":"Cvr","type":"integer"},"name":"cvr","in":"query"},{"required":false,"schema":{"title":"Limit","type":"integer","default":100},"name":"limit","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Api Search Api V1 Search Get","type":"array","items":{"$ref":"#/components/schemas/Company"}}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search/address":{"get":{"tags":["Search"],"summary":"Search by street address","description":"Find companies at a street address.\n\nThe search runs three stages in order and returns the first non-empty\nresult: exact `adressebetegnelse` match → structured street/number\nmatch → fuzzy multi-field match. Pass `postal_code` to narrow the\nsearch to a single postal district.","operationId":"api_search_by_address_api_v1_search_address_get","parameters":[{"required":true,"schema":{"title":"Address","type":"string"},"name":"address","in":"query"},{"required":false,"schema":{"title":"Postal Code","type":"string"},"name":"postal_code","in":"query"},{"required":false,"schema":{"title":"Limit","type":"integer","default":100},"name":"limit","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Api Search By Address Api V1 Search Address Get","type":"array","items":{"$ref":"#/components/schemas/Company"}}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search/company/{companyName}":{"get":{"tags":["Search"],"summary":"Prefix-match on company name","description":"Prefix-match on the current company name (`nyesteNavn`).","operationId":"api_search_by_name_api_v1_search_company__companyName__get","parameters":[{"required":true,"schema":{"title":"Companyname","type":"string"},"name":"companyName","in":"path"},{"required":false,"schema":{"title":"Limit","type":"integer","default":100},"name":"limit","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Api Search By Name Api V1 Search Company  Companyname  Get","type":"array","items":{"$ref":"#/components/schemas/Company"}}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search/fuzzy/{companyName}":{"get":{"tags":["Search"],"summary":"Fuzzy-match on company name","description":"Fuzzy-match on the current company name.\n\nReturns a slimmer shape than the other search endpoints — useful for\nautocompletion and typo tolerance.","operationId":"api_search_fuzzy_api_v1_search_fuzzy__companyName__get","parameters":[{"required":true,"schema":{"title":"Companyname","type":"string"},"name":"companyName","in":"path"},{"required":false,"schema":{"title":"Limit","type":"integer","default":100},"name":"limit","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Api Search Fuzzy Api V1 Search Fuzzy  Companyname  Get","type":"array","items":{"$ref":"#/components/schemas/CompanyFuzzy"}}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search/email/{email}":{"get":{"tags":["Search"],"summary":"Search by registered email","description":"Find companies with the given email on their public CVR record.","operationId":"api_search_by_email_api_v1_search_email__email__get","parameters":[{"required":true,"schema":{"title":"Email","type":"string"},"name":"email","in":"path"},{"required":false,"schema":{"title":"Limit","type":"integer","default":100},"name":"limit","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Api Search By Email Api V1 Search Email  Email  Get","type":"array","items":{"$ref":"#/components/schemas/Company"}}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search/email-domain/{domain}":{"get":{"tags":["Search"],"summary":"Search by email domain","description":"Find companies whose registered email is on the given domain.","operationId":"api_search_by_email_domain_api_v1_search_email_domain__domain__get","parameters":[{"required":true,"schema":{"title":"Domain","type":"string"},"name":"domain","in":"path"},{"required":false,"schema":{"title":"Limit","type":"integer","default":100},"name":"limit","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Api Search By Email Domain Api V1 Search Email Domain  Domain  Get","type":"array","items":{"$ref":"#/components/schemas/Company"}}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/search/phone/{phone}":{"get":{"tags":["Search"],"summary":"Search by registered phone number","description":"Find companies with the given phone number on their public CVR record.","operationId":"api_search_by_phone_api_v1_search_phone__phone__get","parameters":[{"required":true,"schema":{"title":"Phone","type":"string"},"name":"phone","in":"path"},{"required":false,"schema":{"title":"Limit","type":"integer","default":100},"name":"limit","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Api Search By Phone Api V1 Search Phone  Phone  Get","type":"array","items":{"$ref":"#/components/schemas/Company"}}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/{cvrNumber}/direktion-og-ansvarlig":{"get":{"tags":["Relations"],"summary":"Direktion, fuldt ansvarlige & ejere","description":"Return only the *currently-active* leadership and ownership of a company.\n\n* **direktion** — DIREKTØR / ADM. DIR.\n* **fuldt_ansvarlige** — participants with unlimited personal liability\n  (typical for I/S, K/S, enkeltmandsvirksomhed).\n* **ejere** — legal owners with ≥5 % ownership or voting rights,\n  including CVR display buckets (e.g. `25-33,32%`).","operationId":"api_relations_api_v1__cvrNumber__direktion_og_ansvarlig_get","parameters":[{"required":true,"schema":{"title":"Cvrnumber","type":"integer"},"name":"cvrNumber","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyRelations"}}}},"404":{"description":"Company not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/{cvrNumber}":{"get":{"tags":["Companies"],"summary":"Full company profile","description":"Full company profile for a CVR-number.\n\nIncludes: core metadata, contact info, industry, production units\n(P-numbers), plus currently-active *direktion*, *fuldt ansvarlige*\nand *legale ejere*.","operationId":"api_company_api_v1__cvrNumber__get","parameters":[{"required":true,"schema":{"title":"Cvrnumber","type":"integer"},"name":"cvrNumber","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Company"}}}},"404":{"description":"Company not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"CVR distribution API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Company":{"title":"Company","required":["vat"],"type":"object","properties":{"vat":{"title":"Vat","type":"integer","description":"CVR-number (8 digits).","example":41013583},"name":{"title":"Name","type":"string"},"address":{"title":"Address","type":"string"},"zipcode":{"title":"Zipcode","type":"integer"},"city":{"title":"City","type":"string"},"cityname":{"title":"Cityname","type":"string"},"protected":{"title":"Protected","type":"boolean","description":"True if the company opted out of marketing use."},"phone":{"title":"Phone","type":"string"},"email":{"title":"Email","type":"string"},"fax":{"title":"Fax"},"startdate":{"title":"Startdate","type":"string","description":"Founding date (YYYY-MM-DD)."},"enddate":{"title":"Enddate","type":"string"},"employees":{"title":"Employees","type":"integer"},"addressco":{"title":"Addressco","type":"string"},"industrycode":{"title":"Industrycode","type":"integer"},"industrydesc":{"title":"Industrydesc","type":"string"},"companycode":{"title":"Companycode","type":"integer"},"companydesc":{"title":"Companydesc","type":"string"},"bankrupt":{"title":"Bankrupt","type":"boolean"},"status":{"title":"Status","type":"string","description":"e.g. NORMAL, OPHØRT, UNDERKONKURS."},"companytypeshort":{"title":"Companytypeshort","type":"string"},"website":{"title":"Website","type":"string"},"version":{"title":"Version","type":"integer","default":1},"p_units":{"title":"P Units","type":"array","items":{"$ref":"#/components/schemas/PUnit"},"default":[]},"direktion":{"title":"Direktion","type":"array","items":{"$ref":"#/components/schemas/Direktor"},"default":[]},"fuldt_ansvarlige":{"title":"Fuldt Ansvarlige","type":"array","items":{"$ref":"#/components/schemas/FuldtAnsvarlig"},"default":[]},"ejere":{"title":"Ejere","type":"array","items":{"$ref":"#/components/schemas/Ejer"},"default":[]}},"description":"Full company profile returned by ``/api/v1/{cvr}``."},"CompanyFuzzy":{"title":"CompanyFuzzy","required":["name"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"cvr_number":{"title":"Cvr Number","type":"integer"},"industrycode":{"title":"Industrycode","anyOf":[{"type":"integer"},{"type":"string"}]},"industrytext":{"title":"Industrytext","type":"string"}},"description":"Slim shape returned by the fuzzy-search endpoint."},"CompanyRelations":{"title":"CompanyRelations","required":["vat","direktion","fuldt_ansvarlige","ejere"],"type":"object","properties":{"vat":{"title":"Vat","type":"integer"},"direktion":{"title":"Direktion","type":"array","items":{"$ref":"#/components/schemas/Direktor"}},"fuldt_ansvarlige":{"title":"Fuldt Ansvarlige","type":"array","items":{"$ref":"#/components/schemas/FuldtAnsvarlig"}},"ejere":{"title":"Ejere","type":"array","items":{"$ref":"#/components/schemas/Ejer"}}},"description":"Slim response returned by ``/api/v1/{cvr}/direktion-og-ansvarlig``."},"Direktor":{"title":"Direktor","required":["role","type"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"role":{"title":"Role","type":"string","description":"Role code as stored in CVR (e.g. DIREKTØR, INTERESSENTER)."},"type":{"title":"Type","type":"string","description":"'PERSON' or 'VIRKSOMHED'."},"cvr":{"title":"Cvr","type":"integer","description":"Company CVR-number (only for VIRKSOMHED)."},"address":{"title":"Address","type":"string"},"zipcode":{"title":"Zipcode","type":"integer"},"city":{"title":"City","type":"string"},"country":{"title":"Country","type":"string","description":"ISO 3166-1 alpha-2 country code."},"startdate":{"title":"Startdate","type":"string","description":"Role start date (YYYY-MM-DD)."}},"description":"A current director (DIREKTØR / ADM. DIR.)."},"Ejer":{"title":"Ejer","required":["type"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"type":{"title":"Type","type":"string","description":"'PERSON' or 'VIRKSOMHED'."},"cvr":{"title":"Cvr","type":"integer"},"address":{"title":"Address","type":"string"},"zipcode":{"title":"Zipcode","type":"integer"},"city":{"title":"City","type":"string"},"country":{"title":"Country","type":"string"},"ownership_percent":{"title":"Ownership Percent","type":"number","description":"Raw ownership fraction (0-1)."},"ownership_range":{"title":"Ownership Range","type":"string","description":"Display bucket, e.g. '25-33,32%'.","example":"25-33,32%"},"voting_rights_percent":{"title":"Voting Rights Percent","type":"number"},"voting_rights_range":{"title":"Voting Rights Range","type":"string"},"startdate":{"title":"Startdate","type":"string"}},"description":"A currently-registered legal owner (ejerregister)."},"ErrorDetail":{"title":"ErrorDetail","required":["error"],"type":"object","properties":{"error":{"title":"Error","type":"string","description":"Machine-readable error code.","example":"NOT_FOUND"},"status":{"title":"Status","type":"integer","description":"Upstream HTTP status, if applicable.","example":404},"message":{"title":"Message","type":"string","description":"Human-readable error message."}}},"ErrorResponse":{"title":"ErrorResponse","required":["detail"],"type":"object","properties":{"detail":{"$ref":"#/components/schemas/ErrorDetail"}}},"FuldtAnsvarlig":{"title":"FuldtAnsvarlig","required":["role","type"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"role":{"title":"Role","type":"string","description":"Role code as stored in CVR (e.g. DIREKTØR, INTERESSENTER)."},"type":{"title":"Type","type":"string","description":"'PERSON' or 'VIRKSOMHED'."},"cvr":{"title":"Cvr","type":"integer","description":"Company CVR-number (only for VIRKSOMHED)."},"address":{"title":"Address","type":"string"},"zipcode":{"title":"Zipcode","type":"integer"},"city":{"title":"City","type":"string"},"country":{"title":"Country","type":"string","description":"ISO 3166-1 alpha-2 country code."},"startdate":{"title":"Startdate","type":"string","description":"Role start date (YYYY-MM-DD)."}},"description":"A currently-registered fully-liable participant."},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"PUnit":{"title":"PUnit","type":"object","properties":{"p_number":{"title":"P Number","type":"integer","description":"Production-unit (P-)number."},"name":{"title":"Name","type":"string"},"address":{"title":"Address","type":"string"},"zipcode":{"title":"Zipcode","type":"integer"},"city":{"title":"City","type":"string"},"cityname":{"title":"Cityname","type":"string"},"addressco":{"title":"Addressco","type":"string"},"phone":{"title":"Phone","type":"string"},"email":{"title":"Email","type":"string"},"website":{"title":"Website","type":"string"},"fax":{"title":"Fax"},"startdate":{"title":"Startdate","type":"string"},"enddate":{"title":"Enddate","type":"string"},"industrycode":{"title":"Industrycode","type":"integer"},"industrydesc":{"title":"Industrydesc","type":"string"},"employees":{"title":"Employees","type":"integer"},"protected":{"title":"Protected","type":"boolean"}}},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer"}]}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}}}},"tags":[{"name":"Companies","description":"Look up a single company by CVR-number."},{"name":"Relations","description":"Current *direktion*, fully-liable participants, and legal owners."},{"name":"Search","description":"Find companies by name, email, phone, or address."}]}