Company Check API: identity, financials & SEC filings in 1 call
Coming soon to the StoreOne call answers "who is this company and what are its numbers?": legal name, LEI, registration number, status, legal form, registered address and (France, Finland, Estonia) industry and registration date, the key figures of its last fiscal years (revenue, operating profit, net income, equity, assets, cash, employees), the US listing and latest SEC filings, and for US banks the FDIC record. Every value links to the official record it came from. Built for AI agents doing research, KYB or due diligence, and for people who want a quick, sourced company profile.
Pricing (pay per event): $0.03 per company report. A lookup that finds nothing fails in seconds and costs nothing.
Questions agents ask
- “Who is Novo Nordisk legally, and what were its revenue and net income in the last three years? Cite your sources.”
Example
Input
{ "query": "Novo Nordisk", "country": "DK", "maxYears": 3 }Output
{
"schema_version": "1",
"query": "24256790",
"query_type": "cvr",
"country": "DK",
"identity": {
"legal_name": "NOVO NORDISK A/S",
"country": "DK",
"registration_number": "24256790",
"register": "Erhvervsstyrelsen (CVR)",
"lei": "549300DAQ1CVT6CXN342",
"lei_status": "ISSUED",
"status": "active",
"legal_form": "Aktieselskab",
"registered_address": "Novo Alle 1, 2880 Bagsværd, DK",
"website": null,
"source_urls": {
"legal_name": "https://api.gleif.org/api/v1/lei-records/549300DAQ1CVT6CXN342",
"registered_address": "https://api.gleif.org/api/v1/lei-records/549300DAQ1CVT6CXN342"
}
},
"financials": {
"basis": "Consolidated annual report of a listed company (ESEF, IFRS figures).",
"source": "filings.xbrl.org",
"years": [
{
"period_end": "2025-12-31",
"fiscal_year_start": "2025-01-01",
"currency": "DKK",
"revenue": 309064000000,
"operating_profit": 127658000000,
"net_income": 102434000000,
"total_equity": 194047000000,
"total_assets": 542902000000,
"cash_and_equivalents": 26464000000,
"employees": null,
"concepts": { "revenue": "ifrs-full:Revenue", "net_income": "ifrs-full:ProfitLoss" },
"source_url": "https://filings.xbrl.org/549300DAQ1CVT6CXN342/2025-12-31/ESEF/DK/0/NOVO-2025-12-31-1-en.json",
"report_url": "https://filings.xbrl.org/549300DAQ1CVT6CXN342/2025-12-31/ESEF/DK/0/NOVO-2025-12-31-1-en/reports/NOVO-2025-12-31-1-en.xhtml"
}
]
},
"us": null,
"candidates": [],
"not_found": [
{
"section": "us",
"reason": "Not a US SEC registrant (no US ticker or CIK, and GLEIF does not list it as a US company)."
}
],
"warnings": [],
"sources": [
{ "section": "financials", "name": "filings.xbrl.org", "url": "https://filings.xbrl.org/549300DAQ1CVT6CXN342/2025-12-31/ESEF/DK/0/NOVO-2025-12-31-1-en.json" },
{ "section": "identity", "name": "GLEIF", "url": "https://api.gleif.org/api/v1/lei-records/549300DAQ1CVT6CXN342" }
],
"retrieved_at": "2026-11-05T20:50:37+00:00",
"duration_seconds": 2.0
}What you get
| Field | Type | Meaning |
|---|---|---|
schema_version | string | Output schema version. |
query | string | The query as given. |
query_type | string | How the query was read: lei, uk (UK company number), cvr, ee (Estonian registry code), orgnr (Norwegian org number), siren (French SIREN, also for a SIRET), ytunnus (Finnish Business ID), fdic (FDIC certificate number), cik, ticker or name. |
country | string | null | ISO 3166 alpha-2 country of the company (its home country, also for a foreign company listed in the US). null when unknown. |
identity | object | null | Who the company is: from the national register, GLEIF, the SEC and (US banks) the FDIC (first source that has a value wins). null if no source had a record or the section was not requested. |
financials | object | null | Key figures of the last maxYears fiscal years, each with its source filing: a listed company's ESEF report first, else the national register, else the company's SEC XBRL filings (10-K, 20-F, 40-F). null when none were found (see not_found). |
us | object | null | The US listing: SEC EDGAR data for US issuers and for foreign companies listed in the US (by ticker, CIK, or a US company in GLEIF that the SEC lists). null otherwise. |
bank | object | null | US banks: the FDIC-insured bank of this company from the FDIC BankFind Suite (company level only). Filled for a US bank (found by FDIC certificate, LEI or name) and for a US bank holding company (its largest bank). Requested with the us section. null otherwise. |
candidates | array | When a name (or a number valid in two registers) matches several companies: the top 3 (legal_name, country, lei, lei_status, registration_number, score 0-1). The report is for the first; re-run with its LEI or registration number (and country) to pick another. Empty when the match was clear. |
not_found | array | Requested sections without data, each {section, reason} in plain words an agent can relay. |
warnings | array | Sources that failed or timed out, and other caveats, in plain words. The rest of the report is still valid. |
sources | array | Every source used, each {section, name, url}. |
retrieved_at | string | When the report was made (ISO 8601, UTC). |
duration_seconds | number | How long the lookup took. |
Use with AI agents (MCP)
Add this URL to your MCP client (Claude, Cursor, VS Code, ...) to load the Actor as a tool through the Apify hosted MCP server. It signs you in with OAuth or accepts Authorization: Bearer <APIFY_TOKEN>. It works once the Actor is live on the Apify Store.
https://mcp.apify.com?tools=bosco_labs/company-check
For “Who is Novo Nordisk legally, and what were its revenue and net income in the last three years? Cite your sources.” the agent passes:
{ "query": "Novo Nordisk", "country": "DK", "maxYears": 3 }
one small JSON item (typically 3-8 KB), stable snake_case fields, ISO dates, numbers as numbers, null for unknown, a source URL per value. not_found and warnings say in plain words what is missing and why, so the agent never has to guess. Typical lookup time is 1-5 seconds after start-up; each source has a 20-second limit.
Or call the Apify API: POST https://api.apify.com/v2/acts/bosco_labs~company-check/run-sync-get-dataset-items with the input as JSON body. Cost: $0.03 per report.
HTTP API
Also on the Bosco Labs HTTP API (beta, test mode): same input and same rows as the Actor, $0.03 per company report from prepaid credits (max 1 report per call). Get a key with a $0.50 free trial; see prices and limits.
curl https://api.boscolabs.dev/v1/company-check \
-H "Authorization: Bearer $BOSCO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "Novo Nordisk", "country": "DK", "maxYears": 3}'
Input fields
| Field | Type | Meaning |
|---|---|---|
query | string (required) | The company to check: a name (e.g. "Novo Nordisk") or an identifier: LEI (20 characters, e.g. "724500Y6DUVHQD6OXN27"), UK company number ("00445790", "SC123456"), Danish CVR ("24256790"), Norwegian org number ("923609016"), French SIREN (9 digits, "552032534") or SIRET (14 digits, "55203253400703"), Finnish Business ID with its dash ("0112038-9"), Estonian registry code (8 digits, "12417834"), US ticker in capitals or with $ ("AAPL", "$brk.b"; foreign companies listed in the US resolve to their home country), SEC CIK ("320193") or FDIC certificate of a US bank ("FDIC:628"). The type is detected from format and check digits; an 8-digit number valid in several registers (UK, Danish CVR, Estonian) is settled by asking them, and country decides when given. Required. |
country | string | ISO 3166 alpha-2 country code to disambiguate, e.g. "DK", "GB", "NO", "FR", "FI", "EE", "NL", "US". With a name it limits the search to that country and, for NO, FR, FI and EE, also searches the national register (most companies there have no LEI); with a number it says which register the number belongs to (e.g. "GB" for a UK number without a leading zero, "EE" for an Estonian registry code, "FI" for a Business ID typed without its dash). Empty = detect from the query. |
maxYears | integer | How many fiscal years of key figures to return, newest first, e.g. 3. Default 3, maximum 10. Norway's open register holds the last 3 years only. The price is the same for any number of years. |
include | array | Which sections to fill: any of "identity", "financials", "us" (SEC filings of US issuers), e.g. ["identity", "financials"]. Default (or empty) = all three. Fewer sections = fewer sources called, slightly faster; the price is the same. |
Sources, licence and limits
Which countries are covered?
| Country | Identity | Financials |
|---|---|---|
| UK | Companies House profile + GLEIF | Companies House accounts (digital iXBRL filings, any year); listed companies also via ESEF |
| Denmark | GLEIF, or the name in the filed accounts | Erhvervsstyrelsen annual reports (all years); listed companies' consolidated ESEF reports first |
| Norway | Brønnøysund register + GLEIF | Regnskapsregisteret, the company's own accounts (last 3 years); listed companies' consolidated ESEF reports first |
| France | Sirene/RNE via the government's Recherche d'entreprises API (legal name, legal form, status, creation date, head-office address, NAF code, employee band) + GLEIF; sole traders are refused | Listed companies' consolidated ESEF reports only (see below) |
| Finland | PRH Trade Register (YTJ open data: name, form, status, registration date, address, TOL code, website) + GLEIF | PRH digital (XBRL) statements, the company's own accounts (about 5% of filers); listed companies' consolidated ESEF reports first |
| Estonia | e-Business Register: live record (name, status, address) + weekly open-data index (legal form, VAT number, first entry date, EMTAK activity) + GLEIF; sole traders (FIE) are refused | Annual-report key figures from RIK open data, the company's own accounts, last 3 reported years; listed companies' ESEF reports first |
| Other EU/EEA (NL, BE, SE, IT, ES, ...) | GLEIF | Listed companies' ESEF annual reports from filings.xbrl.org (Germany is not in that index) |
| US | GLEIF + SEC EDGAR; banks also FDIC BankFind (bank section) | SEC XBRL figures from 10-K filings (consolidated, US GAAP); banks: latest quarterly FDIC figures in bank.financials |
| Foreign companies listed in the US (ASML, SAP, Toyota, ...) | Home country via GLEIF, plus the US listing in us | ESEF or national register first, else the SEC XBRL figures of their 20-F/40-F filings |
| Anywhere else | GLEIF (companies with an LEI) | None |
Why is financials empty? See not_found: the company may file no machine-readable accounts (paper/PDF filings, very small companies, countries without an open accounts register), or it is a US company that files no 10-K (US banks: see bank.financials). Unlisted French companies are not covered: INPI's annual-accounts API needs an account, and the open INPI-derived "Ratios financiers" dataset files figures under the wrong fiscal year (checked against Danone's ESEF reports), so it is not used. Most Finnish companies file paper or PDF accounts, which are not open data.
Why is revenue null? The company didn't tag it: small UK and Danish companies often publish no profit and loss account or only gross profit. employees is usually null for ESEF reports, which rarely tag it.
A name gave the wrong company. Names are matched against GLEIF's register of legal entities (companies with an LEI; with country NO, FR or FI also the national register). When several entities share the name, a listed company (one filing ESEF reports) goes first, and candidates and a warning say there was a choice; without country that happens for any name shared by several entities. Check candidates, add country, or pass the LEI or registration number, which always resolve exactly. Write a US ticker in capitals (COKE) or with $; Coke is searched as a name.
Are figures consolidated? ESEF reports (listed companies) are consolidated group figures. National register accounts are the company's own statutory accounts; for Norway they are explicitly the company's own accounts, not the group's. financials.basis says which.
Insider buys and sells? This version counts Form 4 filings in the last 90 days (buys and sells together). For each transaction, use SEC Insider Trades.
Need more? Full statements with 16-25 metrics per year: Company Financials API (UK, DK, NO) and EU Annual Reports API (ESEF). Every SEC filing: SEC Filings Feed.
Personal data? Company-level data only. Names of directors, officers, board members, auditors or shareholders are never requested or output (the French register's dirigeants are never requested; Finland's open data has no persons, and the address's c/o line is dropped; the Estonian persons, shareholder and beneficial-owner files are never downloaded). Estonian sole traders (FIE) are left out of the index and name search, and a lookup by their code fails without a charge. Sole traders are natural persons: Norwegian ones are excluded from name search, French ones (entrepreneurs individuels) from name search and from lookups by SIREN, which fail without a charge; Finland's open data holds none. Sole proprietors with an LEI (GLEIF category SOLE_PROPRIETOR, any country) are never candidates and are refused without a charge.
How fresh is it? Live: every call reads the sources directly (GLEIF is updated several times a day, registers when companies file). Exception: Estonia's legal form, VAT number, activity and figures come from a weekly index of the register's daily open-data files (the date is in sources[].name); name, status and address are read live. FDIC figures are quarterly (Call Reports).
Licences and attribution? French data: Sirene (INSEE) and RNE (INPI) via the government's API Recherche d'entreprises, under the Licence Ouverte 2.0; each report's sources names the source and the date of its last update. Finnish data: PRH (Finnish Patent and Registration Office) open data under CC BY 4.0; not endorsed by PRH, and figures are re-labelled into the fields above, otherwise unchanged. Estonian data: e-Business Register (Registrite ja Infosüsteemide Keskus, RIK) open data under CC BY 4.0; figures re-labelled into the fields above and EMTAK labels kept in Estonian; not endorsed by RIK. US bank data: FDIC BankFind Suite (US government data); not endorsed by the FDIC. GLEIF data is CC0.