UK Companies House Scraper
Pricing
from $0.02 / 1,000 company records
UK Companies House Scraper
Scrape Companies House company profiles, officers, filings, PSCs, registered addresses, status, SIC codes, and incorporation dates.
Pricing
from $0.02 / 1,000 company records
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract public UK company registry data from Companies House.
What does UK Companies House Scraper do?
UK Companies House Scraper collects public company profiles from the official UK Companies House website.
It can search by company name, trading name, or company number.
It can also enrich direct Companies House company profile URLs.
The actor returns company status, company type, registered office address, incorporation date, SIC codes, officers, filings, and PSC data when available.
Who is it for?
Sales teams use it to build company lead lists.
Compliance teams use it to check official registry status.
Recruiters use it to enrich employer records.
Finance teams use it for due-diligence workflows.
Legal operations teams use it to monitor filings and registered office changes.
Data teams use it to enrich CRMs and internal company databases.
Why use this actor?
You can collect structured Companies House records without building and maintaining your own parser.
You can start from search terms or known profile URLs.
You can include nested officer and filing details in the same dataset row.
You can export the results as JSON, CSV, Excel, XML, or HTML from Apify.
What data can you extract?
| Field | Description |
|---|---|
| query | Search query or source URL used |
| companyName | Registered company name |
| companyNumber | Companies House number |
| companyStatus | Active, dissolved, liquidation, or other public status |
| companyType | Company type shown by Companies House |
| incorporationDate | Incorporation date when available |
| dissolutionDate | Dissolution date when available |
| registeredOfficeAddress | Registered office address text |
| sicCodes | Nature of business / SIC entries |
| previousNames | Previous company names and periods |
| officers | Officer and director summaries |
| filings | Recent filing history rows and document links |
| personsWithSignificantControl | PSC summaries or exemptions |
| profileUrl | Companies House company profile URL |
| scrapedAt | Timestamp of extraction |
How much does it cost to scrape UK Companies House?
This actor uses transparent pay-per-event pricing, so you pay only for starting a run and for company records that are saved to the dataset.
| Charge event | When it is charged | Price |
|---|---|---|
| Start | Once when a run begins | $0.005 per run |
| Company record - FREE tier | Each saved company profile | $0.000044454 per company |
| Company record - BRONZE tier | Each saved company profile | $0.000038655 per company |
| Company record - SILVER tier | Each saved company profile | $0.000030151 per company |
| Company record - GOLD tier | Each saved company profile | $0.000023193 per company |
| Company record - PLATINUM tier | Each saved company profile | $0.000015462 per company |
| Company record - DIAMOND tier | Each saved company profile | $0.000010823 per company |
Nested officers, PSCs, and filings are included in the same company record charge for this version. You are not charged separately for officer rows, PSC rows, filing rows, addresses, SIC codes, or previous names.
Example run costs on the FREE tier:
| Example run | Estimated actor charge formula |
|---|---|
| 1 company profile | $0.005 start + 1 × $0.000044454 company record |
| 10 company profiles | $0.005 start + 10 × $0.000044454 company records |
| 100 company profiles | $0.005 start + 100 × $0.000044454 company records |
| 1,000 company profiles | $0.005 start + 1,000 × $0.000044454 company records |
For a free-plan or low-volume test, start with maxResultsPerQuery: 1 and one query or one company URL. That produces one company record when a match is found and keeps the run near the one-time start charge plus one per-company charge. Increase maxResultsPerQuery only after the sample output matches your workflow.
To keep costs predictable, use exact company numbers or direct profile URLs for enrichment jobs, keep search limits small for broad names, and disable officers, filing history, or PSCs when you do not need those nested sections.
How to use it
- Open the actor on Apify.
- Enter company names, company numbers, or profile URLs.
- Choose how many companies to save per query.
- Decide whether to include officers, filings, and PSCs.
- Run the actor.
- Download the dataset in your preferred format.
Input options
Company names or numbers
Use queries for company names, trading names, or exact company numbers.
Example values:
tescoopenai00002065
Company profile URLs
Use companyUrls when you already know the Companies House profile page.
Example:
https://find-and-update.company-information.service.gov.uk/company/00445790
Maximum companies per query
Use maxResultsPerQuery to control result volume.
A low number is best for testing.
Increase it for larger lead lists.
Include officers
Enable includeOfficers to add people listed on the company People tab.
This can include directors and secretaries.
Include filing history
Enable includeFilingHistory to collect recent filing rows.
Rows can include filing type, date, description, pages, and PDF links.
Include PSCs
Enable includePersonsWithSignificantControl to collect PSC records when available.
Some companies are exempt or do not show PSCs.
Example input
{"queries": ["tesco", "00002065"],"companyUrls": [{ "url": "https://find-and-update.company-information.service.gov.uk/company/00445790" }],"maxResultsPerQuery": 2,"includeOfficers": true,"includeFilingHistory": true,"includePersonsWithSignificantControl": false,"maxOfficersPerCompany": 5,"maxFilingsPerCompany": 5}
Example output
{"query": "tesco","companyName": "TESCO PLC","companyNumber": "00445790","companyStatus": "Active","companyType": "Public limited Company","incorporationDate": "27 November 1947","registeredOfficeAddress": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA","sicCodes": ["47110 - Retail sale in non-specialised stores with food, beverages or tobacco predominating"],"profileUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790","scrapedAt": "2026-07-03T00:00:00.000Z"}
Tips for better results
Use exact company numbers when you need a specific legal entity.
Use company names when you want discovery and matching variants.
Keep maxResultsPerQuery small for first runs.
Enable nested sections only when you need them.
Use direct URLs for repeat enrichment jobs.
Common workflows
B2B lead enrichment
Upload a list of company names.
Export status, address, SIC code, and officer data.
Join the dataset back to your CRM.
Compliance checks
Run company numbers from your customer list.
Review company status and filing history.
Flag dissolved or unusual statuses.
Market mapping
Search competitor names or sector keywords.
Collect public registry details.
Use SIC codes and addresses to segment results.
Integrations
You can connect this actor to Google Sheets.
You can send results to Make or Zapier.
You can call it from a backend service using the Apify API.
You can schedule recurring runs for monitoring workflows.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/uk-companies-house-scraper').call({queries: ['tesco'],maxResultsPerQuery: 2});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('fetch_cat/uk-companies-house-scraper').call(run_input={'queries': ['tesco'],'maxResultsPerQuery': 2,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~uk-companies-house-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"queries":["tesco"],"maxResultsPerQuery":2}'
Using with MCP
You can expose this actor as an Apify MCP tool and call it from Claude Code, Claude Desktop, Cursor, VS Code, or another MCP-compatible client.
Use this MCP tools URL:
https://mcp.apify.com/?tools=fetch_cat/uk-companies-house-scraper
For Claude Code, add the remote MCP server with HTTP transport:
claude mcp add --transport http apify-uk-companies-house \https://mcp.apify.com/?tools=fetch_cat/uk-companies-house-scraper
For Claude Desktop, Cursor, or VS Code, add an MCP server entry like this and replace YOUR_APIFY_TOKEN with your Apify API token if your client requires an authorization header:
{"mcpServers": {"apify-uk-companies-house": {"url": "https://mcp.apify.com/?tools=fetch_cat/uk-companies-house-scraper","headers": {"Authorization": "Bearer YOUR_APIFY_TOKEN"}}}}
After connecting, ask your MCP client to run the UK Companies House scraper with a small input first. Good first prompts:
"Search Companies House for Tesco, save up to 2 company records, and summarize active company records."
"Enrich these UK company numbers with registered office addresses and filing history: 00445790, 00002065."
"Run the Companies House actor for this prospect list and return company status, SIC codes, and profile URLs."
MCP calls still use your Apify account, so the same run start and company record charges apply. Keep the first MCP run small, inspect the dataset link returned by Apify, and then scale up the query list.
Limits and caveats
Companies House search can return officers and other result types.
This actor saves company profiles only.
Some companies have no PSC data or show an exemption notice.
Filing documents may be processing and may not yet have a PDF link.
Large searches should use polite limits.
Legality
Is it legal to scrape Companies House?
Companies House publishes company information for public access.
You are responsible for using the data lawfully.
Respect applicable privacy, database, and data-protection rules.
Do not use the data for prohibited or abusive purposes.
FAQ
Can I scrape officers and filings together?
Yes. Enable officers and filing history in the input, then set sensible per-company limits.
Troubleshooting
Why did I get fewer companies than requested?
The search may have fewer company profile results than your limit.
The actor ignores officer-only search results because the output is company-focused.
Why are PSCs empty?
Some companies have no PSC records, are exempt, or do not expose the section in the same way.
Enable includePersonsWithSignificantControl if you need PSC enrichment.
Why is a PDF link missing?
Companies House may show that a filing document is still being processed.
Those rows can still appear without a document URL.
Related scrapers
Explore other public-data and business-data actors from the same developer account on Apify.
Useful combinations include jobs, maps, and company-enrichment scrapers.
- SEC EDGAR Company Filings Scraper — collect US company filings for due diligence.
- Google Maps Lead Finder — discover local businesses and contact signals.
- Google Jobs Scraper — enrich hiring and employer research workflows.
Data freshness
Each run fetches current public pages.
The scrapedAt timestamp records when the item was extracted.
Export formats
Apify datasets can be exported as JSON.
They can be exported as CSV.
They can be exported as Excel.
They can be exported as XML.
They can be exported through the Dataset API.
Support
If you need a new output field, open an Apify issue on the actor page.
Include your run ID and an example company URL.
Changelog
Initial version supports search queries, direct company URLs, company overview fields, officers, filing history, and PSC summaries.