---
title: "Get company by ID"
method: GET
path: "/companies/{id}"
tags: ["Companies"]
---

# Get company by ID

`GET /companies/{id}`

## Request

- Base URL: `https://api.prometiam.com/functions/v1/risk-api`
- URL: `https://api.prometiam.com/functions/v1/risk-api/companies/{id}`
- Auth: HTTP bearer

Fetch a single company profile by the id /companies/search returned. The id names its country, so `country` is optional; an id issued for France, the United Kingdom, Ireland or Poland before 1 October 2026 (without the country offset) still needs `country`. Returns full detail including `activity_description` (in Spain the purpose clause), registry coordinates (`registry_details`), founding date, and embedded contacts and appointments. `include=lei` (Spain) adds `lei_record`, the GLEIF record; `lei` is the code string.

## Path parameters

- `id` integer, required

## Query parameters

- `country` 'ES' | 'FR' | 'GB' | 'IE' | 'PL' | 'NO' | 'FI' | 'SE' | 'HR' | 'BE' | 'DK' | 'EE' | 'SK' | 'CH' | 'LV' | 'CY' | 'RO' | 'LT' | 'CA' | 'AU' | 'JP' | 'IL' | 'BR' | 'CO' | 'SG' | 'TW' | 'CZ' | 'DE' | 'US'
- `include` string
- `appointments_limit` integer
- `appointments_offset` integer
- `events_limit` integer
- `events_offset` integer

## Response `200`

Company detail

