UK Companies House Enricher avatar

UK Companies House Enricher

Pricing

from $1.30 / 1,000 results

Go to Apify Store
UK Companies House Enricher

UK Companies House Enricher

Enrich any UK company with profile, directors, shareholders, and financial data (cash, net worth, assets, liabilities). 5-year history included. Proxies included.

Pricing

from $1.30 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

2

Bookmarked

30

Total users

4

Monthly active users

2 days ago

Last modified

Share

🏢 UK Companies House Enricher

Enrich any UK company in seconds. Profile, directors, shareholders, and financial figures with up to 5 years of history, from small companies to FTSE 100 groups.

Enrich any UK company by number or name. Get company profile, directors, shareholders, and financial figures read from official filings: the annual accounts filed at Companies House for small and micro companies (cash, net worth, current assets, current liabilities, employees), and for listed groups such as Tesco, AstraZeneca or Barclays, the annual financial report they publish as data (revenue, profit, total assets, total liabilities, equity, cash), with up to 5 years of history. Large private companies and banks that file their accounts on paper, such as Revolut or Monzo, get their figures too when you turn on Read scanned accounts: they are read from the filed accounts and kept only when the balance sheet and income statement add up.

✨ Why use this scraper?

  • 🌐 Proxies included, No need to configure or pay for proxies separately
  • ⚡ Fast, about 3 to 4 seconds per company, financial history included, 5 to 20 seconds for a listed group whose annual reports are read
  • 📊 Financial figures included, Cash, net worth, current assets and liabilities, employees, up to 5 balance sheets, taken from the accounts each company filed
  • 🏛️ Listed groups covered too, Revenue, profit before and after tax, total assets and liabilities of the consolidated group, read from the annual financial report each listed company publishes, with the source of every row named
  • 🏦 Large private companies too, Revolut, Monzo, JCB and other companies that file their accounts on paper: with Read scanned accounts (on by default) their revenue, profit, total assets, liabilities, equity and cash are read from the filed accounts, kept only when every line adds up to the printed totals
  • 👤 Directors & shareholders, Active officers with nationality, role, appointment date
  • 🔍 Flexible search, Company number or name, single or batch

🎯 Use cases

IndustryApplication
Sales & BDQualify UK prospects with financial health data before outreach
Due DiligenceVerify company status, directors, and shareholders
Market ResearchAnalyse competitors' financial trends over 5 years, listed groups included
Compliance / KYCIdentify persons with significant control and verify company details
Lead EnrichmentEnrich CRM data with official UK company information

📥 Input parameters

ParameterTypeDescription
querystringUK company number (e.g. 00445790) or company name (e.g. Tesco)
queriesstring[]Multiple company numbers or names for batch enrichment
maxResultsintegerMax companies returned per name search (default: 10, max: 50)
readScannedAccountsbooleanRead scanned accounts (slower): also read the figures of companies whose accounts are filed as scanned paper documents (default: on, turn it off for faster runs)

📊 Output data

Company example

A real row (company 08500000, run of 24 October 2026, officers and shareholders shortened):

{
"companyNumber": "08500000",
"companyName": "MINHOCO 21 LIMITED",
"companyStatus": "active",
"companyType": "ltd",
"address": "Unit 3b Airport Industrial Estate, Kingston Park",
"locality": "Newcastle Upon Tyne",
"postalCode": "NE3 2EF",
"sicCodes": ["10710"],
"dateOfCreation": "2013-04-23",
"officers": [
{
"name": "LIDDICOAT, Jon Michael",
"role": "director",
"appointedOn": "2017-06-29",
"nationality": "New Zealander",
"countryOfResidence": "England",
"dateOfBirth": "9/1979"
}
],
"personsWithSignificantControl": [
{
"name": "Northern Bakery Holdings Ltd",
"naturesOfControl": ["ownership-of-shares-75-to-100-percent"],
"notifiedOn": "2025-01-02"
}
],
"financials": {
"periodEnd": "2025-12-31",
"currency": "GBP",
"cash": 49025,
"netWorth": 285794,
"totalCurrentAssets": 471801,
"totalCurrentLiabilities": 425928,
"totalAssetsLessCurrentLiabilities": 308533,
"employees": 54,
"cashChange": "5871.38%",
"netWorthChange": "16.51%",
"assetsChange": "22.75%",
"liabilitiesChange": "-0.48%"
},
"financialHistory": [
{ "year": "2021", "periodEnd": "2021-12-31", "cash": 100706, "netWorth": 367156, "assets": 528723, "liabilities": 274457 },
{ "year": "2022", "periodEnd": "2022-12-31", "cash": 164147, "netWorth": 393879, "assets": 492277, "liabilities": 184919 },
{ "year": "2023", "periodEnd": "2023-12-31", "cash": 122322, "netWorth": 338297, "assets": 420089, "liabilities": 200614 },
{ "year": "2024", "periodEnd": "2024-12-31", "cash": 821, "netWorth": 245297, "assets": 384355, "liabilities": 427965 },
{ "year": "2025", "periodEnd": "2025-12-31", "cash": 49025, "netWorth": 285794, "assets": 471801, "liabilities": 425928 }
],
"financialsSource": "companies-house-accounts",
"financialsSourceUrl": "https://find-and-update.company-information.service.gov.uk/company/08500000/filing-history/MzU0ODE1ODUyMWFkaXF6a2N4/document?format=xhtml&download=0",
"accountsNextDue": "2027-09-30",
"lastAccountsDate": "2025-12-31",
"companiesHouseUrl": "https://find-and-update.company-information.service.gov.uk/company/08500000",
"dataSources": ["companies-house-api", "companies-house-accounts"],
"scrapedAt": "2026-10-24T19:46:36Z"
}

