Companies House Scraper — UK Company Search API | $3.50/1k
Pricing
from $2.80 / 1,000 results
Companies House Scraper — UK Company Search API | $3.50/1k
Scrape the UK Companies House register by company name, company number or URL: status, type, incorporation date, registered office, SIC codes, previous names, accounts and confirmation deadlines, and recent filing history with PDF links. No officers or PSCs.
Pricing
from $2.80 / 1,000 results
Rating
0.0
(0)
Developer
Raffy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
What does Companies House Scraper do?
Companies House Scraper turns the UK Companies House register into clean rows you can filter, join and export. Search by company name, or paste company numbers or Companies House URLs, and get one row per company: status, company type, incorporation and dissolution dates, registered office address and postcode, SIC codes, previous names, accounts and confirmation-statement deadlines, and the latest 25 filings with their PDF links.
It works as a Companies House API alternative: you need no API key, no account and no rate-limit bookkeeping. It reads the public register pages over plain HTTP, so runs are fast (20 companies with filing history in about 12 seconds) and cheap.
It collects company data only. Officers, directors and persons with significant control (PSCs) are never fetched, and their names are withheld from filing descriptions.
Use cases for this Companies House scraper
- B2B lead lists and market maps. Find every active UK company in a niche by name or keyword, then filter by SIC code, postcode, company type or age.
- KYB, onboarding and supplier checks. Confirm a company exists, is
Activeand is not overdue with its accounts before you sign or pay. - Credit and risk monitoring. Schedule a run over your customer list and watch for
Liquidation,Dissolved, overdue accounts or new insolvency filings. - CRM enrichment. Add the registered office, SIC codes and incorporation date to company records you already have.
- Deal sourcing and research. Pull the filing timeline (accounts, share changes, charges, resolutions) for the companies you track.
- Automation. Push rows to Google Sheets, Airtable, Supabase or your CRM with n8n, Make or Zapier.
What data you get from every company
| Field | Type | Description |
|---|---|---|
companyName | string | Registered company name |
companyNumber | string | 8-character company number, e.g. 00445790, SC117120 |
companyStatus | string | Active, Dissolved, Liquidation, Closed, ... |
companyType | string | e.g. Private limited Company, Public limited Company |
incorporationDate | string | Incorporation (or registration) date, YYYY-MM-DD |
dissolvedDate | string | Dissolution date, for dissolved companies |
registeredOfficeAddress | string | Registered office address as published |
postcode | string | UK postcode of the registered office |
sicCodes | array | SIC 2007 codes, e.g. ["47110"] |
natureOfBusiness | array | SIC codes with their descriptions |
previousNames | array | Former names with from and to dates |
nextAccountsMadeUpTo | string | Next accounts made-up-to date |
accountsDueBy | string | Next accounts due date |
lastAccountsMadeUpTo | string | Last accounts made-up-to date |
accountsOverdue | boolean | true when Companies House marks the accounts overdue |
nextConfirmationStatementDate | string | Next confirmation statement date |
confirmationStatementDueBy | string | Next confirmation statement due date |
lastConfirmationStatementDate | string | Last confirmation statement date |
confirmationStatementOverdue | boolean | true when the confirmation statement is overdue |
filingHistoryUrl | string | The company's filing history page |
filings | array | Latest filings (up to 25): date, type (form code such as AA, CS01, SH01), description, pdfUrl, pages |
filingsOnPage | integer | Number of filings in filings |
latestFilingDate | string | Date of the most recent filing |
filingHistoryError | string | Why the filing history could not be read (the company row is still delivered) |
url | string | Company page on Companies House |
status | string | ok, not_found or error (see below) |
error | string | Reason when status is not ok |
scrapedAt | string | ISO 8601 time of extraction |
All dates are YYYY-MM-DD. A missing field means Companies House does not publish it for that company (overseas establishments, for example, have no SIC codes or accounts dates). Nothing is guessed.
Result status (tri-state output)
status | Meaning | Billed? |
|---|---|---|
ok | The company was found and extracted. | Yes |
not_found | Companies House answered, but the company number does not exist or the search has no results. | No |
error | The page could not be read after retries (network error or a layout change). error says why. | No |
How to scrape Companies House with this Actor
- Click Try for free to open the Actor in Apify Console.
- Type a company name into Company name search, or paste company numbers or Companies House URLs into Company numbers or Companies House URLs.
- Set Maximum companies. The default of 20 is one page of search results.
- Click Start. Records appear in the dataset in real time. Export them as JSON, CSV, Excel, XML or HTML.
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | - | Company name or keyword, searched like the Companies House search box |
startUrls | array of strings | one example company | Company numbers (00445790, SC117120; 445790 is padded), company URLs (any tab) or search URLs (/search/companies?q=...) |
includeFilingHistory | boolean | true | Add the latest 25 filings to each row (one extra request per company, same price) |
maxItems | integer | 20 | Stop after this many company rows |
proxyConfiguration | object | off | Not needed; Companies House answers direct requests |
Search by name:
{"query": "tesco","maxItems": 20}
Look up a list of companies by number:
{"startUrls": ["00445790", "SC117120", "https://find-and-update.company-information.service.gov.uk/company/13391258"],"includeFilingHistory": true}
Output
A real row from a test run on 2026-10-19 (filings trimmed to 2 of 25):
{"url": "https://find-and-update.company-information.service.gov.uk/company/00445790","status": "ok","scrapedAt": "2026-10-19T07:23:32.025Z","companyNumber": "00445790","companyName": "TESCO PLC","companyStatus": "Active","companyType": "Public limited Company","incorporationDate": "1947-11-27","registeredOfficeAddress": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA","postcode": "AL7 1GA","sicCodes": ["47110"],"natureOfBusiness": ["47110 - Retail sale in non-specialised stores with food, beverages or tobacco predominating"],"previousNames": [{ "name": "TESCO STORES (HOLDINGS) PUBLIC LIMITED COMPANY", "from": "1981-12-14", "to": "1983-08-25" },{ "name": "TESCO STORES (HOLDINGS) LIMITED", "from": "1947-11-27", "to": "1981-12-14" }],"nextAccountsMadeUpTo": "2027-02-26","accountsDueBy": "2027-08-26","lastAccountsMadeUpTo": "2026-02-28","accountsOverdue": false,"nextConfirmationStatementDate": "2027-06-18","confirmationStatementDueBy": "2027-07-02","lastConfirmationStatementDate": "2026-06-18","confirmationStatementOverdue": false,"filingHistoryUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history","filings": [{"date": "2026-09-16","type": "SH03","description": "Purchase of own shares. Clarification hmrc confirmation received that appropriate duty has been paid on this repurchase","pdfUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzU0MzY3ODg5MGFkaXF6a2N4/document?format=pdf&download=0","pages": 4},{"date": "2026-08-26","type": "SH06","description": "Cancellation of shares. Statement of capital on 7 July 2026 GBP 397,007,409.26","pdfUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzUzOTMzNzQ1OWFkaXF6a2N4/document?format=pdf&download=0","pages": 4}],"filingsOnPage": 25,"latestFilingDate": "2026-09-16"}
Officer and PSC filings keep their form code and date, but the name is replaced: "Appointment of [name withheld] as a director on 20 February 2025". Their pdfUrl is left out, because those documents name the person.
How much does it cost to scrape Companies House?
Pay per result: $3.50 per 1,000 companies, plus a $0.005 start fee per run. The filing history is included at no extra charge. Rows with status not_found or error are free.
| Event | Price | Charged when |
|---|---|---|
apify-actor-start | $0.005 | Once per run, when it starts. |
result | $0.0035 | Each company row saved with status ok. |
| Companies | Cost |
|---|---|
| 100 | $0.36 |
| 1,000 | $3.51 |
| 10,000 | $35.01 |
The Actor stops gracefully when your run's maximum charge is reached. Compute is included, and no proxy is needed.
Integrations, exports and API access
Run it from the Apify API, the JavaScript or Python client, the Apify CLI, or on a Schedule (for example weekly over your customer list). Connect the dataset to Google Sheets, Airtable, Make, n8n, Zapier, Slack or a webhook. AI agents can call it through the Apify MCP server.
Limitations
- No officers, directors or PSCs. This Actor deliberately collects company data only. Officer and PSC page URLs are skipped as start URLs; each becomes a free
errorrow. - Filing history is the latest 25 filings per company (the first page Companies House shows). Older filings are on the
filingHistoryUrlpage. - A name search returns what the Companies House search box returns, 20 companies per page, best match first. It also matches previous names, so a search for "tesco" can return a company that was once called Tesco Tyres.
- UK establishments of overseas companies (
BR...numbers) have no SIC codes, accounts dates or filings of their own on the register; their rows carry what is published. - Accounts figures (turnover, profit) are not extracted. They are inside the accounts documents; use
pdfUrlto fetch them. - Results reflect the register at the time of the run.
FAQ
Do I need a Companies House API key? No. The Actor reads the public register pages. You need no key, no account and no quota management.
Is Companies House data free to reuse? Companies House data is public, and Companies House notes that commercial organisations use the registers to build their own products. Check the terms that apply to your use, especially for any personal data.
Why are there no directors in the output? That is by design: officers and persons with significant control are individuals. If you need them, use the Companies House public data API under its own terms.
Can I look up thousands of companies by number? Yes. Put the numbers in Company numbers or Companies House URLs, one per line, and set Maximum companies high enough. Short numbers are padded (445790 becomes 00445790), and Scottish (SC), Northern Irish (NI) and LLP (OC) prefixes work.
Why did I get fewer rows than maxItems? The search had fewer matches, or the run hit your Max total charge. Check the run log.
What happens if Companies House changes its pages? Rows come back with status: error and a reason instead of silently wrong data, and you are not billed for them. Report it in the Issues tab with the run ID.
Can I use this Actor from an AI agent or MCP client? Yes. It runs with no input at all, every row is self-describing (status plus error), and inputs are plain strings.
Related Actors
- Domain Intelligence Report - use it to check a company's website domain: DNS, mail setup, TLS, registration and tech stack.
- LinkedIn Company Scraper - use it to add employee counts, industry and website from the company's LinkedIn page.
- Google News Scraper - use it to watch the press coverage of the companies you track.
- Yahoo Finance Scraper - use it for share prices and financials of listed UK companies such as PLCs.
- ATS Jobs Scraper - use it to see which companies are hiring, a growth signal for lead lists.
- USPTO Trademark Scraper - use it to see which US trademarks a company or brand owns, with status and filing dates.
Legal and data-protection notice
This Actor extracts only company information that Companies House publishes on its public register: company names, numbers, statuses, dates, registered office addresses, SIC codes and filing records. It does not collect officers, directors, persons with significant control or any other individual's details, it withholds personal names found in filing descriptions, and it does not log in or work around access controls. However, a registered office can be a home address and your results could still contain personal data. Personal data is protected by the UK GDPR, the EU GDPR and other regulations around the world. You should not process personal data unless you have a legitimate reason to do so. If you are unsure whether your reason is legitimate, consult your lawyers. You are responsible for complying with Companies House's terms and applicable law when using the extracted data.
This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Companies House or the UK government. All trademarks belong to their respective owners.