UK Companies House Enricher
Pricing
from $1.30 / 1,000 results
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
Maintained by CommunityActor stats
2
Bookmarked
30
Total users
4
Monthly active users
2 days ago
Last modified
Categories
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
| Industry | Application |
|---|---|
| Sales & BD | Qualify UK prospects with financial health data before outreach |
| Due Diligence | Verify company status, directors, and shareholders |
| Market Research | Analyse competitors' financial trends over 5 years, listed groups included |
| Compliance / KYC | Identify persons with significant control and verify company details |
| Lead Enrichment | Enrich CRM data with official UK company information |
📥 Input parameters
| Parameter | Type | Description |
|---|---|---|
query | string | UK company number (e.g. 00445790) or company name (e.g. Tesco) |
queries | string[] | Multiple company numbers or names for batch enrichment |
maxResults | integer | Max companies returned per name search (default: 10, max: 50) |
readScannedAccounts | boolean | Read 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
| Category | Fields |
|---|---|
| Identifiers | companyNumber, companyName, companyStatus, companyType |
| Address | address, locality, region, postalCode, country |
| Activity | sicCodes, sicLabels |
| Dates | dateOfCreation, dateOfCessation |
| Officers | name, role, appointedOn, nationality, countryOfResidence, occupation, dateOfBirth |
| Shareholders (PSC) | name, naturesOfControl, notifiedOn, nationality |
| Financials | periodEnd, currency, scope, revenue, profitBeforeTax, profitAfterTax, totalAssets, totalLiabilities, cash, netWorth, totalCurrentAssets, totalCurrentLiabilities, totalAssetsLessCurrentLiabilities, employees, change percentages, financialsNote |
| Financials source | financialsSource (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 History | up to 5 years: year, periodEnd, cash, netWorth, assets, liabilities, plus totalAssets, totalLiabilities, revenue and profitAfterTax when the source states them |
| Accounts | accountsNextDue, accountsOverdue, lastAccountsDate |
| Links | companiesHouseUrl |
| Metadata | query, 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 ApifyClientclient = 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
| Metric | Value |
|---|---|
| Speed | About 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 accounts | With 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 processing | Up to 50 companies per run |
| Financial figures | Companies 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
- Use company numbers, More precise than name search, returns exactly one result
- Pad short numbers, Company numbers should be 8 digits (e.g.
445790→00445790) - SC/NI prefixes, Scottish and Northern Irish companies use prefixes like
SC123456 - 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 (
financialsSourcetells you which). For large unlisted companies filing scanned paper accounts, Read scanned accounts (on by default) reads them. New companies get afinancialsNoteinstead. Micro entities do not publish their cash, socashisnullfor them - Compare like with like,
scopeisgroupwhen the figures cover the company and its subsidiaries, andcurrencyfollows 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