---
title: "/companies/{cvr}"
method: GET
path: "/v1/companies/{cvr}"
tags: ["Companies"]
---

# /companies/{cvr}

`GET /v1/companies/{cvr}`

## Request

- Base URL: `https://api.companydata.dk` (the document declares no server; this is the origin it was published from)
- URL: `https://api.companydata.dk/v1/companies/{cvr}`
- Auth: HTTP bearer

Get full details for a company by CVR number.

Returns company information including address, industry, employees, ownership,
board members, directors, and a financial summary.

**Note:** CDS (CompanyData Score) is only included for Pro tier subscriptions.

## Path parameters

- `cvr` string, required

## Response `200`

Successful Response

- CompanyResponse: Response for single company lookup.
  - `data` Company, required: Full company details from the Danish CVR registry.
    - `cvr` string, required: 8-digit CVR number (unique company identifier)
    - `name` string, required: Official company name
    - `name_valid_from` string, date-time, nullable: Date when current name became valid
    - `name_history` NameHistoryEntry[]: Full name history with validity periods
      - `name` string, required: Company name
      - `valid_from` string, date-time, nullable: Date when this name became valid
      - `valid_to` string, date-time, nullable: Date when this name was replaced (null = current)
    - `secondary_names` string[]: Alternative/trade names (binavne)
    - `status` string: Company status
    - `cvr_status` string, nullable: Raw CVR status (sammensatStatus) behind `status`, which says how a company ended or what proceeding it is in
    - `company_type` string, nullable: Short company type code
    - `company_type_long` string, nullable: Full company type description
    - `company_type_code` integer, nullable: CVR company form code (virksomhedsformkode)
    - `registration_number` string, nullable: Registration number (if different from CVR)
    - `founded_date` string, date-time, nullable: Date company was founded/registered
    - `start_date` string, date-time, nullable: Date company started operations
    - `ceased_date` string, date-time, nullable: Date company ceased operations (ophørsdato)
    - `bankruptcy_date` string, date-time, nullable: Date the probate court declared the company bankrupt (start of its latest UNDER KONKURS status in CVR); also set after the company was dissolved after the bankruptcy
    - `address` CompanyAddress: Danish address with all CVR fields preserved for accurate geocoding.
      - `address_id` string, nullable: DAWA adgangsadresse ID for direct geocoding lookup
      - `street_name` string, nullable: Street name (vejnavn)
      - `street_code` integer, nullable: Street code, unique per municipality (vejkode)
      - `house_number` integer, nullable: House number (husnummerFra)
      - `house_number_to` integer, nullable: House number end for address ranges
      - `house_letter` string, nullable: Letter suffix, e.g. 'A', 'B'
      - `house_letter_to` string, nullable: Letter suffix end for ranges
      - `floor` string, nullable: Floor (etage), e.g. 'st', '1', '2'
      - `door` string, nullable: Door identifier: 'th' (right), 'tv' (left), 'mf' (middle)
      - `postal_code` string, nullable: 4-digit Danish postal code
      - `postal_district` string, nullable: Postal district name
      - `town_name` string, nullable: Town name for rural areas (bynavn)
      - `care_of` string, nullable: c/o name if applicable
      - `po_box` string, nullable: P.O. box number
      - `free_text` string, nullable: Free text address (typically for foreign addresses)
      - `country_code` string, nullable: ISO 3166-1 alpha-2 country code
      - `municipality_code` string, nullable: 3-digit Danish municipality code
      - `municipality_name` string, nullable: Municipality name
      - `street` string, nullable: Formatted street address for display
      - `city` string, nullable: City name (same as postal_district)
    - `contact` CvrContact: Contact information as registered in CVR (adds the fax number, which a claimed profile cannot set).
      - `phone` string, nullable: Phone number
      - `email` string, nullable: Email address
      - `website` string, nullable: Website URL
      - `fax` string, nullable: Fax number
    - `claimed_contact` CompanyContact: Company contact information.
      - `phone` string, nullable: Phone number
      - `email` string, nullable: Email address
      - `website` string, nullable: Website URL
    - `industry` CompanyIndustry: Industry classification using Danish DB07 codes.
      - `primary_code` string, nullable: Primary 6-digit industry code (DB07)
      - `primary_text` string, nullable: Primary industry description
      - `secondary` SecondaryIndustry[]: List of secondary industry codes
        - `code` string, nullable: 6-digit Danish industry code (DB07)
        - `text` string, nullable: Industry description in Danish
    - `employees` CompanyEmployees: Employee count information from CVR.
      - `count` integer, nullable: Exact employee count (if available)
      - `interval` string, nullable: Employee count interval
      - `full_time_equivalent` number, nullable: Full-time equivalent (FTE) count
      - `including_owners` integer, nullable: Employee count including owners
      - `year` integer, nullable: Year the employee data was reported
      - `month` integer, nullable: Month of the figure (monthly series only)
    - `employees_monthly` CompanyEmployees: Employee count information from CVR.
      - `count` integer, nullable: Exact employee count (if available)
      - `interval` string, nullable: Employee count interval
      - `full_time_equivalent` number, nullable: Full-time equivalent (FTE) count
      - `including_owners` integer, nullable: Employee count including owners
      - `year` integer, nullable: Year the employee data was reported
      - `month` integer, nullable: Month of the figure (monthly series only)
    - `employees_yearly` CompanyEmployees: Employee count information from CVR.
      - `count` integer, nullable: Exact employee count (if available)
      - `interval` string, nullable: Employee count interval
      - `full_time_equivalent` number, nullable: Full-time equivalent (FTE) count
      - `including_owners` integer, nullable: Employee count including owners
      - `year` integer, nullable: Year the employee data was reported
      - `month` integer, nullable: Month of the figure (monthly series only)
    - `capital` CompanyCapital: Registered share capital.
      - `amount` number, nullable: Share capital amount
      - `currency` string: Currency code (typically DKK)
    - `purpose` string, nullable: Company purpose/objective from articles of association
    - `participants` CompanyParticipant[]: Basic participant list (legacy)
      - `name` string, required: Full name of the participant
      - `type` string, nullable: Participant type
      - `unit_number` integer, nullable: CVR unit number for participant lookups
      - `role` string, nullable: Role category
      - `function` string, nullable: Specific function/title
      - `valid_from` string, date-time, nullable: Date when this role started
      - `valid_to` string, date-time, nullable: Date when this role ended (null = current)
    - `owners` CompanyOwner[]: Current owners with ownership percentages
      - `unit_number` integer, required: CVR unit number for owner lookups
      - `name` string, required: Owner name (person or company)
      - `type` string, required: Owner type: PERSON or VIRKSOMHED
      - `cvr` string, nullable: CVR number if owner is a company
      - `ownership_percent` number, nullable: Ownership percentage (0.05 = 5%, 1.0 = 100%)
      - `voting_percent` number, nullable: Voting rights percentage (0.05 = 5%, 1.0 = 100%)
      - `valid_from` string, date-time, nullable: Date when ownership started
    - `board_members` CompanyBoardMember[]: Board of directors (bestyrelse)
      - `unit_number` integer, required: CVR unit number for lookups
      - `name` string, required: Board member name
      - `type` string, required: Type: PERSON or VIRKSOMHED
      - `cvr` string, nullable: CVR number if board member is a company
      - `function` string, nullable: Board function
      - `role` string, nullable: Same as function (for compatibility)
      - `valid_from` string, date-time, nullable: Date when board membership started
      - `valid_to` string, date-time, nullable: Date when board membership ended (null = current)
    - `directors` CompanyDirector[]: Executive management (direktion)
      - `unit_number` integer, required: CVR unit number for lookups
      - `name` string, required: Director name
      - `type` string, required: Type: PERSON or VIRKSOMHED
      - `cvr` string, nullable: CVR number if director is a company
      - `function` string, nullable: Director function
      - `role` string, nullable: Same as function (for compatibility)
      - `valid_from` string, date-time, nullable: Date when directorship started
      - `valid_to` string, date-time, nullable: Date when directorship ended (null = current)
    - `founders` CompanyFounder[]: Company founders (stiftere)
      - `unit_number` integer, required: CVR unit number for lookups
      - `name` string, required: Founder name
      - `type` string, required: Type: PERSON or VIRKSOMHED
      - `cvr` string, nullable: CVR number if founder is a company
      - `valid_from` string, date-time, nullable: Date of company founding
    - `p_units` string[]: List of P-unit numbers (production units)
    - `advertising_protected` boolean: Whether company is protected from advertising (reklamebeskyttet)
    - `location` AppModelsCompanyGeoLocation: GeoJSON Point for geographic coordinates.
      - `type` string: GeoJSON type (always 'Point')
      - `coordinates` number[], required: Coordinates as [longitude, latitude]
    - `logo_url` string, nullable: Company logo URL if available
    - `stock_listing` StockListing: Stock exchange listing hint, stamped by the sync_stock_prices job. Presence tells clients that /companies/{cvr}/stock-prices has data.
      - `symbol` string, required: Primary share class ticker
      - `currency` string, nullable
      - `exchange` string: Exchange MIC
    - `property_summary` PropertySummary: Aggregated property ownership summary for a company.
      - `count` integer: Total number of active property ownerships
      - `historic_count` integer: Number of historic (ended) property ownerships
      - `total_area_sqm` integer, nullable: Total building area in square meters
      - `residential_area_sqm` integer, nullable: Residential area in square meters
      - `commercial_area_sqm` integer, nullable: Commercial area in square meters
      - `land_area_sqm` integer, nullable: Total land area in square meters
      - `property_types` object, nullable: Count by property type
      - `updated_at` string, date-time, nullable: When the summary was last computed
    - `contact_enrichment` ContactEnrichmentSummary: Availability summary for enriched contact data. Drives the company-page teaser: counts + discovered website are shown to everyone (no personal data), while the actual contact VALUES stay Pro-gated.
      - `available` boolean: Whether enriched contact values exist (gated to Pro)
      - `counts` ContactEnrichmentCounts: Value-free counts of enriched contact data (safe to show any tier).
        - `people` integer: Number of named contact people found
        - `emails` integer: Number of email addresses found
        - `phones` integer: Number of phone numbers found
        - `socials` integer: Number of social-media profiles found
      - `website` string, nullable: Discovered official website URL — shown to all; set only when CVR has no registered website
      - `website_source` string, nullable: Origin of the website field
      - `contacts` ScrapedContactData: Structured contact data extracted from a company website.
        - `people` ScrapedPerson[]: Key contacts / team members
          - `name` string, nullable: Person's full name
          - `title` string, nullable: Job title / role
          - `role_category` string, nullable: Normalized role category classified from the title (management, sales, marketing, it, hr, finance, operations, procurement, customer_service). Null when the title has no confident mapping.
          - `phone` string, nullable: Direct phone number
          - `email` string, nullable: Email address
          - `linkedin` string, nullable: LinkedIn profile URL
        - `phone_numbers` string[]: General phone numbers (not tied to a person)
        - `email_addresses` string[]: General email addresses (not tied to a person)
        - `social_media` ScrapedSocialMedia: Social media links extracted from a company website.
          - `linkedin` string, nullable: LinkedIn profile/company URL
          - `facebook` string, nullable: Facebook page URL
          - `instagram` string, nullable: Instagram profile URL
          - `twitter` string, nullable: X/Twitter profile URL
          - `youtube` string, nullable: YouTube channel URL
          - `other` string[]: Other social media URLs
        - `physical_addresses` string[]: Physical addresses as found on website (free text)
    - `noindex` boolean: True when the company profile page should not be indexed by search engines
    - `meta` CompanyMeta: Metadata about the company record.
      - `cvr_updated_at` string, date-time, nullable: When company data was last synced from CVR
      - `geocoded_at` string, date-time, nullable: When address was geocoded to coordinates
      - `created_at` string, date-time: When record was created in Selskabsbasen
      - `updated_at` string, date-time: When record was last updated
  - `financial_summary` FinancialYearSummary[]: Financial summary for recent years
    - `year` integer, required: Fiscal year
    - `period_start` string, date-time, nullable: Start of the reporting period
    - `period_end` string, date-time, nullable: End of the reporting period
    - `reporting_scope` string: group when explicitly recorded; otherwise unspecified
    - `currency` string: Currency code (e.g., DKK, EUR)
    - `revenue` integer, nullable: Annual revenue (omsætning)
    - `gross_profit` integer, nullable: Gross profit (bruttofortjeneste) in DKK
    - `profit_loss` integer, nullable: Net profit/loss (årets resultat) in DKK
    - `total_assets` integer, nullable: Total assets (aktiver i alt) in DKK
    - `equity` integer, nullable: Shareholder equity (egenkapital) in DKK
    - `employees` integer, nullable: Average number of employees
    - `announcement_id` string, nullable: Announcement ID for linking to document download
    - `has_pdf` boolean: Whether a PDF document is available
    - `has_xhtml` boolean: Whether an XHTML (viewable) document is available
    - `source_url` string, nullable: Public URL of the original filing at Erhvervsstyrelsen (regnskaber.virk.dk). Free for everyone; our inline viewer and PDF proxy remain Pro-only.
  - `cds` CDSSummary: CDS (CompanyData Score) - proprietary credit/health score for companies.
    - `score` integer, nullable: Score from 0-100 (higher is better). -1 = a score exists but is not published yet
    - `rating` string, nullable: Rating category
    - `confidence` string, nullable: How much data the score rests on: high = recent accounts, audit and ownership data on file; low = mostly registry data
    - `credit_recommendation` object, nullable: Trade-credit recommendation: status (recommended/zero_advised/no_recommendation), limit_dkk, payment_terms_days (0 = prepayment), basis, reason
    - `has_score` boolean: Whether a score has been calculated for this company
    - `not_scored_reason` string, nullable: Machine-readable reason when no score is disclosed. 'company_dissolved' = the company has ceased; no credit assessment is made or disclosed for dissolved companies.
    - `calculated_at` string, date-time, nullable: When the score was last calculated
    - `pillars` CDSPillar[], nullable: Coarse per-pillar breakdown (only on the dedicated /companies/{cvr}/cds endpoint)
      - `key` string, required: Pillar key
      - `score` number, required: Points earned on this pillar
      - `max` number, required: Maximum points available on this pillar for this company
  - `insights` CompanyInsights: All computed insights for a company.
    - `revenue_trend` RevenueTrendInsight: Revenue trend insight computed from financial history.
      - `trend` string, required: Trend category: growing, stable, declining
      - `percentage` number, nullable: CAGR percentage (e.g., 8 for 8%)
      - `years_analyzed` integer, required: Number of years used in calculation
    - `size` CompanySizeInsight: Company size classification using EU SME thresholds.
      - `category` string, required: Size category: micro, small, medium, large
      - `basis` string, required: Basis for classification: employees or revenue
    - `age` CompanyAgeInsight: Company age insight based on founding date.
      - `category` string, required: Age category: new, established, well_established
      - `years` integer, required: Company age in years
    - `profitability` ProfitabilityInsight: Profitability insight based on latest financial data.
      - `status` string, required: Status: profitable, loss, breakeven
      - `margin_percent` number, nullable: Profit margin percentage
  - `meta` object: Response metadata

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/companydata/apis/companydata-dk-api.md) · [All operations](https://skmtc.dev/companydata/apis/companydata-dk-api/llms.txt) · [OpenAPI document](https://skmtc.dev/companydata/apis/companydata-dk-api/revisions/1cc6c361ae64?raw)