Small company accounts rarely include the income statement and never a total assets line, so revenue, profitBeforeTax, profitAfterTax, totalAssets and totalLiabilities are null for this company.

Listed group example

Tesco PLC files its accounts at Companies House as a scanned document, and its annual financial report as data. The figures come from that report, for the whole group ("scope": "group"), in the currency the group reports in (AstraZeneca and HSBC report in US dollars, Unilever and Vodafone in euros):

{
"companyNumber": "00445790",
"companyName": "TESCO PLC",
"financials": {
"periodEnd": "2026-02-28",
"currency": "GBP",
"scope": "group",
"revenue": 73712000000,
"profitBeforeTax": 2403000000,
"profitAfterTax": 1787000000,
"totalAssets": 39474000000,
"totalLiabilities": 28017000000,
"cash": 2515000000,
"netWorth": 11457000000,
"totalCurrentAssets": 8483000000,
"totalCurrentLiabilities": 14329000000,
"totalAssetsLessCurrentLiabilities": 25145000000,
"employees": null,
"cashChange": "11.53%",
"netWorthChange": "-1.76%",
"assetsChange": "-4.21%",
"liabilitiesChange": "3.68%"
},
"financialHistory": [
{ "year": "2022", "periodEnd": "2022-02-26", "cash": 2345000000, "netWorth": 15632000000, "assets": 11985000000, "liabilities": null, "totalAssets": 49137000000 },
{ "year": "2023", "periodEnd": "2023-02-25", "cash": 2465000000, "netWorth": 12225000000, "assets": 12469000000, "liabilities": null, "totalAssets": 45868000000, "revenue": 65322000000, "profitAfterTax": 736000000 },
{ "year": "2024", "periodEnd": "2024-02-24", "cash": 2340000000, "netWorth": 11665000000, "assets": 16606000000, "liabilities": null, "totalAssets": 47039000000, "revenue": 68187000000, "profitAfterTax": 1192000000 },
{ "year": "2025", "periodEnd": "2025-02-22", "cash": 2255000000, "netWorth": 11662000000, "assets": 8856000000, "liabilities": 13820000000, "totalAssets": 38890000000, "totalLiabilities": 27228000000, "revenue": 69916000000, "profitAfterTax": 1630000000 },
{ "year": "2026", "periodEnd": "2026-02-28", "cash": 2515000000, "netWorth": 11457000000, "assets": 8483000000, "liabilities": 14329000000, "totalAssets": 39474000000, "totalLiabilities": 28017000000, "revenue": 73712000000, "profitAfterTax": 1787000000 }
],
"financialsSource": "esef-annual-report",
"financialsSourceUrl": "https://filings.xbrl.org/2138002P5RNKC5W2JZ46/2026-02-28/ESEF/GB/0/2138002P5RNKC5W2JZ46-2026-02-28/reports/ixbrlviewer.html",
"dataSources": ["companies-house-api", "esef-annual-report"]
}

A figure the report does not state as such stays null: banks, for instance, report no revenue line and no current assets. When a group states its turnover under another name (GSK, for instance), revenue is filled only when its gross profit plus its cost of sales adds up exactly to that one line; otherwise it stays null rather than show a part of the revenue as the whole.

Large private company with scanned accounts

