UK Companies House Search avatar

UK Companies House Search

Pricing

from $2.00 / 1,000 company fetcheds

Go to Apify Store
UK Companies House Search

UK Companies House Search

Search the UK Companies House registry for company data. Get company profiles, officers, directors, filing history, SIC codes, registered addresses, and status. Free API. Filter by active, dissolved, liquidation statuses. Up to 100 results per run.

Pricing

from $2.00 / 1,000 company fetcheds

Rating

0.0

(0)

Developer

ryan clinton

ryan clinton

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

4 hours ago

Last modified

Share

Search the official UK Companies House registry for company profiles, directors, officers, filing history, and registered addresses. This actor connects to the Companies House REST API to look up any of the 5+ million active companies (and millions of dissolved entities) registered in England, Wales, Scotland, and Northern Ireland. Search by company name or number, filter by status, and optionally enrich each result with officer details and recent filing documents. The output is a clean, structured JSON dataset ready for analysis, CRM enrichment, compliance checks, or integration into your existing business workflows.


Accessing Companies House data programmatically normally requires writing custom code to handle API authentication, rate limiting (600 requests per 5 minutes), response parsing, and error recovery. This actor handles all of that complexity behind a simple input form. You configure your search, click run, and receive structured results -- no code required.

Running on Apify gives you scheduled runs, webhook triggers, API access, and built-in integrations with tools like Google Sheets, Slack, Zapier, and Make. Your company data pipeline stays reliable without manual intervention, and you can trigger lookups from any application that can make an HTTP request.

The Companies House API key is completely free to obtain -- there are no usage charges from the UK government. The actor itself runs on minimal compute resources (256 MB memory), making it one of the most cost-effective ways to access official UK company data at scale. A typical run searching for 25 companies finishes in under 60 seconds.

The actor also includes a dry-run mode for first-time users. If you run it without an API key, it returns step-by-step instructions on how to register for a free key at the Companies House Developer Hub. There is zero barrier to getting started.


Key features

  • Company search by name or number -- Search for any UK-registered company using a name keyword, partial name, or exact company number.
  • Full company profiles -- Retrieve company name, number, type, status, incorporation date, cessation date, registered address, SIC codes, charge indicators, and insolvency history.
  • Officer and director data -- Optionally fetch up to 50 directors, secretaries, and other officers per company, including their roles, appointment and resignation dates, nationality, country of residence, and occupation.
  • Filing history -- Optionally retrieve the 25 most recent filings per company, including annual accounts, confirmation statements, and other statutory documents with category, type, date, and barcode.
  • Status filtering -- Filter search results by company status: active, dissolved, liquidation, receivership, or converted/closed.
  • Automatic rate limit handling -- Detects HTTP 429 rate limit responses and retries after a 10-second cooldown, so large runs complete without manual intervention.
  • Dry-run mode -- If no API key is provided, the actor outputs clear registration instructions instead of failing, making it easy for new users to get started.
  • Direct Companies House links -- Every result includes a URL to the company's official page on the Companies House web service for manual verification.
  • Clean structured output -- All API responses are normalized into a consistent camelCase JSON schema, ready for downstream processing without additional transformation.
  • Configurable result limits -- Control output volume with a maxResults parameter (1--100) to balance thoroughness against speed and cost.

How to use

Using the Apify Console

  1. Navigate to the UK Companies House Search actor page on Apify.
  2. Click Try for free to open the actor in the Apify Console.
  3. Enter your search query -- a company name like "Tesco" or a company number like "00445790".
  4. Paste your Companies House API key into the API Key field. If you do not have one yet, run the actor without a key to receive registration instructions.
  5. Optionally enable Include Officers/Directors and/or Include Filing History to enrich results.
  6. Set the Company Status Filter if you want only active, dissolved, or other specific statuses.
  7. Adjust Max Results (default 25, maximum 100) to control how many companies are returned.
  8. Click Start and wait for the run to complete.
  9. View results in the Dataset tab, or export as JSON, CSV, Excel, or RSS.

Using the Apify API

cURL:

