UK Companies House Data & New Company Leads · SiteVerdict avatar

UK Companies House Data & New Company Leads · SiteVerdict

Pricing

Pay per event

Go to Apify Store
UK Companies House Data & New Company Leads · SiteVerdict

UK Companies House Data & New Company Leads · SiteVerdict

New UK company leads and company data from the official Companies House API, using your own free key. Filter new incorporations by date, SIC, type and postcode; look up companies; monitor filings, status, charges and insolvency. Without a key it returns fictional sample data only.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Aman Thakran

Aman Thakran

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

SiteVerdict — UK Companies House Data & New Company Leads

Important: without an API key this Actor runs in sample mode and returns fictional demo companies. They are not real and must not be used as leads. Sample mode is free.

Quick start: get a free API key from the Companies House developer hub, paste it into the API key field, keep the "New companies" mode and press Start.

What it costs: $0.003 per company returned ($3 per 1,000); monitor checks $0.002 each. 500 new companies cost $1.50.

Works well with: UK & EU Public Tenders · VAT & Company Number Validator · Agency Lead Finder.

Get new UK company leads and clean, analysis-ready company data straight from the official Companies House Public Data API, using your own free API key. There is no website scraping, no proxies and no grey areas: every number comes from the same API that Companies House publishes for developers.

  • New companies: companies incorporated in any date range, filtered by industry (type a word like travel and the SIC codes are looked up for you), company type, status, town and postcode area. Each one comes with lead and risk signals.
  • Company lookup: full, normalised profiles for a list of company numbers or names.
  • Monitor: watch a list of companies and get only what changed since the last run: new filings, status changes (strike-off, liquidation), overdue accounts, new charges, insolvency cases, and officer changes if you opt in.
  • SIC lookup (free, no key): turn plain English into SIC 2007 codes.

Try it right now without a key: leave the API key empty and the actor runs on built-in fictional sample data. You are not charged for sample runs.


Why use this actor

SiteVerdict Companies HouseTypical scrapers
Data sourceOfficial Companies House Public Data API + Advanced Company SearchHTML scraping of the public website
Breakage riskLow: versioned, documented JSON APIHigh: page layout changes break them
Rate limitsRespects the documented 600 requests / 5 min per key, with a shared token bucket and automatic back-offOften ignored
Personal dataOfficers and PSC are off by default; when on, only what the register publishes. Contact details are never guessed.Often "enrich" with guessed emails
Change monitoringBuilt in, with state kept between runsRare
ErrorsNever chargedVaries

Get your free Companies House API key (about 5 minutes)