Large private companies and banks that are not listed, such as Revolut or Monzo, file their accounts on paper, and Companies House publishes them as scanned page images. With Read scanned accounts (on by default), the balance sheet and the income statement are found in the filed accounts and their figures read. A figure set is kept only when it adds up: every line to its printed total, total assets to total liabilities plus equity. Otherwise it stays null with a note, rather than show a wrong number. The prior year comes with it when it adds up too:

{
"companyNumber": "08804411",
"companyName": "REVOLUT LTD",
"financials": {
"periodEnd": "2025-12-31",
"currency": "GBP",
"revenue": 3312191000,
"profitBeforeTax": 1447847000,
"profitAfterTax": 1108954000,
"totalAssets": 14051052000,
"totalLiabilities": 11401031000,
"cash": 6652015000,
"netWorth": 2650021000,
"cashChange": "0.81%",
"netWorthChange": "69.24%"
},
"financialHistory": [
{ "year": "2024", "periodEnd": "2024-12-31", "cash": 6598511000, "netWorth": 1565864000, "totalAssets": 10100403000, "totalLiabilities": 8534539000, "revenue": 2452594000, "profitAfterTax": 705143000 },
{ "year": "2025", "periodEnd": "2025-12-31", "cash": 6652015000, "netWorth": 2650021000, "totalAssets": 14051052000, "totalLiabilities": 11401031000, "revenue": 3312191000, "profitAfterTax": 1108954000 }
],
"financialsSource": "companies-house-accounts-ocr",
"financialsSourceUrl": "https://find-and-update.company-information.service.gov.uk/company/08804411/filing-history/MzUxMjkzNDA3NWFkaXF6a2N4/document?format=pdf&download=0",
"dataSources": ["companies-house-api", "companies-house-accounts-ocr"]
}

When only one of the two statements adds up, its figures are kept and financialsNote says which part is missing.

Company without figures

New companies have not filed any accounts yet, and a run with Read scanned accounts turned off leaves scanned accounts unread. Their profile, directors and shareholders are still returned, financials is null and financialsNote says why (here Revolut with the option off):

{
"companyNumber": "08804411",
"companyName": "REVOLUT LTD",
"financials": null,
"financialsNote": "The accounts on file are scanned images of paper documents, and the company files no digital annual report as a listed company. Turn on Read scanned accounts to read their figures.",
"financialHistory": [],
"dataSources": ["companies-house-api"]
}

🗂️ Data fields

CategoryFields
IdentifierscompanyNumber, companyName, companyStatus, companyType
Addressaddress, locality, region, postalCode, country
ActivitysicCodes, sicLabels
DatesdateOfCreation, dateOfCessation
Officersname, role, appointedOn, nationality, countryOfResidence, occupation, dateOfBirth
Shareholders (PSC)name, naturesOfControl, notifiedOn, nationality
FinancialsperiodEnd, currency, scope, revenue, profitBeforeTax, profitAfterTax, totalAssets, totalLiabilities, cash, netWorth, totalCurrentAssets, totalCurrentLiabilities, totalAssetsLessCurrentLiabilities, employees, change percentages, financialsNote
Financials sourcefinancialsSource (companies-house-accounts, esef-annual-report, or companies-house-accounts-ocr for figures read from scanned accounts), financialsSourceUrl (the document the figures were read from)
Financial Historyup to 5 years: year, periodEnd, cash, netWorth, assets, liabilities, plus totalAssets, totalLiabilities, revenue and profitAfterTax when the source states them
AccountsaccountsNextDue, accountsOverdue, lastAccountsDate
LinkscompaniesHouseUrl
Metadataquery, queryType, dataSources, scrapedAt

🚀 Examples

Single company by number

{
"query": "00445790"
}

Search by name

{
"query": "Revolut"
}

Batch enrichment

{
"queries": ["00445790", "02723534", "08804411", "Monzo", "Brewdog"]
}

Large private companies with scanned accounts

{
"queries": ["08804411", "09446231", "00561597"],
"readScannedAccounts": true
}

