Companies House UK Company Search Scraper
Pricing
Pay per event
Companies House UK Company Search Scraper
Scrape official UK Companies House public company records with status, addresses, SIC codes, officers, PSCs, and filing history.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape public Companies House UK search results and company detail pages for company enrichment, KYC research, sales intelligence, officers, PSCs, and filing history.
What does Companies House UK Company Search Scraper do?
Companies House UK Company Search Scraper turns public UK company registry pages into structured datasets.
It searches the official Companies House web service by company name or keyword, opens matching company profiles, and extracts business-ready fields such as company number, status, type, incorporation date, registered office address, SIC codes, source URLs, and optional people and filing summaries.
Use it when you need repeatable company lookup from the public UK registry without copying data manually from the Companies House website.
Why scrape Companies House UK company data?
Companies House is the official public register for companies incorporated in the United Kingdom.
Teams use this data to validate company identities, enrich CRM records, check company status, discover officers, review PSC / beneficial ownership information, and monitor recent filings.
The actor is designed for bulk public-web extraction where a spreadsheet, CRM, compliance queue, or research workflow contains many company names or company numbers.
Who is it for?
- π§Ύ KYC and compliance analysts validating legal entities.
- π B2B sales teams enriching UK account lists.
- π§βπΌ Accountants and corporate service providers checking client entities.
- π Market researchers building company datasets from public registry data.
- π₯ Recruiters and business-development teams mapping officers and company activity.
- π§° Developers who need Companies House data inside a repeatable Apify workflow.
Why use this actor instead of manual search?
Manual Companies House lookup is useful for one company.
It becomes slow when you need to process hundreds of names, preserve source URLs, or export filing and officer summaries for downstream systems.
This actor keeps the official source URL attached to every record and returns consistent fields that can be exported as JSON, CSV, Excel, or sent to integrations.
Data extracted
| Field | Description |
|---|---|
query | Original search query or company number |
resultRank | Position in Companies House search results |
companyName | Registered company name |
companyNumber | Companies House company number |
companyStatus | Status shown on the detail page, such as Active or Dissolved |
companyType | Company type shown by Companies House |
incorporationDate | Incorporation date from the detail page |
registeredOfficeAddress | Registered office address |
sicCodes | Nature-of-business / SIC code strings |
detailUrl | Public company profile URL |
sourceUrl | Search or detail URL used as the source |
matchedSearchSnippet | Search-result snippet with number, date, and address |
officers | Optional officer summaries |
personsWithSignificantControl | Optional PSC summaries |
filingHistory | Optional recent filing summaries |
scrapedAt | ISO timestamp when the record was produced |
Optional officer data
Enable includeOfficers to fetch the public People page for each company.
The actor returns officer names, roles, active/resigned status where visible, appointment dates, correspondence addresses, and appointment URLs.
Use maxOfficersPerCompany to keep runs small when you only need a representative summary.
Optional PSC / beneficial owner data
Enable includePersonsWithSignificantControl to fetch the public persons-with-significant-control page.
When Companies House exposes PSC records for a company, the actor attempts to collect names, status, notification dates, cessation dates, and nature-of-control snippets.
Some companies, especially certain public companies or dissolved entities, may have no PSC records on the public page.
Optional filing history data
Enable includeFilingHistory to fetch recent filing rows.
Each filing summary can include date, filing type, description, and the public document URL when Companies House provides one.
Use maxFilingsPerCompany to cap how many filings are included per company.
How much does it cost to scrape Companies House UK company records?
The actor uses pay-per-event pricing.
There is a small start fee for each run and a per-company-result event for each dataset item saved.
Final prices are calculated from cloud validation runs before publishing. Keep test runs small at first by using low maxResultsPerQuery values and optional enrichment only when you need it.
Input options
{"queries": ["tesco", "barclays"],"maxResultsPerQuery": 25,"activeOnly": false,"includeOfficers": true,"includePersonsWithSignificantControl": false,"includeFilingHistory": true,"maxOfficersPerCompany": 5,"maxFilingsPerCompany": 5,"requestDelayMs": 150}
Search by company number
If you already have exact Companies House numbers, use companyNumbers.
{"queries": [],"companyNumbers": ["00445790", "00000006"],"includeOfficers": false,"includeFilingHistory": true}
Search by direct company URLs
You can also pass direct company profile URLs in startUrls.
{"queries": [],"startUrls": [{ "url": "https://find-and-update.company-information.service.gov.uk/company/00445790" }]}
Output example
{"query": "tesco","resultRank": 1,"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"],"detailUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790","filingHistory": [{ "date": "03 Jul 2026", "type": "SH06", "description": "Cancellation of shares..." }]}
How to run it
- Add company names to
queries, or exact company numbers tocompanyNumbers. - Choose
maxResultsPerQuery. - Turn on officer, PSC, or filing enrichment only when required.
- Start the actor.
- Download results from the default dataset as CSV, JSON, Excel, or HTML.
Tips for better results
- Use exact registered names when possible.
- Use company numbers when you already know them.
- Keep
maxResultsPerQuerysmall for validation runs. - Use
activeOnlywhen dissolved companies are not useful for your workflow. - Enable detailed enrichment only for companies you actually need to inspect.
- Keep
requestDelayMsabove zero for polite public-service scraping.
Integrations
Common workflows include:
- Send company records to Google Sheets for manual compliance review.
- Enrich a CRM account list with company numbers and registered addresses.
- Trigger downstream checks when filing history shows recent filings.
- Join scraped company numbers with internal KYC or accounting data.
- Store source URLs for audit trails in Airtable, BigQuery, or Snowflake.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/companies-house-uk-company-search-scraper').call({queries: ['tesco'],maxResultsPerQuery: 10,includeFilingHistory: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/companies-house-uk-company-search-scraper').call(run_input={'queries': ['tesco'],'maxResultsPerQuery': 10,'includeOfficers': True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl "https://api.apify.com/v2/acts/automation-lab~companies-house-uk-company-search-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"queries":["tesco"],"maxResultsPerQuery":10,"includeFilingHistory":true}'
MCP: use with Claude Desktop or Claude Code
You can expose this actor through Apify MCP tools.
Add the Apify MCP server in Claude Code:
$claude mcp add apify-companies-house "https://mcp.apify.com/?tools=automation-lab/companies-house-uk-company-search-scraper"
For Claude Desktop, add this JSON server configuration:
{"mcpServers": {"apify-companies-house": {"url": "https://mcp.apify.com/?tools=automation-lab/companies-house-uk-company-search-scraper"}}}
Use an MCP server URL with the actor tool selected:
https://mcp.apify.com/?tools=automation-lab/companies-house-uk-company-search-scraper
Example prompts:
- "Scrape Companies House records for these UK company names and return active companies only."
- "Find recent Companies House filings for Tesco-related companies."
- "Enrich this list of company numbers with registered office addresses and SIC codes."
Reliability and limits
The actor scrapes public, server-rendered HTML pages from Companies House.
It does not bypass login-only areas, private data, paid API limits, or user accounts.
Companies House page structure can change, so keep source URLs in your exports and rerun validation on critical workflows.
Legality and responsible use
Companies House publishes company information for public access, but users remain responsible for how they use, store, combine, and share the data.
Respect applicable laws, privacy rules, terms, and internal compliance policies.
Do not use scraped data for unlawful discrimination, harassment, spam, or other prohibited activity.
Troubleshooting
If a run returns no results, check whether the query is too narrow or misspelled.
If detail fields are missing, open the detailUrl manually and verify that Companies House exposes the field for that company.
If a run is slow, reduce enrichment toggles and per-company limits.
If you need exact matches, prefer companyNumbers instead of broad keyword searches.
FAQ
Does this use the official Companies House API?
No. The MVP uses public Companies House web pages so users do not need an API key.
Can I scrape dissolved companies?
Yes. Leave activeOnly disabled to include all statuses returned by Companies House.
Why are some PSC arrays empty?
Some companies have no PSC records visible on the public page, and some company types do not expose PSC details in the same way.
Can I monitor filing changes?
Yes. Schedule recurring runs for exact company numbers and compare the newest filing rows in your downstream system.
Related scrapers
Useful Automation Lab actors for adjacent workflows:
- https://apify.com/automation-lab/linkedin-company-scraper
- https://apify.com/automation-lab/website-contact-finder
- https://apify.com/automation-lab/google-search-results-scraper
Changelog
Initial version: public Companies House company search, company detail extraction, optional officers, optional PSC summaries, and optional filing history summaries.