Company Financials API: UK, Denmark & Norway accounts + LEI avatar

Company Financials API: UK, Denmark & Norway accounts + LEI

Pricing

from $40.00 / 1,000 company-year of financials

Go to Apify Store
Company Financials API: UK, Denmark & Norway accounts + LEI

Company Financials API: UK, Denmark & Norway accounts + LEI

Company financials (revenue, profit, equity, assets, cash, employees) of private and public companies from official accounts: UK Companies House (all digital years), Denmark (all years), Norway Brønnøysund (last 3 years). Look up by company number, CVR or org number; adds LEI and a source per value.

Pricing

from $40.00 / 1,000 company-year of financials

Rating

0.0

(0)

Developer

Bosco Labs

Bosco Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 minutes ago

Last modified

Share

Get normalized financials of UK, Danish and Norwegian companies, including private ones, straight from the official accounts they file with Companies House (UK), Erhvervsstyrelsen (Denmark) and the Brønnøysund Register of Company Accounts (Norway): revenue, gross profit, operating profit, net income, equity, net assets, current assets, cash, creditors and employees. Every number comes with the exact fact or field it was taken from, so you can audit any value. Each row also gets the company's LEI from GLEIF when it has one. Look up companies by company number, CVR or organisation number, or get the newest filings. For credit checks, KYB, M&A and lead research, and for AI agents.

Pricing (pay per event): $0.04 per company-year ($40 per 1,000 rows). Rows where the filing tags no figures at all (e.g. some dormant companies) are skipped and not charged. The Actor stops at your max charge limit.

These registers publish machine-readable accounts of millions of limited companies, not just listed ones. This Actor reads those filings and returns one clean row per company per fiscal year, in the same format for every country. No scraping, no logins, no API keys.

What you get

One row per company per fiscal year:

{
"country": "GB",
"company_number": "03117531",
"company_name": "MNM Property Services Limited",
"lei": null,
"lei_status": null,
"period_end": "2026-03-31",
"fiscal_year_start": "2025-04-01",
"currency": "GBP",
"revenue": 12961072,
"gross_profit": 4267732,
"operating_profit": 1386710,
"net_income": 952557,
"current_assets": 4342436,
"cash_and_equivalents": 1011336,
"total_equity": 1345970,
"current_liabilities": 3339068,
"employees": 98,
"metrics_found": 13,
"sources": {
"revenue": {
"concept": "ns5:TurnoverRevenue",
"fact_id": null,
"context_ref": "FY_31_03_2026",
"period": "2025-04-01/2026-03-31",
"unit": "iso4217:GBP",
"decimals": 0
}
},
"registry_url": "https://find-and-update.company-information.service.gov.uk/company/03117531/filing-history",
"source_document": "Prod223_4344_03117531_20260331.html",
"source_url": "https://download.companieshouse.gov.uk/Accounts_Bulk_Data-2026-11-05.zip",
"retrieved_at": "2026-11-05T15:23:16+00:00"
}

Real output (shortened). Danish rows have cvr instead of company_number, a report_url to the published annual report, and figures in the reporting currency (usually DKK).

A Norwegian row, with its LEI (real output, shortened). For Norway, sources names the field in the register's JSON record at source_url:

{
"country": "NO",
"org_number": "923609016",
"company_name": "EQUINOR ASA",
"lei": "OW6OFBNCKXC4US5C7523",
"lei_status": "ISSUED",
"period_end": "2025-12-31",
"fiscal_year_start": "2025-01-01",
"currency": "USD",
"revenue": 61999000000,
"operating_profit": 5563000000,
"net_income": 5731000000,
"total_assets": 103432000000,
"total_equity": 39182000000,
"current_liabilities": 36924000000,
"employees": null,
"metrics_found": 12,
"sources": {
"total_equity": {
"concept": "egenkapitalGjeld.egenkapital.sumEgenkapital",
"period": "2025-01-01/2025-12-31",
"unit": "iso4217:USD"
}
},
"report_url": "https://data.brreg.no/regnskapsregisteret/regnskap/aarsregnskap/kopi/923609016/2025",
"registry_url": "https://virksomhet.brreg.no/nb/oppslag/enheter/923609016",
"source_url": "https://data.brreg.no/regnskapsregisteret/regnskap/923609016/7192427"
}

All figure fields: revenue, gross_profit, operating_profit, profit_before_tax, net_income, total_assets, fixed_assets, current_assets, cash_and_equivalents, total_equity, net_assets, net_current_assets, total_liabilities, current_liabilities (UK: creditors due within one year), noncurrent_liabilities (UK: creditors due after one year), employees. A field is null when the company didn't tag it. Identifier fields: company_number (UK), cvr (DK), org_number (NO), enterprise_number (BE), plus lei and lei_status (GLEIF registration status, e.g. ISSUED or LAPSED). Nothing is estimated, except total_liabilities, which is total assets minus total equity when it isn't tagged; sources then says {"derived": "total_assets - total_equity"}.

Input