💻 Integrations

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("silentflow/uk-companies-house-enricher").call(
run_input={"query": "08500000"}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
fin = item.get("financials")
if fin and fin.get("netWorth") is not None:
print(f"{item['companyName']}: £{fin['netWorth']:,.0f} net worth at {fin['periodEnd']}")
else:
print(f"{item['companyName']}: {item.get('financialsNote')}")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('silentflow/uk-companies-house-enricher').call({
query: '08500000',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => console.log(item.financials
? `${item.companyName}: £${item.financials.netWorth} net worth at ${item.financials.periodEnd}`
: `${item.companyName}: ${item.financialsNote}`));

📈 Performance & limits

MetricValue
SpeedAbout 3 to 4 seconds per company (5 companies with 5 years of figures in 18 seconds). Listed groups take 5 to 20 seconds: Tesco, AstraZeneca, Barclays and Morrisons with 5 years of figures, plus Revolut and Monzo, in 34 to 60 seconds
Scanned accountsWith Read scanned accounts on, 1.5 to 7.5 minutes per company with scanned accounts, measured on 25 October 2026 at the default memory: Revolut 1.6 min, Monzo 4.6 min, J.C. Bamford Excavators 5.2 min, Arnold Clark 4.8 min, bet365 6.4 min. About 4 times faster with 1 GB of memory (Monzo in 71 seconds, bet365 in 2 minutes). Companies filing their accounts as data are not slowed down
Batch processingUp to 50 companies per run
Financial figuresCompanies whose accounts are filed as data (most small, micro and dormant companies), listed groups through their annual financial report, and with Read scanned accounts on, unlisted companies whose accounts are scanned paper documents, when their statements add up

💡 Tips for best results

  1. Use company numbers, More precise than name search, returns exactly one result
  2. Pad short numbers, Company numbers should be 8 digits (e.g. 445790 → 00445790)
  3. SC/NI prefixes, Scottish and Northern Irish companies use prefixes like SC123456
  4. Financial figures availability, Most small and micro companies file accounts as data and get figures, and listed groups get theirs from their annual financial report (financialsSource tells you which). For large unlisted companies filing scanned paper accounts, Read scanned accounts (on by default) reads them. New companies get a financialsNote instead. Micro entities do not publish their cash, so cash is null for them
  5. Compare like with like, scope is group when the figures cover the company and its subsidiaries, and currency follows the report: check both before comparing groups

❓ FAQ

Q: What is a company number? A: An 8-digit identifier assigned by Companies House to every UK registered company. You can find it on the Companies House website.

Q: Why are some financials missing? A: Figures come from the annual accounts each company files at Companies House, or for a listed group whose accounts there are scanned, from the annual financial report it publishes as data. Unlisted companies whose accounts are scanned paper documents (Revolut, Monzo and many large private groups) get their figures when Read scanned accounts is on and their statements add up; otherwise, like companies that have not filed accounts yet, they get financials: null with a financialsNote explaining why. A figure the source does not state stays null rather than 0: micro entities, for example, do not publish their cash, and banks have no revenue line.

Q: Which listed companies get figures? A: UK companies whose shares are listed on the London Stock Exchange's main market publish their annual financial report in an official digital format, FTSE 100 and FTSE 250 groups included: Tesco, AstraZeneca, GSK, HSBC, Barclays, Lloyds Banking Group, Shell, BP, Unilever, Vodafone, National Grid, BT, Greggs and many more. Use the number of the listed parent company: its figures are those of the consolidated group, as published in the report. A subsidiary that is not listed itself (Marks and Spencer P.L.C., the operating company of Marks and Spencer Group) files no such report.

Q: Can I trust figures read from scanned accounts? A: They are kept only when they add up: every line of the balance sheet and of the income statement to the totals printed in the accounts, and total assets to total liabilities plus equity. A statement where one amount cannot be read with certainty is left out (null, with a note) rather than shown wrong. financialsSource is companies-house-accounts-ocr and financialsSourceUrl links to the filed document, so every figure can be checked against the page it comes from.

Q: Which companies with scanned accounts get figures? A: Those whose balance sheet or income statement can be read in full and adds up. Measured on 25 October 2026: Revolut, Monzo and J.C. Bamford Excavators got their complete figures with the prior year, Arnold Clark and bet365 their balance sheet (with a note saying the income statement is left empty), and Virgin Atlantic got a note instead, its statements not adding up line by line. Reports with very small print or unusual layouts may not get figures.

Q: How recent are the financial figures? A: They come from the latest accounts on file, or the latest annual financial report for a listed group. financials.periodEnd gives the balance sheet date, lastAccountsDate the date of the latest accounts registered for the company, and financialsSourceUrl links to the document the figures were read from. When a group's latest annual report is older than its latest accounts (a company that has left the stock market, for instance), financialsNote gives both dates.

Q: Can I search by SIC code or location? A: Not yet, this enricher works by company number or name. Contact us if you need bulk search by industry or region.

📬 Support

We're building this scraper for you, your feedback makes it better for everyone!

  • 💡 Need a feature? Tell us what's missing and we'll prioritize it
  • ⚙️ Custom solutions: Contact us for enterprise integrations or high-volume needs

We respond to every issue, usually within 24 hours. Don't hesitate, even small suggestions help!

Check out our other scrapers: SilentFlow on Apify