Companies House UK Company Search Scraper avatar

Companies House UK Company Search Scraper

Pricing

Pay per event

Go to Apify Store
Companies House UK Company Search Scraper

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

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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.

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

FieldDescription
queryOriginal search query or company number
resultRankPosition in Companies House search results
companyNameRegistered company name
companyNumberCompanies House company number
companyStatusStatus shown on the detail page, such as Active or Dissolved
companyTypeCompany type shown by Companies House
incorporationDateIncorporation date from the detail page
registeredOfficeAddressRegistered office address
sicCodesNature-of-business / SIC code strings
detailUrlPublic company profile URL
sourceUrlSearch or detail URL used as the source
matchedSearchSnippetSearch-result snippet with number, date, and address
officersOptional officer summaries
personsWithSignificantControlOptional PSC summaries
filingHistoryOptional recent filing summaries
scrapedAtISO 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

  1. Add company names to queries, or exact company numbers to companyNumbers.
  2. Choose maxResultsPerQuery.
  3. Turn on officer, PSC, or filing enrichment only when required.
  4. Start the actor.
  5. 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 maxResultsPerQuery small for validation runs.
  • Use activeOnly when dissolved companies are not useful for your workflow.
  • Enable detailed enrichment only for companies you actually need to inspect.
  • Keep requestDelayMs above 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 ApifyClient
client = 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().items
print(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.

Useful Automation Lab actors for adjacent workflows:

Changelog

Initial version: public Companies House company search, company detail extraction, optional officers, optional PSC summaries, and optional filing history summaries.