{ "countries": ["GB", "DK", "NO"], "companyNumbers": ["03117531"], "cvrNumbers": ["24256790"], "orgNumbers": ["923609016"], "maxResults": 10 }
FieldMeaning
countriesAny of GB, DK, NO, BE, for the newest-filings mode. Default GB, DK, NO. Ignored when you pass numbers: then only the numbers' countries are read
companyNumbersUK company numbers (e.g. 03117531, SC123456)
cvrNumbersDanish CVR numbers (e.g. 24256790)
orgNumbersNorwegian organisation numbers (e.g. 923609016)
enterpriseNumbersBelgian enterprise numbers (e.g. 0403.170.701), see Coverage
maxResultsMax company-years per country, newest filings first. Default 5
enrichLeiLook up each company's LEI at GLEIF. Default on

Running without input returns the 5 newest UK filings, the 5 newest Danish filings, and the latest accounts of 5 Norwegian companies whose accounts were registered in the last 2 days.

Coverage: what to expect

  • UK: by company number, accounts of any year filed electronically (iXBRL), newest first, from the Companies House API (about 75% of all accounts are filed electronically). Paper or PDF-only filings (mostly older ones) are skipped and cost nothing. Without company numbers, the newest filings come from Companies House's free daily files (last ~60 days). Most small UK companies file filleted or micro-entity accounts without a profit and loss account, so expect balance-sheet figures (net assets, equity, current assets, creditors, employees) for them and revenue/profit only for companies that publish a P&L.
  • Denmark: every annual report filed digitally with Erhvervsstyrelsen, all years. Small (class B) companies may publish gross profit instead of revenue. Listed companies are read from their IFRS (ESEF) filing.
  • Norway: the last 3 fiscal years of every company that files accounts with the Brønnøysund Register (Regnskapsregisteret), from its open API. These are the company's own accounts, not group accounts, and the register's key figures only: revenue (sales revenue), operating profit, profit before tax, net income, assets, cash, equity and debt. The data has no employee count and no gross profit. Sole proprietorships (ENK) are skipped, as their accounts are a person's. Contains data under the Norwegian licence for Open Government data (NLOD) made available by Brønnøysundregistrene.
  • Belgium: the National Bank of Belgium only publishes filed accounts as data through web services that need a subscription key. BE works only when the Actor owner has set one up, needs enterpriseNumbers, and is skipped otherwise.
  • LEI: looked up at GLEIF by registration number and country. Most small companies have no LEI, so lei is usually null for them.

Use cases

  • KYB, credit and supplier checks: latest filed equity, net assets, cash and creditors of private companies, by company number, CVR or org number, with the LEI where there is one.
  • Lead lists and market maps: the newest filings every day, with size indicators (employees, net assets, revenue where published).
  • Data pipelines: schedule the Actor daily and export to CSV, Excel, Sheets or your warehouse.
  • AI agents: small, predictable JSON with a source for every value.

Use with AI agents (MCP)

Agents can call this Actor as a tool through the Apify MCP server. Add this server URL to your MCP client (Claude, Cursor, VS Code, ...):

https://mcp.apify.com?tools=bosco_labs/company-accounts

It loads this Actor as a tool, plus the tools that read its results (get-actor-run, get-dataset-items). The hosted server signs you in with OAuth, or accepts your Apify token as Authorization: Bearer <APIFY_TOKEN>. On the default server (https://mcp.apify.com), agents can also find this Actor with search-actors and run it with call-actor.

Example prompts this Actor answers:

  • "What were Novo Nordisk's revenue and equity in its latest Danish annual report?"
  • "Get the last three years of Equinor ASA's own accounts from the Norwegian register."
  • "What is the LEI and the latest net assets of UK company 03117531?"

For the first one, the agent passes:

{"cvrNumbers": ["24256790"], "maxResults": 1}

Output for agents: stable, typed JSON, one row per company per fiscal year. Every row has schema_version and a source_url pointing to the official filing or register record (plus registry_url and a sources entry per value), so the agent can cite its source. With registration numbers, only their countries are read, so a lookup never returns other companies; bad numbers fail at once with a valid example.

Cost: $0.04 per company-year, billed to the Apify account the MCP server is signed in with.

FAQ

Are the numbers in thousands? No. All values are in full currency units: the Actor applies each fact's scale and sign as tagged.

Why is revenue empty? The company didn't publish it (common for small UK and Danish companies, see above), or tagged it with a non-standard concept. metrics_found tells you how complete a row is.

Can I get older UK accounts? Yes, by company number: every year with digital (iXBRL) accounts. Older paper or PDF-only filings have no data to read and are skipped.

Why is lei null? The company has no LEI (most small companies don't), or GLEIF has it under a different registration number. lei_status shows whether an LEI found is still ISSUED or e.g. LAPSED (not renewed).

Are Norwegian figures consolidated? No: rows hold the company's own accounts. Equinor's row, for example, is the parent company, not the group.

Is Belgium supported? Only when the Actor owner has configured access to the National Bank of Belgium's web services; otherwise BE is skipped with a log message and costs nothing.

Personal data? Rows contain company-level figures and the company name only. Names of directors, board members, auditors or meeting chairs, addresses and free-text notes are never output. Norwegian sole proprietorships are skipped.

Legal basis? The accounts are public register filings. See LEGAL.md in the source for the terms checked.