The key is free and belongs to you. Companies House issues it through its official Developer Hub.

  1. Go to the Companies House Developer Hub: https://developer.company-information.service.gov.uk/.
  2. Select Sign in / Register and create a Companies House user account (or sign in if you already have one). Confirm your email address if asked.
  3. Open Your applications (also reachable at https://developer.company-information.service.gov.uk/manage-applications) and select Create an application.
  4. Enter an application name (for example Apify SiteVerdict) and a short description. Choose Live (the live environment returns real register data; "test" is the sandbox and will not work here). Select Create.
  5. On your new application's page select Create new key, give it a name, choose API key as the key type, and select Create.
    • If the form shows Restricted IPs or JavaScript domains, leave them empty: Apify runs come from changing cloud IPs, and this actor calls the API server-side.
  6. Copy the key (a long string of letters, numbers and dashes) and paste it into Companies House API key in this actor's input. Apify stores it encrypted as a secret input. This actor never logs it and never writes it to output.

Official guides: Getting started · How to create an application · Rate limiting.

One key, one limit. Companies House allows 600 requests per 5 minutes per key. If you use the same key in other tools, lower Requests per 5 minutes (default 550) so you don't trip each other up.


Quick examples

New travel companies in the last 7 days (private limited, active):

{
"mode": "new-companies",
"apiKey": "YOUR_KEY",
"sicKeywords": ["travel"],
"companyTypes": ["ltd"],
"incorporatedLastDays": 7,
"maxItems": 500
}

New companies in Plymouth (PL postcode area) in September, any industry:

{
"mode": "new-companies",
"apiKey": "YOUR_KEY",
"incorporatedFrom": "2026-09-01",
"incorporatedTo": "2026-09-30",
"postcodePrefixes": ["PL"],
"maxItems": 2000
}

Accountant prospecting: companies whose accounts are overdue

{
"mode": "new-companies",
"apiKey": "YOUR_KEY",
"incorporatedFrom": "2023-01-01",
"incorporatedTo": "2024-12-31",
"location": "Leeds",
"onlyWithSignals": ["accounts-overdue", "confirmation-statement-overdue"],
"maxItems": 300
}

Look up companies by number or name:

{ "mode": "lookup", "apiKey": "YOUR_KEY", "companyNumbers": ["00000006", "SC123456"], "companyNames": ["Example Trading Ltd"] }

Monitor customers or suppliers (schedule it daily or weekly):

{ "mode": "monitor", "apiKey": "YOUR_KEY", "companyNumbers": ["01234567", "SC123456"], "monitorStateName": "suppliers", "onlyChanges": true }

Find SIC codes (free, no key):

{ "mode": "sic-lookup", "sicKeywords": ["travel", "software", "dentist"] }

Modes in detail

1. New companies (lead lists)

Uses the official Advanced Company Search endpoint (/advanced-search/companies) with incorporated_from / incorporated_to, sic_codes, company_status, company_type, company_subtype, location and name include/exclude filters. Then, by default, it fetches each company's full profile so you get accounts and confirmation-statement dates, overdue flags, a size proxy, previous names and charge/insolvency flags.

  • Industry keywords → SIC codes. travel becomes 79110 (travel agency), 79120 (tour operator), 79901 (tourist guides) and 79909 (other reservation services). The resolved codes appear in the log and in the run's OUTPUT record, so you can check or adjust them. You can also give exact sicCodes.
  • Postcode / town filters. postcodePrefixes accepts areas (PL, M, EC), districts (PL1, EC1A) or longer prefixes. localities matches words in the town, region or address lines. These filters run on the search results before profiles are fetched, so they save requests.
  • Size proxy. Based on the type of the last accounts filed (micro-entity, small, medium, full or group, dormant). It is a proxy, not turnover or headcount.
  • Big date ranges. The API can't page past 10,000 results per query, so the actor automatically splits the date range in half until each piece fits. A single day with more than 10,000 matches is flagged in the log; narrow it with SIC codes, type or location.

2. Company lookup

Company numbers are normalised (123 becomes 00000123, sc1234 becomes SC001234) and fetched from /company/{number}. Names go through the official company search; exact matches (ignoring "Ltd" or "Limited") and active companies are ranked first. Use searchResultsPerName to return more than one match per name. Invalid numbers and companies that aren't found appear as free error rows.

3. Monitor

For every watched company the actor reads the profile, and optionally the latest 25 filings, the charges, insolvency and officers. It compares them with the snapshot saved last time in a named key-value store in your Apify account (siteverdict-ch-monitor-<monitorStateName>), then saves the new snapshot.

Changes reported: status (including active-proposal-to-strike-off), name, registered-office, sic-codes, accounts-overdue, confirmation-overdue, insolvency-flag, new-filing (with plain-English descriptions such as "First Gazette notice for compulsory strike-off"), charge-new, charge-status, insolvency-new-case, officer-appointed and officer-resigned (only with officers switched on), and company-removed.

  • The first run for a company records a baseline (isBaseline: true).
  • The actor only calls the charges or insolvency endpoints when the profile says the company has any, to save requests.
  • If a run stops because of your spending limit, the snapshot is not advanced, so the next run still reports those changes.
  • Use Apify Schedules to run it daily or weekly. Add a webhook or integration (Slack, email, Zapier, Make, Google Sheets) on the dataset to get alerts.

Output

One dataset row per company (recordType: "company"), monitor result ("monitor"), SIC match ("sic-code") or error ("error", never charged). The run summary is saved as OUTPUT in the default key-value store. It covers the filters used, resolved SIC codes, request counts, rate-limit waits and warnings.

Example company record (fictional sample data):

{
"recordType": "company",
"companyNumber": "99000001",
"companyName": "SAMPLE HORIZON TRAVEL LTD",
"status": "active",
"typeLabel": "Private limited company",
"incorporatedOn": "2026-10-06",
"ageDays": 5,
"sicCodes": ["79110"],
"sicDescriptions": ["Travel agency activities"],
"registeredOffice": {
"line1": "1 Sample Quay", "locality": "Plymouth", "postcode": "PL1 2AB",
"postcodeArea": "PL", "postcodeDistrict": "PL1", "country": "England",
"singleLine": "1 Sample Quay, Plymouth, PL1 2AB, England"
},
"accounts": { "lastAccountsType": null, "nextDue": "2028-07-06", "overdue": false, "daysUntilDue": 634, "accountingReferenceDate": "31-10" },
"sizeHint": "not-yet-filed",
"confirmationStatement": { "nextDue": "2027-10-19", "overdue": false },
"hasCharges": false,
"hasInsolvencyHistory": false,
"previousNames": [],
"leadSignals": ["newly-incorporated", "first-accounts-not-yet-filed"],
"riskSignals": [],
"links": { "registerPage": "https://find-and-update.company-information.service.gov.uk/company/99000001" }
}

Lead signals

SignalMeaning
newly-incorporatedActive and incorporated within newlyIncorporatedDays (default 30)
first-accounts-not-yet-filedActive, profile shows no accounts filed yet
accounts-due-within-60-daysNext accounts due in 0–60 days
confirmation-statement-due-within-30-daysConfirmation statement due in 0–30 days
renamed-in-last-12-monthsA previous name ceased within the last year
has-secured-lendingThe register shows charges (secured borrowing)

Risk signals

SignalMeaning
accounts-overdue / confirmation-statement-overdueOverdue according to the register (or computed from the due date if the flag is missing)
dormantLast accounts were dormant or SIC 99999
non-tradingSIC 74990
proposal-to-strike-offStatus detail is active-proposal-to-strike-off
status-liquidation, status-administration, status-receivership, status-voluntary-arrangement, status-insolvency-proceedingsInsolvency-type status
insolvency-history, previously-liquidatedFlags from the register
not-trading-statusDissolved, converted or closed, or removed
registered-office-in-dispute, undeliverable-registered-officeAddress flags from the register

Size proxy (sizeHint)

Last accounts typesizeHint
micro-entitymicro
small, total-exemption-small/full, unaudited/audited-abridged, partial-exemptionsmall
mediummedium
full, grouplarge-or-group (full accounts can also be filed voluntarily by smaller companies)
dormantdormant
none yetnot-yet-filed
other (subsidiary exemptions, initial, interim)unknown

Officers and PSC (opt-in)

With Include officers on, each company gets officers[] with name, role, roleLabel, appointedOn, resignedOn, isActive, nationality, countryOfResidence, birthMonth, birthYear. With Include PSC on, it gets psc[] with name, kind, naturesOfControl, notifiedOn, ceasedOn, isActive, nationality, countryOfResidence, birthMonth, birthYear. Service addresses and occupations are deliberately dropped. Emails and phone numbers are never looked up or guessed.

Website guesses (opt-in, off by default)

websiteGuess: true adds websiteCandidates such as examplename.co.uk, each marked verified: false. Nothing is fetched or checked; treat them as guesses only.


Pricing (pay per event)

EventWhen it is chargedPrice
companyEach company record delivered (new-companies and lookup modes)$0.003 ($3 per 1,000)
monitor-checkEach watched company checked in monitor mode, changed or not$0.002 ($2 per 1,000)
  • Error rows are never charged: not-found, invalid numbers, API failures.
  • Sample mode and SIC lookup are free.
  • The actor respects your Max cost per run. When the limit is reached it stops cleanly and tells you in the log.
  • Your Companies House API key is free. API usage counts against your key's rate limit, not your wallet.

Speed and rate limits

All workers share one token bucket set so that no 5-minute window can ever exceed your configured limit (default 550 of the 600 allowed). On HTTP 429 the actor pauses every worker until the window resets, using Retry-After or X-Ratelimit-Reset when present, otherwise exponential back-off starting at 30 seconds. It also reads X-Ratelimit-Remain and slows down before hitting the limit. Server errors and network blips are retried with jittered back-off.

Typical throughput with one key at the default 550 per 5 minutes (about 1.8 requests per second):

JobAPI requestsApprox. time
1,000 new companies, profiles off1–2seconds
1,000 new companies with full profiles~1,001~9–10 min
+ officers and PSC~3,001~28 min
Monitor 1,000 companies (profile + filings)~2,000–2,500~19–24 min

Resumable: progress is saved in the run's state, so if Apify migrates or restarts the run, records already delivered are not repeated or charged again.


Personal data, UK GDPR and PECR (please read)

This is general information, not legal advice.

  • Company data (names, numbers, addresses, filings) is mostly not personal data. A sole director's company can still identify a person, so treat outputs with care.
  • Officers and PSC are personal data. They are off by default. If you switch them on, you become the controller of that data and need:
    • a lawful basis under UK GDPR Article 6, usually legitimate interests, backed by a documented Legitimate Interests Assessment (LIA);
    • to give people a privacy notice (Article 14, because the data didn't come from them directly), normally within one month or at first contact;
    • to respect objections and the right to object to direct marketing (Article 21), keep data accurate, and delete it when no longer needed.
  • Marketing rules (PECR): unsolicited marketing emails or texts to individuals, sole traders and some partnerships generally need prior consent. Emails to corporate subscribers (for example a limited company's generic or employee address) are allowed without consent, but you must identify yourself and offer an opt-out. Marketing calls must be screened against TPS/CTPS. This actor does not supply emails or phone numbers.
  • Use the data in line with the Companies House terms of use for its API and service.
  • Guidance: ICO – legitimate interests · ICO – PECR and electronic marketing · ICO – right to be informed.

Limitations

  • You need your own Companies House API key for live data (free). Without one the actor runs on fictional sample data.
  • Advanced search returns at most 10,000 results per query. The actor splits date ranges automatically, but a single day can't be split further.
  • location is Companies House's own free-text filter. Postcode and town filters are applied by the actor after the search.
  • The size proxy is based on accounts type only. The API doesn't provide turnover or employee numbers.
  • SIC descriptions come from Companies House's published SIC 2007 list. Companies House may move to a newer SIC version in future, and the list will be updated in a later release.
  • Monitor detects filing changes within the latest 25 filings per check. Run it at least monthly for busy companies.
  • Throughput is capped by the per-key rate limit. Use several keys only if Companies House's terms allow it; a higher limit can be requested from Companies House.

FAQ

Is this scraping? No. It calls only api.company-information.service.gov.uk with your key, which is the official public API.

Why do I need my own key? Companies House issues keys per user and enforces rate limits per key. Using your own key keeps everything within their terms and gives you the full 600 requests per 5 minutes.

Can I get directors' emails or phone numbers? No. The register doesn't publish them, and this actor won't guess them.

Where is the monitor state? It's in a named key-value store in your Apify account: siteverdict-ch-monitor-<name>. Delete the store to start fresh.

Data sources and credits

  • Companies House Public Data API and Advanced Company Search: https://developer-specs.company-information.service.gov.uk/
  • SIC, status, type and filing description tables: Companies House api-enumerations.
  • SiteVerdict is not affiliated with or endorsed by Companies House.
  • Licence and terms: the data comes from the Companies House public data API and is used under Companies House's own API terms (developer hub). Check those terms and UK GDPR before reusing officer or PSC details (see "Personal data" above).
  • Where results are stored: the default dataset and key-value store of the run (rows, plus a run-state record so a restarted run can resume), inside your own Apify account. These default storages are unnamed. How long Apify keeps them is set by Apify and your plan, not by SiteVerdict (Apify data retention); you can delete them sooner in Apify Console.
  • Monitor mode: the last snapshot of each watched company is kept in a named key-value store in your account, siteverdict-ch-monitor-<monitorStateName> (siteverdict-ch-monitor-default unless you change it). Apify keeps named stores until you delete them. If you switch on officers/PSC, remember that this snapshot store and your datasets then hold personal data you control.
  • Your API key is a secret input and is sent only to the Companies House API.
  • What SiteVerdict keeps: nothing. The Actor runs in your Apify account and sends no data to SiteVerdict.

SiteVerdict is built by Aman Thakran, BharatFare Travel and Technologies Ltd (UK). Questions, bugs or feature requests: open an issue on the actor's Issues tab.