- object
  - `data` CompanyDetail: The standard company object. Every company the API returns (search items, the detail, a batch lookup `company`) has these keys in this order in every live country; a value the register does not publish is null, never left out. The register's own values stay beside the standard ones as `local_*` fields; what only one register has is in `registry_details`. Name, address, city, municipality and region are UPPERCASE; activity_description is sentence case.
    - `id` integer: Company id. Spanish ids are plain numbers; Norwegian ids are the organisasjonsnummer; France, the United Kingdom, Ireland and Poland carry a country offset (FR +1e12, GB +2e12, IE +3e12, PL +4e12), as do Sweden (+6e12), Finland (+7e12), Belgium (+8e12), Denmark (+9e12), Croatia (+10e12), Switzerland (+11e12), Estonia (+12e12), Slovakia (+13e12), the United States (+14e12), Latvia (+18e12), Cyprus (+19e12), Romania (+17e12), Lithuania (+20e12), Canada (+21e12), Australia (+22e12), Japan (+23e12), Brazil (+24e12), Israel (+25e12), Colombia (+26e12), Singapore (+28e12), Taiwan (+29e12) the Czech Republic (+16e12) and Germany (+30e12). Every id names its country, so GET /companies/{id} needs no country parameter.
    - `match_score` integer, nullable: Relevance/confidence of a fuzzy name match, 0–100 (pg_trgm similarity × 100 — identical to the sanctions screen's score). Present only for `name` search; null for exact id/number lookups and the founded_after feed. Name-search results are ranked by this score, best first.
    - `country` 'ES' | 'FR' | 'GB' | 'IE' | 'PL' | 'NO' | 'FI' | 'SE' | 'HR' | 'BE' | 'DK' | 'EE' | 'SK' | 'CH' | 'LV' | 'CY' | 'RO' | 'LT' | 'CA' | 'AU' | 'JP' | 'IL' | 'BR' | 'CO' | 'SG' | 'TW' | 'CZ' | 'DE' | 'US'
    - `company_number` string, nullable: The register's own number, every country: NIF (ES), SIREN (FR), Companies House number (GB), CRO number (IE), KRS (PL), organisasjonsnummer (NO, SE), business ID (FI), enterprise number (BE), MBS (HR), CVR number (DK), registry code (EE), IČO (SK), UID (CH), registration number (LV), registration number (CY), CUI (RO), the state code and register number such as NY-4424185 (US), or CIK-… / LEI-… for an SEC filer or LEI holder without a state registration in the five registers; legal entity code (LT), corporation number (CA), ACN or ARBN (AU), corporate number (JP), company number (IL), CNPJ shown 00.000.000/0001-91 (BR), NIT (CO), UEN (SG), unified business number (TW), IČO (CZ), LEI (DE). The same value is the first entry of `identifiers`.
    - `company_name` string: Registered name, always UPPERCASE. Null for a French company that opted out of publication (INSEE non-diffusible; `status` is `withheld` and `registry_details.non_diffusible` is true): the register gives a placeholder instead of a name, and the API does not pass it on as one. Name searches and the founding-date feed never return these companies; a SIREN or SIRET lookup does.
    - `previous_names` object[], nullable: Former registered names, one shape for every country (GB, NO, PL; PL is filled progressively from the full KRS extract); null when the register publishes none.
      - `name` string
      - `from_date` string, date, nullable
      - `until_date` string, date, nullable
    - `identifiers` object[]: Every identifier the register publishes for the company, the registry number first. Replaces the per-country keys nif, siren, siret, rcs_number, nip, regon and oib.
      - `type` string: nif (ES); siren, siret, rcs (FR); crn (GB); cro_number (IE); krs, nip, regon (PL); orgnr (NO, SE); business_id (FI); enterprise_number (BE); mbs, oib (HR); cvr (DK); registry_code (EE); ico (SK); uid, ch_id (CH); state_registration, cik, ein, lei (US: the state registration number such as NY-4424185, the SEC CIK, the EIN of SEC filers and the LEI); vat (the VAT number, same value as `vat_number`).
      - `value` string
    - `vat_number` string, nullable: VAT number of the company, also listed in identifiers as type vat. See vat_number_source for how it was obtained. `register`: published by the register (EE; LV from the State Revenue Service’s list of VAT payers; LT from the State Tax Inspectorate’s list; AU the ABN while GST-registered; TW the unified business number where the company is in the tax file) or the register confirms VAT registration and the number is the law's format of its identifier (NO, FI, BE). `rule`: built from the company's identifier (ES `ES`+NIF, FR `FR`+key+SIREN, PL `PL`+NIP, NO `NO`+number+`MVA`, FI, SE `SE`+number+`01`, BE, HR `HR`+OIB, DK): the format is right, the registration is not confirmed (check it with `GET /vat/{number}`). Null where the register says the company is not VAT-registered (NO, FI), where a Latvian company is not on the State Revenue Service’s list of VAT payers, and where no rule exists (GB, IE, SK, CY, US, CA, JP, IL, BR, CO, SG, CZ, DE, and EE without a published KMKR).
    - `vat_number_source` 'register' | 'rule', nullable: register: the register publishes the number or confirms VAT registration (EE, NO, FI, BE). rule: built from the company's identifier, format right but registration not confirmed (check it with GET /vat/{number}). Null when vat_number is null.
    - `lei` string, nullable: Legal Entity Identifier (20 characters) when the company has one; null otherwise. The GLEIF record itself is `lei_record` (ES, `include=lei`).
    - `legal_form` string, nullable: Standard abbreviation of the legal form (SA, SL, Ltd, sp. z o.o., AS, Oy, AB, BV, d.o.o., A/S...), or, for a form with no abbreviation, the form's name (English where available, else the register's language: for example "Branch" for a Swiss branch, "Overseas entity" for a GB overseas entity, a Belgian form's Dutch or French name). Never an internal code. Null only when the form is not mapped; `local_legal_form` and `local_legal_form_name` then still carry the register's own value.
    - `legal_form_family` string, nullable: Cross-country family of the legal form (for example private_limited_company, public_limited_company, sole_proprietorship), for comparing entity types across countries.
    - `local_legal_form` string, nullable: The register's own legal-form value or code as stored (for example "SA", "114" in BE, "60" in DK, "UTLA" in NO).
    - `local_legal_form_name` string, nullable: The register's name for `local_legal_form`, where it publishes one.
    - `status` 'active' | 'active_strike_off_pending' | 'suspended' | 'not_yet_active' | 'in_restructuring' | 'in_administration' | 'in_receivership' | 'insolvent' | 'in_liquidation_insolvent' | 'in_liquidation' | 'in_compulsory_liquidation' | 'in_dissolution' | 'deregistered' | 'merged' | 'withheld', nullable: STANDARD status, the same list in every country (from the multilingual mapping dictionary). Null when the dictionary does not know the stored value. Ambiguities the dictionary keeps apart: ES/FR "dissolved" means the company still exists pending liquidation (`in_dissolution`), while GB/IE/PL/NO "dissolved" is `deregistered`. `withheld`: the register does not disclose the state (France's non-diffusible entities, whose `company_name` is null and `registry_details.non_diffusible` true). The register's own value is `local_status`.
    - `stage` 'active' | 'distress' | 'winding_up' | 'closed' | 'unknown', nullable: Lifecycle stage of `status`: active (registered and trading), distress (a formal rescue/administration/insolvency proceeding is open, still exists), winding_up (dissolved or in liquidation, still exists only to be wound up), closed (no longer exists), unknown (the register does not disclose the state). Null when `status` is null.
    - `local_status` string, nullable: The register's own state as stored (for example GB "dissolved", FR "radiated", ES "absorbed" for a company closed by a merger). Filter by it with the `local_status` query parameter.
    - `status_date` string, date, nullable: Date of the latest status change, where the register states it. CY, LV and SK: the date the current status began; null for an active company where the register states none.
    - `founding_date` string, date, nullable: Incorporation date.
    - `registration_date` string, date, nullable: Date of entry in the register, where it differs from the incorporation date.
    - `dissolution_date` string, date, nullable: Dissolution date, where the register states it.
    - `activity_code` string, nullable: Main economic-activity code as the register gives it (one code; the others are in `secondary_activity_codes`). `activity_code_scheme` names its classification.
    - `activity_code_scheme` 'CNAE' | 'NAF-REV2' | 'NAF-REV1' | 'UK-SIC-2007' | 'UK-SIC-2003' | 'NACE-REV2' | 'PKD' | 'SN-2025' | 'TOL-2025' | 'SNI-2025' | 'NACE-BEL-2025' | 'NKD-2025' | 'NKD-2007' | 'DB-2025' | 'EMTAK-2008' | 'EMTAK-2025' | 'SK-NACE-2025' | 'CAEN-REV3' | 'CAEN-REV2' | 'CAEN-2003' | 'CAEN-1998' | 'LT-NACE-2025' | 'CZ-NACE-2025' | 'BR-CNAE-2.3' | 'CO-CIIU-REV4-AC' | 'SG-SSIC-2020' | 'TW-TAX-SIC', nullable: The classification `activity_code` is written in: `CNAE` (ES), `NAF-REV2` (FR; `NAF-REV1` for codes still in the old format), `UK-SIC-2007` (GB; `UK-SIC-2003` for older 4-digit codes), `NACE-REV2` (IE), `PKD` (PL), `SN-2025` (NO), `TOL-2025` (FI), `SNI-2025` (SE), `NACE-BEL-2025` (BE), `NKD-2025` or `NKD-2007` (HR), `DB-2025` (DK), `EMTAK-2008` or `EMTAK-2025` (EE), `SK-NACE-2025` (SK), `LT-NACE-2025` (LT; NACE Rev. 2.1 class), `CZ-NACE-2025` (CZ; CZ-NACE 2025, NACE Rev. 2.1 class), `BR-CNAE-2.3` (BR; CNAE-Subclasses 2.3, 7 digits), `CO-CIIU-REV4-AC` (CO; CIIU Rev. 4 adapted for Colombia, 4 digits), `SG-SSIC-2020` (SG; 5 digits, a legacy 4-digit code has no scheme) and `TW-TAX-SIC` (TW; the Ministry of Finance tax industry code, 6 digits). BR, CO, SG and TW codes are not NACE codes and `nace_class` is null for them. ES and PL name the system without a version: their records hold codes of both the older version (CNAE-2009, PKD 2007) and the 2025 one, and do not say which. RO names the CAEN edition: `CAEN-REV3` (CAEN Rev.3 = NACE Rev. 2.1), `CAEN-REV2` (= NACE Rev. 2); older codes keep their edition (`CAEN-2003`, `CAEN-1998`). The 2025 versions follow NACE Rev. 2.1, the older ones NACE Rev. 2. Null when there is no code or the value is not a code (a sector label on some Spanish companies).
    - `activity_description` string, nullable: Label of `activity_code` from the official classification table, in the register's language (English for GB and IE), in sentence case.
    - `activity_description_en` string, nullable: English label: the UK SIC title for GB, otherwise the NACE class title from Eurostat.
    - `nace_class` string, nullable: The NACE class of the activity code, comparable across countries (for example "46.33").
    - `nace_version` string, nullable: NACE version of `nace_class`: "2" or "2.1".
    - `secondary_activity_codes` object[]: The other activity codes the register lists: GB's other SIC codes, SE's other SNI codes, and for CO and SG the other codes with their titles. Empty array elsewhere.
      - `code` string
      - `scheme` string, nullable
      - `description` string, nullable
    - `business_purpose` string, nullable: The purpose clause as registered: objeto social (ES), objet social (FR), Zweck (CH), verksamhetsbeskrivning (SE, personal identifiers redacted). Null elsewhere.
    - `address` string, nullable: Registered address, UPPERCASE.
    - `postal_code` string, nullable
    - `city` string, nullable: UPPERCASE.
    - `municipality` string, nullable: Municipality, where the register gives one (NO, FI, SE, BE, HR, DK); UPPERCASE.
    - `region` string, nullable: First-level region, UPPERCASE: provincia (ES), departement (FR), county (GB, IE), wojewodztwo (PL), fylke (NO), maakunta (FI), lan (SE), province or Brussels-Capital Region (BE), zupanija (HR), region (DK), maakond (EE), kraj (SK), canton (CH), region (LV), district (CY), county (RO), state or county (US), county (LT), province or territory (CA), state (AU), prefecture (JP), district (IL), state (BR), department (CO), county or city (TW), region (kraj) (CZ); none for SG.
    - `address_country` string, nullable: ISO 3166 country code of the address.
    - `capital_amount` number, nullable: Share capital in `capital_currency`, as last published by the registry. ES: BORME only publishes capital inside incorporation / capital-increase / capital-reduction notices, so a company whose capital was last set before the 2009 digital editions may return null even when it is a public SA.
    - `capital_currency` string, nullable: ISO 4217 code of `capital_amount`.
    - `capital_eur` number, nullable: One euro figure for share capital in every country: the amount when it is in EUR, otherwise converted at the ECB reference rate of 2 October 2026 (one fixed date, an approximation for comparing sizes, not the rate of the registration day); Croatian kuna at the fixed rate of 7.53450. Null when the capital or its currency is missing (Denmark publishes none).
    - `employees` integer, nullable: Employee count where the register publishes one.
    - `employee_band` string, nullable: Size band of the workforce (FR); DK: the register's employment interval where CVR states it. Null elsewhere.
    - `website` string, nullable: The company's website when it is known with proof: from the register itself (NO, FI; BE from the KBO contact file; PL from the KRS record) or from Wikidata's official website matched by register number. Read `website_source` for how it was found. Null when none is known. Websites guessed from the company name (ES, FR, GB) stay in `contacts`.
    - `website_source` object, nullable: How `website` was found. Null when `website` is null.
      - `method` 'registry' | 'wikidata' | 'id_on_site' | 'name_address' | 'email_domain': registry: published by the company register; wikidata: Wikidata's official website on the item carrying the company's register number; id_on_site: the site shows the company's register or VAT number; name_address: the site shows its name and its postcode or town; email_domain: the domain of an e-mail the register publishes, confirmed by fetching the site.
      - `confidence` number: 0-1. 0.98 registry, 0.95 wikidata, 0.90 id_on_site, 0.80 email_domain, 0.75 name_address.
      - `found_in` string, nullable
      - `source_url` string, nullable
      - `checked_at` string, date-time, nullable
    - `register` string, nullable: Name of the register the record comes from.
    - `first_seen_date` string, date, nullable: First date this record appeared in a registry publication held by the API. For registers loaded from a bulk snapshot this is the load date, not the incorporation date; use founding_date for incorporation.
    - `last_seen_date` string, date, nullable: Most recent registry publication or snapshot in which this record appeared. For GB the value can lag the register by up to a month between snapshots.
    - `updated_at` string, date-time, nullable
    - `registry_details` object: What only one register has. ES: registro_tomo, registro_libro, registro_folio, registro_seccion, registro_hoja, registro_inscripcion, registry_sheet_closed_date (the latest BORME provisional closure of the registry sheet still in force; a registry-compliance signal, not a dissolution; also served as the `registry_compliance` entry under `include=risk_flags`). FR: greffe (also from INPI's RNE), category, non_diffusible (true when INSEE withholds the company's name, false otherwise). GB: jurisdiction (read from the company-number prefix in Companies House's own terms, upper case: ENGLAND-WALES, SCOTLAND, NORTHERN-IRELAND, and UNITED-KINGDOM for overseas companies and registered overseas entities, prefixes FC/NF/SF/OE/SE/BR), next_accounts_due, next_confirmation_due, address_line1, address_line2. IE: jurisdiction, next_accounts_due, last_ar_date. AU: abn_status (ACT or CAN), gst_from (null unless GST-registered). LT: sector_code (the ESA institutional sector code, no label). BR: size_class (ME, EPP or DEMAIS) with size_class_name, and district (the bairro). PL: jurisdiction. NO, FI, SE, BE, HR, DK: sector_code, in_group, vat_registered, last_accounts_year. CH: ch_id, legal_seat. US: jurisdiction (state of formation), registration_state, registration_type (domestic or foreign), status_code and sub_status (the register's own), naics_code, sic_code, tickers, sources (which feeds the record merges).
    - `contacts` Appointment[]: Contacts found for the company (email, social profiles; websites guessed from the name stay here). The register's own phone number (NO, FI, SE, BE, HR, DK) is a contact of type `phone`.
      - `id` integer
      - `person_id` integer
      - `company_id` integer, nullable
      - `company_name` string, nullable
      - `company_number` string, nullable
      - `full_name` string, nullable
      - `role` string, nullable
      - `appointment_date` string, date, nullable: Norway appointments carry no dates: the Brønnøysund roles file publishes current roles without appointment dates, so date fields are null for NO.
      - `end_date` string, date, nullable
      - `is_current` boolean: Boolean. Whether the officer is still in office: true when the appointment has no end date and no ending action (resignation, cessation), false otherwise. Appointments are returned for Spain, France, the United Kingdom and Norway only; false when the appointment has an end date (ceased_date) or its action records the end (ceased, resigned). One rule for every country; Norway's roles file carries no end dates, so a Norwegian role reads current until the register drops it.
    - `appointments` object[]: Officers and appointments (ES, FR, GB, NO).
    - `recent_events` object[]: The latest corporate events of the company.
    - `lei_record` object, nullable: Only with `include=lei` (Spain): the GLEIF record of the company's LEI. `lei` is the code string.
    - `corporate_structure` CorporateStructure, nullable: Only with `include=structure`: corporate parents from GLEIF Level 2 (accounting consolidation, as the entity reports it; CC0). Only companies that carry a Legal Entity Identifier; ownership percentages and natural-person owners are not part of GLEIF Level 2.
      - `lei` string: The company's Legal Entity Identifier.
      - `lei_name` string, nullable
      - `lei_registration_status` string, nullable: The LEI's renewal state (ISSUED, LAPSED, ...), not the company's status.
      - `direct_parent` CorporateParent, nullable: A parent entity as reported to GLEIF.
        - `lei` string
        - `name` string, nullable: Legal name in the GLEIF record.
        - `country` string, nullable: Legal address country of the parent (ISO 3166-1 alpha-2).
        - `company_id` integer, nullable: The parent's company id in this API when it is a company of a live country we serve; null otherwise.
        - `company_country` string, nullable: The country of that company record.
        - `relationship_registration_status` string, nullable: PUBLISHED or LAPSED (the GLEIF relationship record's own status).
        - `corroboration` string, nullable: FULLY_CORROBORATED, PARTIALLY_CORROBORATED or ENTITY_SUPPLIED_ONLY.
        - `since` string, date, nullable: Start of the relationship period, where reported.
      - `direct_parent_exception` string, nullable: Why no direct parent is reported (GLEIF reporting exception), e.g. NATURAL_PERSONS, NON_CONSOLIDATING, NO_KNOWN_PERSON, NON_PUBLIC; null when a parent is reported or nothing is.
      - `ultimate_parent` CorporateParent, nullable: A parent entity as reported to GLEIF.
        - `lei` string
        - `name` string, nullable: Legal name in the GLEIF record.
        - `country` string, nullable: Legal address country of the parent (ISO 3166-1 alpha-2).
        - `company_id` integer, nullable: The parent's company id in this API when it is a company of a live country we serve; null otherwise.
        - `company_country` string, nullable: The country of that company record.
        - `relationship_registration_status` string, nullable: PUBLISHED or LAPSED (the GLEIF relationship record's own status).
        - `corroboration` string, nullable: FULLY_CORROBORATED, PARTIALLY_CORROBORATED or ENTITY_SUPPLIED_ONLY.
        - `since` string, date, nullable: Start of the relationship period, where reported.
      - `ultimate_parent_exception` string, nullable
      - `direct_subsidiaries` integer: How many LEIs report this company as their direct parent. The list: GET /lei/{lei}/relationships.
      - `source` string
      - `data_as_of` string, date: Publication day of the GLEIF golden copy.
    - `latest_financials` FinancialStatement
      - `fiscal_year` integer
      - `period_start` string, date
      - `period_end` string, date
      - `period_days` integer
      - `statement_type` 'individual' | 'consolidated'
      - `framework` string: Accounting framework of the filing, e.g. frs102, frs102_1a, frs105, dk_class_b, se_gaap, no_ngaap, no_small, ifrs.
      - `currency` string: ISO 4217 currency of `figures`.
      - `origin` 'own_filing' | 'comparative': `comparative` is a prior-year figure taken from the next year's filing when the company's own filing for that year is not held.
      - `filing_date` string, date, nullable: The accounts' release date: the day the filing these figures were read from was filed with or published by the register. A comparative statement carries the date of the later filing it was read from. Null where the source publishes no date (NO, LV, RO, CO); quality.missing.filing_date then says not_published_by_register.
      - `filing_delay_days` integer, nullable: Days from `period_end` to `filing_date`. Null where the source publishes no filing date (NO, LV, RO, CO), or where the date would fall before the period end.
      - `source_url` string, nullable: Link to the filing at the register. Null for SE.
      - `figures` FinancialFigures: The comparable figures of one statement. A null value was not stated in the filing; it is never zero.
        - `revenue` number, nullable
        - `gross_profit` number, nullable
        - `operating_profit` number, nullable
        - `profit_before_tax` number, nullable
        - `net_profit` number, nullable
        - `personnel_costs` number, nullable
        - `depreciation` number, nullable
        - `interest_expense` number, nullable
        - `total_assets` number, nullable
        - `fixed_assets` number, nullable
        - `current_assets` number, nullable
        - `cash` number, nullable
        - `inventories` number, nullable
        - `receivables` number, nullable
        - `equity` number, nullable
        - `current_liabilities` number, nullable
        - `non_current_liabilities` number, nullable
        - `total_liabilities` number, nullable
        - `employees` integer, nullable: Average number of employees as stated in the filing; the same in figures and figures_eur. Not stated for NO.
      - `figures_eur` FinancialFigures: The comparable figures of one statement. A null value was not stated in the filing; it is never zero.
        - `revenue` number, nullable
        - `gross_profit` number, nullable
        - `operating_profit` number, nullable
        - `profit_before_tax` number, nullable
        - `net_profit` number, nullable
        - `personnel_costs` number, nullable
        - `depreciation` number, nullable
        - `interest_expense` number, nullable
        - `total_assets` number, nullable
        - `fixed_assets` number, nullable
        - `current_assets` number, nullable
        - `cash` number, nullable
        - `inventories` number, nullable
        - `receivables` number, nullable
        - `equity` number, nullable
        - `current_liabilities` number, nullable
        - `non_current_liabilities` number, nullable
        - `total_liabilities` number, nullable
        - `employees` integer, nullable: Average number of employees as stated in the filing; the same in figures and figures_eur. Not stated for NO.
      - `ratios` object: Derived ratios. Derived from this statement's own figures (and the previous year's statement of the same type for averages and growth); never imputed. Ratios are computed from the filing-currency figures, so they are currency-free; ebitda, working_capital and revenue_per_employee are money in the filing currency (omitted with currency=eur; the euro values are in ratios_eur). A ratio is null when an input is null or its denominator is zero or negative where the ratio means nothing; a loss gives a real negative ratio. Flows are not annualised. Margins and the personnel cost share are on revenue, or on gross profit when ratios_basis is gross_profit.
        - `gross_margin` number, nullable: gross_profit / revenue. Null when: revenue is null or not above 0; revenue-basis statements only.
        - `operating_margin` number, nullable: operating_profit / revenue. Null when: revenue (gross profit on the gross-profit basis) is null or not above 0.
        - `net_margin` number, nullable: net_profit / revenue. Null when: revenue (gross profit on the gross-profit basis) is null or not above 0.
        - `ebitda` number, nullable: operating_profit + depreciation. Null when: operating profit or depreciation is null.
        - `ebitda_margin` number, nullable: ebitda / revenue. Null when: ebitda is null or revenue (gross profit on the gross-profit basis) is not above 0.
        - `return_on_assets` number, nullable: net_profit / total_assets. Null when: total assets null or not above 0.
        - `return_on_equity` number, nullable: net_profit / average(equity, previous year equity). Null when: no previous statement of the same type, or the average equity is not above 0.
        - `roce` number, nullable: operating_profit / (total_assets - current_liabilities). Null when: capital employed null or not above 0.
        - `current_ratio` number, nullable: current_assets / current_liabilities. Null when: current liabilities null or not above 0.
        - `quick_ratio` number, nullable: (current_assets - inventories) / current_liabilities. Null when: inventories null, or current liabilities null or not above 0.
        - `cash_ratio` number, nullable: cash / current_liabilities. Null when: current liabilities null or not above 0.
        - `working_capital` number, nullable: current_assets - current_liabilities. Null when: either is null.
        - `equity_ratio` number, nullable: equity / total_assets. Null when: total assets null or not above 0.
        - `debt_to_equity` number, nullable: total_liabilities / equity. Null when: equity null or not above 0 (see flags.negative_equity).
        - `interest_cover` number, nullable: operating_profit / interest_expense. Null when: interest expense null or not above 0 (no interest is not an infinite cover).
        - `asset_turnover` number, nullable: revenue / total_assets. Null when: revenue null, or total assets null or not above 0; revenue basis only.
        - `days_sales_outstanding` number, nullable: receivables / revenue * period_days. Null when: revenue not above 0, receivables or period_days null; revenue basis only.
        - `revenue_per_employee` number, nullable: revenue / employees. Null when: employees null or not above 0; revenue basis only.
        - `personnel_cost_share` number, nullable: personnel_costs / revenue. Null when: personnel costs null, or revenue (gross profit on the gross-profit basis) not above 0.
      - `ratios_eur` object: The money ratios of `ratios` in euro at the statement's ECB annual average rate (the rate of `fx`); null where the statement has no rate. Omitted with currency=native.
        - `ebitda` number, nullable: operating_profit + depreciation. Null when: operating profit or depreciation is null.
        - `working_capital` number, nullable: current_assets - current_liabilities. Null when: either is null.
        - `revenue_per_employee` number, nullable: revenue / employees. Null when: employees null or not above 0; revenue basis only.
      - `ratios_basis` 'revenue' | 'gross_profit': `gross_profit` for a statement that reports gross profit instead of revenue (small Danish companies, `quality.missing.revenue` = reported_as_gross_profit): operating_margin, net_margin, ebitda_margin and personnel_cost_share then divide by gross profit; gross_margin, asset_turnover, days_sales_outstanding, revenue_per_employee and revenue growth are null.
      - `growth` object: Change on the previous year as a fraction (-0.2 is 20% down), (current - previous) / |previous|. The previous year is the statement of the same `statement_type` and currency whose period ended 300 to 430 days earlier (consolidated is never compared with individual); null without it or when the earlier figure is 0 or null.
        - `revenue` number, nullable
        - `net_profit` number, nullable
        - `equity` number, nullable
        - `employees` number, nullable
      - `flags` object: Health flags, each true, false, or null when not computable.
        - `negative_equity` boolean, nullable: Equity below 0.
        - `loss_two_years` boolean, nullable: Net profit below 0 this year and the year before; false when this year is a profit; null when this year is a loss and the year before is not known.
        - `current_ratio_below_1` boolean, nullable: current_ratio below 1.
        - `interest_cover_below_1_5` boolean, nullable: interest_cover below 1.5.
        - `revenue_down_over_20pct` boolean, nullable: growth.revenue below -0.2.
      - `fx` object
        - `rate` number: Units of currency per euro.
        - `year_used` integer
        - `basis` string
      - `quality` object
        - `has_balance_sheet` boolean
        - `has_profit_and_loss` boolean
        - `balance_check` boolean, nullable: Whether assets equal equity plus liabilities; null when not checkable.
        - `derived` string[]: Fields computed exactly from other filed lines, e.g. total_assets = fixed + current assets.
        - `is_abridged` boolean
        - `is_micro_entity` boolean
        - `is_dormant` boolean
        - `is_amended` boolean
        - `notes` string[]: Machine-readable remarks on the statement. `employees_from_register` (Norway): the accounts carry no employee count, so `figures.employees` of the company's latest statement is the head count on the company's register record, today's figure rather than the year's average.
        - `missing` object: Why each null figure is null, as {field: reason}; also covers `filing_date` where the source publishes none (Norway, Latvia, Romania, Colombia). Sweden's `source_url` is the company's page at Bolagsverket (annual reports can be ordered there). `confidential`: the company declared its profit and loss account confidential (France). `not_filed`: the filing has no profit and loss account or no balance sheet (e.g. small UK companies). `reported_as_gross_profit`: revenue left out, gross profit reported instead (Denmark). `not_published_by_register`: the register publishes no such item (Norway employees, when the register record has none either; filing_date for Norway, Latvia, Romania and Colombia). `not_stated`: the filing states other lines but not this one.
      - `superseded` boolean: Present (true) only with `include_superseded=true`, on a statement replaced by a later or amended filing.
      - `balance_sheet` object: With `include=lines`: every mapped balance-sheet line.
      - `income_statement` object: With `include=lines`: every mapped income-statement line.

## Other responses

- `401`: Missing, invalid, or expired API key
- `404`: Record or endpoint not found
- `429`: Rate limit exceeded — see `Retry-After` header for seconds until reset

## Changes

- **2026-10-20** `3ee0626d5a45`: 6 info
  - added the optional property `data/allOf[subschema #2]/latest_financials/allOf[#/components/schemas/FinancialStatement]/filing_delay_days` to the response with the `200` status
  - added the optional property `data/allOf[subschema #2]/latest_financials/allOf[#/components/schemas/FinancialStatement]/flags` to the response with the `200` status
  - added the optional property `data/allOf[subschema #2]/latest_financials/allOf[#/components/schemas/FinancialStatement]/growth` to the response with the `200` status
  - added the optional property `data/allOf[subschema #2]/latest_financials/allOf[#/components/schemas/FinancialStatement]/ratios` to the response with the `200` status
  - …2 more
- **2026-10-20** `b01703443e4e`: 1 info
  - added the optional property `data/allOf[subschema #2]/corporate_structure` to the response with the `200` status

[Operation history](https://skmtc.dev/prometiam/apis/prometiam-risk-intelligence-api/changes/companies/:id/get.md)

---

[API](https://skmtc.dev/prometiam/apis/prometiam-risk-intelligence-api.md) · [All operations](https://skmtc.dev/prometiam/apis/prometiam-risk-intelligence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/prometiam/apis/prometiam-risk-intelligence-api/revisions/3ee0626d5a45?raw)
