Bosco Labs

Tools › Companies

Company Check API: identity, financials & SEC filings in 1 call

Coming soon to the Store

One 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.

Price$0.03 per report
DomainCompanies
Call itApify API, MCP or HTTP API

Pricing (pay per event): $0.03 per company report. A lookup that finds nothing fails in seconds and costs nothing.

Coming soon to the Apify StoreAsk for early access

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

FieldTypeMeaning
schema_versionstringOutput schema version.
querystringThe query as given.
query_typestringHow 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.
countrystring | nullISO 3166 alpha-2 country of the company (its home country, also for a foreign company listed in the US). null when unknown.
identityobject | nullWho 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.
financialsobject | nullKey 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).
usobject | nullThe 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.
bankobject | nullUS 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.
candidatesarrayWhen 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_foundarrayRequested sections without data, each {section, reason} in plain words an agent can relay.
warningsarraySources that failed or timed out, and other caveats, in plain words. The rest of the report is still valid.
sourcesarrayEvery source used, each {section, name, url}.
retrieved_atstringWhen the report was made (ISO 8601, UTC).
duration_secondsnumberHow 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

FieldTypeMeaning
querystring (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.
countrystringISO 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.
maxYearsintegerHow 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.
includearrayWhich 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?

CountryIdentityFinancials
UKCompanies House profile + GLEIFCompanies House accounts (digital iXBRL filings, any year); listed companies also via ESEF
DenmarkGLEIF, or the name in the filed accountsErhvervsstyrelsen annual reports (all years); listed companies' consolidated ESEF reports first
NorwayBrønnøysund register + GLEIFRegnskapsregisteret, the company's own accounts (last 3 years); listed companies' consolidated ESEF reports first
FranceSirene/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 refusedListed companies' consolidated ESEF reports only (see below)
FinlandPRH Trade Register (YTJ open data: name, form, status, registration date, address, TOL code, website) + GLEIFPRH digital (XBRL) statements, the company's own accounts (about 5% of filers); listed companies' consolidated ESEF reports first
Estoniae-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 refusedAnnual-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, ...)GLEIFListed companies' ESEF annual reports from filings.xbrl.org (Germany is not in that index)
USGLEIF + 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 usESEF or national register first, else the SEC XBRL figures of their 20-F/40-F filings
Anywhere elseGLEIF (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.

Coming soon to the Apify StoreAsk for early access