curl -X POST "https://api.apify.com/v2/acts/ryanclinton~uk-companies-house/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "Tesco",
"apiKey": "YOUR_COMPANIES_HOUSE_API_KEY",
"includeOfficers": true,
"includeFilings": false,
"companyStatus": "active",
"maxResults": 10
}'

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('ryanclinton/uk-companies-house').call({
query: 'Tesco',
apiKey: 'YOUR_COMPANIES_HOUSE_API_KEY',
includeOfficers: true,
includeFilings: true,
companyStatus: 'active',
maxResults: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("ryanclinton/uk-companies-house").call(run_input={
"query": "Tesco",
"apiKey": "YOUR_COMPANIES_HOUSE_API_KEY",
"includeOfficers": True,
"includeFilings": True,
"companyStatus": "active",
"maxResults": 10,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in items:
print(item["companyName"], item["companyNumber"])

Input parameters

ParameterTypeRequiredDefaultDescription
querystringYes--Company name or number to search for (e.g., "Tesco" or "00445790")
apiKeystringNo--Companies House API key. Free at developer.company-information.service.gov.uk. If omitted, the actor returns registration instructions.
includeOfficersbooleanNofalseFetch officer and director details for each company found
includeFilingsbooleanNofalseFetch the 25 most recent filings for each company found
companyStatusstringNoAllFilter by status: active, dissolved, liquidation, receivership, or converted-closed
maxResultsintegerNo25Maximum number of company results to return (1--100)

Example input JSON:

{
"query": "Barclays",
"apiKey": "YOUR_COMPANIES_HOUSE_API_KEY",
"includeOfficers": true,
"includeFilings": true,
"companyStatus": "active",
"maxResults": 5
}

Tips for best input:

  • Use specific company names rather than generic terms like "consulting" or "services" to get focused results.
  • If you know the exact company number (e.g., "00445790"), use it as the query for a precise single-result match.
  • Leave includeOfficers and includeFilings disabled when you only need basic profile data -- this significantly reduces run time and API calls.
  • Set companyStatus to "active" to skip dissolved entities and speed up processing.

Output

Each company in the dataset is returned as a structured JSON object. When includeOfficers or includeFilings are set to false, the officers and recentFilings fields are omitted entirely.

{
"companyNumber": "00445790",
"companyName": "TESCO PLC",
"companyStatus": "active",
"companyType": "plc",
"dateOfCreation": "1947-11-27",
"dateOfCessation": null,
"registeredOfficeAddress": {
"addressLine1": "Shire Park",
"addressLine2": "Kestrel Way",
"careOf": null,
"country": "United Kingdom",
"locality": "Welwyn Garden City",
"poBox": null,
"postalCode": "AL7 1GA",
"premises": null,
"region": "Hertfordshire"
},
"sicCodes": ["47110"],
"hasCharges": true,
"hasInsolvencyHistory": false,
"officers": [
{
"name": "MURPHY, Ken",
"officerRole": "director",
"appointedOn": "2020-10-01",
"resignedOn": null,
"nationality": "Irish",
"countryOfResidence": "England",
"occupation": "Chief Executive"
},
{
"name": "STEWART, Imran",
"officerRole": "secretary",
"appointedOn": "2022-06-01",
"resignedOn": null,
"nationality": "British",
"countryOfResidence": "England",
"occupation": "Company Secretary"
}
],
"recentFilings": [
{
"date": "2024-09-15",
"category": "accounts",
"type": "AA",
"description": "Full accounts made up to 24 February 2024",
"barcode": "XD1234567"
},
{
"date": "2024-07-20",
"category": "confirmation-statement",
"type": "CS01",
"description": "Confirmation statement made on 27 November 2023",
"barcode": "XC9876543"
}
],
"companiesHouseUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790"
}

Output field descriptions:

FieldTypeDescription
companyNumberstringOfficial Companies House registration number
companyNamestringRegistered company name
companyStatusstringCurrent status (active, dissolved, liquidation, etc.)
companyTypestringCompany type (ltd, plc, llp, etc.)
dateOfCreationstringIncorporation date in YYYY-MM-DD format
dateOfCessationstring/nullDissolution date, or null if still active
registeredOfficeAddressobjectFull registered office address with line-by-line fields
sicCodesstring[]Standard Industrial Classification codes describing business activities
hasChargesbooleanWhether the company has registered charges (e.g., mortgages)
hasInsolvencyHistorybooleanWhether the company has any insolvency history
officersarrayList of officers/directors (only when includeOfficers is true)
recentFilingsarrayRecent filing documents (only when includeFilings is true)
companiesHouseUrlstringDirect link to the company's official Companies House page

Use cases

  • Due diligence and KYC -- Verify company registration details, incorporation dates, and current status as part of Know Your Customer or anti-money laundering checks.
  • B2B lead generation -- Search for active companies in specific industries using SIC codes and build targeted prospect lists with officer contact details.
  • Competitor monitoring -- Track filing activity, officer changes, and status updates for competitor companies on a scheduled basis.
  • Investment research -- Pull company profiles, insolvency history, and charge indicators for companies you are evaluating for investment or acquisition.
  • Supply chain verification -- Confirm that suppliers and partners are registered, active companies with valid registered addresses in the UK.
  • Legal and compliance -- Retrieve officer lists and filing history for litigation research, regulatory compliance, or corporate governance reviews.
  • Academic and market research -- Analyze company formation trends, dissolution rates, and industry distribution across the UK company registry.
  • Real estate intelligence -- Cross-reference company registered addresses with property data to understand corporate property holdings.
  • Insolvency and credit risk -- Identify companies with insolvency history or charges registered against them to assess credit risk.
  • Journalism and investigations -- Look up companies, their directors, and filing histories for investigative reporting or public interest research.

API & Integration

You can start runs and retrieve results programmatically using the Apify API or client libraries. See the code examples in the How to use section above for full Python, JavaScript, and cURL samples.

Fetch results from a completed run:

$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=json"

Platform integrations

This actor works with all Apify integrations out of the box:

  • Zapier -- Trigger Zaps when new company data is available.
  • Make (Integromat) -- Build automated workflows that process company search results.
  • Google Sheets -- Export results directly to a spreadsheet for collaborative analysis.
  • Slack -- Send notifications when specific companies are found or status changes occur.
  • Webhooks -- Configure a webhook URL to receive results as soon as a run completes.
  • REST API -- Start runs, check status, and retrieve datasets from any HTTP client.

How it works

The actor follows a multi-step pipeline to search, filter, enrich, and output company data:

  1. Input validation -- The actor reads the input configuration and validates that a search query is provided. If no API key is supplied, it enters dry-run mode and outputs registration instructions.
  2. Company search -- A GET request is sent to the Companies House /search/companies endpoint with the query string and requested result count (clamped to 1--100).
  3. Status filtering -- If a company status filter is specified, the search results are post-filtered to include only companies matching the requested status.
  4. Profile enrichment -- For each matching company, the actor fetches the full company profile from the /company/{number} endpoint to retrieve detailed fields like SIC codes, charge status, and insolvency history.
  5. Officer enrichment -- If includeOfficers is enabled, the actor fetches up to 50 officers from the /company/{number}/officers endpoint and maps them into a clean schema.
  6. Filing enrichment -- If includeFilings is enabled, the actor fetches the 25 most recent filings from the /company/{number}/filing-history endpoint.
  7. Rate limit handling -- On any HTTP 429 response, the actor waits 10 seconds and retries the request once.
  8. Data output -- All enriched company results are pushed to the Apify dataset as structured JSON objects.
Input Query
|
v
[Search API] --> /search/companies?q=...
|
v
Filter by Status (if specified)
|
v
For each company:
|---> [Profile API] --> /company/{number}
|---> [Officers API] --> /company/{number}/officers (optional)
|---> [Filings API] --> /company/{number}/filing-history (optional)
|
v
Structured JSON Output --> Apify Dataset

Performance & cost

MetricValue
Memory256 MB
Typical run time (25 companies, profile only)15--30 seconds
Typical run time (25 companies, with officers + filings)45--90 seconds
Typical run time (100 companies, with officers + filings)2--4 minutes
Cost per run (25 companies, profile only)~$0.003--$0.005
Cost per run (25 companies, with officers + filings)~$0.005--$0.01
Apify free tier estimate~500+ runs per month
Companies House API costFree (no usage charges)
Companies House rate limit600 requests per 5 minutes

The Companies House API is completely free -- you only pay for Apify platform compute time. On Apify's free tier ($5/month in credits), you can run hundreds of company lookups per month at no cost.


Limitations

  • Maximum 100 results per run -- The Companies House search API returns a maximum of 100 items per request. For broader searches, run multiple queries with different keywords.
  • API key required for live data -- A free Companies House API key is required. Without one, the actor runs in dry-run mode and returns registration instructions only.
  • Rate limiting -- The API allows 600 requests per 5 minutes. Large runs with officers and filings enabled for 100 companies may approach this limit, though the actor handles retries automatically.
  • UK companies only -- This actor searches the Companies House registry, which covers England, Wales, Scotland, and Northern Ireland. It does not cover companies registered in other jurisdictions.
  • Officer limit of 50 per company -- The actor fetches up to 50 officers per company. Companies with more than 50 current and former officers may have incomplete officer lists.
  • Filing history limited to 25 entries -- Only the 25 most recent filings are returned per company. Older filings are not included.
  • Search relevance -- The Companies House search API uses its own relevance ranking. Broad or generic search terms may return unexpected results.

Responsible use

  • Public data only -- This actor accesses publicly available data through the official Companies House REST API. All returned information is part of the UK public record.
  • Respect rate limits -- The actor automatically handles rate limiting, but avoid scheduling unnecessarily frequent runs that could strain the API. Use reasonable intervals for scheduled monitoring.
  • Data protection compliance -- Officer names and addresses are public record under UK company law. However, if you process this data alongside other personal information, ensure compliance with UK GDPR and the Data Protection Act 2018.
  • No scraping involved -- This actor uses the official API, not web scraping. It operates within the terms of service of the Companies House Developer Hub.
  • Intended for legitimate purposes -- Use the data for lawful business purposes such as due diligence, compliance, research, and lead generation. Do not use it for harassment, stalking, or other unlawful activities.

FAQ

Q: Is the Companies House API free? A: Yes. The Companies House REST API is completely free to use. You only need to register for a developer account at developer.company-information.service.gov.uk and create an API key. There are no usage charges from Companies House.

Q: How do I get a Companies House API key? A: Visit the Companies House Developer Hub, create a free account, go to "Manage Applications", create a new application, select the "Live" environment and "REST API" type, and copy your API key.

Q: What happens if I run the actor without an API key? A: The actor enters dry-run mode and outputs a helpful JSON object with step-by-step instructions on how to register for a free API key. No error is thrown.

Q: Can I search for dissolved companies? A: Yes. By default, the search returns companies of all statuses. You can also specifically filter for dissolved companies by setting the Company Status Filter to "dissolved".

Q: How many results can I get per run? A: Up to 100 companies per run. Each company includes a full profile, and optionally up to 50 officers and 25 recent filings.

Q: Does this actor scrape the Companies House website? A: No. This actor uses the official Companies House REST API, which is the recommended and legitimate way to access UK company data programmatically.

Q: What are SIC codes in the output? A: Standard Industrial Classification (SIC) codes describe a company's primary business activities. For example, code 47110 represents "Retail sale in non-specialised stores with food, beverages or tobacco predominating". You can look up SIC codes on the Companies House SIC code list.

Q: Can I search by company number instead of name? A: Yes. Enter the company number (e.g., "00445790") as the search query. The Companies House search API accepts both names and numbers.

Q: How does the status filter work? A: The status filter is applied as a post-filter after the search results are returned from the API. If you filter for "active" companies, dissolved and other non-active results are removed from the output before enrichment.

Q: What company types are covered? A: All types registered with Companies House, including private limited (ltd), public limited (plc), limited liability partnerships (llp), community interest companies (CIC), Scottish limited partnerships, and more.

Q: Can I schedule this actor to run automatically? A: Yes. Use Apify's built-in scheduling feature to run the actor on any interval -- hourly, daily, weekly, or with a custom cron expression. Combine with webhooks or integrations to get notified of new results.

Q: What does the hasCharges field mean? A: The hasCharges field indicates whether the company has any registered charges (such as mortgages or debentures) recorded at Companies House. This is useful for credit risk assessment and due diligence.


ActorDescriptionLink
OpenCorporates SearchSearch the world's largest open database of company information covering 140+ jurisdictionsapify.com/ryanclinton/opencorporates-search
UK Charity CommissionLook up registered UK charities by name, number, or keyword for charity details and financial dataapify.com/ryanclinton/uk-charity-commission
GLEIF LEI LookupSearch the Global Legal Entity Identifier database for corporate entity identifiers used in financial reportingapify.com/ryanclinton/gleif-lei-lookup
UK Land RegistrySearch UK HM Land Registry for property transaction data and price paid recordsapify.com/ryanclinton/uk-land-registry
OFAC Sanctions SearchSearch the US Treasury OFAC sanctions list to screen companies and individuals for complianceapify.com/ryanclinton/ofac-sanctions-search
OpenSanctions SearchSearch the OpenSanctions database for sanctioned entities, PEPs, and criminal watchlists worldwideapify.com/ryanclinton/opensanctions-search