Companies House Scraper — UK Companies, Directors & PSCs
Pricing
from $4.00 / 1,000 company scrapeds
Companies House Scraper — UK Companies, Directors & PSCs
Scrape the UK Companies House register: company profiles, directors, PSCs (beneficial owners), SIC codes, addresses, accounts dates, filing history & charges. Search by keyword, company number, SIC code, location or incorporation date. No API key. Monitoring mode. Export JSON, CSV, Excel.
Pricing
from $4.00 / 1,000 company scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
6
Monthly active users
7 days ago
Last modified
Categories
Share
Companies House Scraper — UK Companies, Directors & PSCs (Officers, SIC Codes, Filings & Leads)
Extract complete UK company data straight from the official Companies House register — company profiles, directors & officers, PSCs (persons with significant control / beneficial owners), SIC codes, registered office addresses, accounts & confirmation-statement due dates, filing history and charges/mortgages — and turn the whole register into a targeted B2B prospect list filtered by industry (SIC code), location and incorporation date.
No API key, no login, no browser — fast HTML extraction from a public UK government service with near-100% reliability.
Why this Companies House scraper?
Most actors return a thin company profile and stop. This one ships the richest record in the category — every person, every key date, every signal — plus advanced-search filtering and a monitoring mode that returns only new companies on a schedule.
| Data | Typical scrapers | This actor |
|---|---|---|
| Company profile (status, type, incorporation date, registered office) | ✅ | ✅ |
| SIC codes (with descriptions) | partial | ✅ |
| Accounts & confirmation-statement due dates + overdue flags | ❌ | ✅ |
| Previous company names | ❌ | ✅ |
| Officers & directors (role, DOB, nationality, occupation, appointed/resigned) | partial | ✅ |
| PSCs / beneficial owners (nature & level of control) | ❌ | ✅ |
| Filing history (date, type, description, document link) | ❌ | ✅ opt-in |
| Charges / mortgages (status, dates, persons entitled) | ❌ | ✅ opt-in |
| Advanced search by SIC code + location + incorporation date | ❌ | ✅ |
| Derived lead score (0–100) + company age + active-officer/PSC counts | ❌ | ✅ |
| Monitoring mode — only new companies on each run | ❌ | ✅ |
| Flat one-record-per-director output for CRM import | ❌ | ✅ opt-in |
| Requires a Companies House API key | sometimes | ❌ never |
Use cases
- B2B lead generation — build prospect lists of every UK company in a SIC code (industry) and town, complete with directors to contact and a lead score to prioritise. New incorporations are warm sales triggers — accountants, banks, insurers, SaaS and agencies all chase them.
- Sales triggers / new-business alerts — schedule a daily run with an incorporation-date window + monitoring mode to receive only the companies registered since yesterday for your target industries and regions.
- KYC, KYB & compliance — pull directors, beneficial owners (PSCs), nature of control, status and charges for onboarding, AML and due-diligence checks.
- Credit & risk — track company status, accounts-overdue flags, confirmation-statement lapses, insolvency/liquidation status and registered charges.
- Market & competitor research — map every company in a sector by SIC code, incorporation cohort and location; analyse director networks across companies.
- Data enrichment — turn a list of company numbers into fully-enriched records for your CRM or warehouse.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Companies House Scraper, then either enter search queries, paste company numbers, or set the advanced-search filters (SIC code, location, incorporation date). Click Start.
- Watch company records stream into the dataset table.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"sicCodes": ["62012"],"location": "Manchester","incorporatedFrom": "2026-01-01","includeOfficers": true,"includePSCs": true,"includeFilingHistory": false,"emitOfficerRecords": true,"monitoringMode": true,"maxCompanies": 500}
- searchQueries — keywords / company names to search the register (matches current and previous names).
- companyNumbers — exact company numbers (
00445790,SC123456,NI036672,OC301540); fastest and most precise. - startUrls — Companies House URLs: company pages (
/company/00445790), keyword search (/search/companies?q=…) or advanced-search result pages (/advanced-search/get-results?…). - Advanced-search filters —
sicCodes,location(registered office text),companyNameIncludes/companyNameExcludes,companyTypes,companyStatus,incorporatedFrom/incorporatedTo,dissolvedFrom/dissolvedTo. - includeOfficers (default true) — full officer/director list.
- includePSCs (default true) — persons with significant control + PSC statements.
- includeFilingHistory (default false) — recent filings (date, type, description, document link) + last-filing date/type.
- includeCharges (default false) — registered charges / mortgages.
- emitOfficerRecords (default false) — also output one flat record per officer (
type: "officer") for CRM import. - monitoringMode (default false) — output only companies not seen in previous runs (see below).
- maxCompanies / maxConcurrency — run controls.
Output
One record per company (type: "company"), plus optional per-officer lead records (type: "officer"):
{"type": "company","companyNumber": "09384423","companyName": "KFORD TYRES (GORNAL) LTD","companyStatus": "Active","companyType": "Private limited Company","incorporatedOn": "2015-01-12","companyAgeYears": 11.4,"isActive": true,"registeredOfficeAddress": "2 Dawley Brook Road, Kingswinford, England, DY6 7BD","sicCodes": [{ "code": "45200", "description": "Maintenance and repair of motor vehicles" }],"sicCodeList": ["45200"],"nextAccountsMadeUpTo": "2026-01-31","nextAccountsDueBy": "2026-10-31","lastAccountsMadeUpTo": "2025-01-31","accountsOverdue": false,"confirmationStatementNextDate": "2026-01-11","confirmationStatementLastDate": "2025-01-11","previousNames": [{ "name": "TESCO TYRES LTD", "period": "12 Jan 2015 - 03 Mar 2018" }],"officersCount": 2,"activeOfficersCount": 2,"directorsCount": 2,"officers": [{"name": "PAGE, Tanya","officerId": "aBcD_eF...","role": "Director","status": "Active","dateOfBirth": "1967-06","appointedOn": "2015-01-12","nationality": "British","countryOfResidence": "England","occupation": "Director","correspondenceAddress": "2 Dawley Brook Road, Kingswinford, England, DY6 7BD"}],"pscCount": 1,"pscs": [{"name": "Mrs Tanya Page","status": "Active","notifiedOn": "2017-01-12","dateOfBirth": "1967-06","nationality": "British","countryOfResidence": "England","natureOfControl": ["Ownership of shares – More than 25% but not more than 50%"]}],"pscStatements": [],"leadScore": 90,"url": "https://find-and-update.company-information.service.gov.uk/company/09384423","scrapedAt": "2026-06-14T12:00:00.000Z"}
Monitoring mode — only pull new companies
Turn on monitoringMode and the actor remembers every company it has already returned (in a named key-value store) and outputs only companies it hasn't seen before. Combine it with an incorporatedFrom window + sicCodes + location and a daily Schedule to receive a clean feed of newly-incorporated companies in your target market — perfect for sales triggers and lead pipelines.
Monitoring mode works alongside Apify Schedules, it doesn't conflict with them: the schedule decides when the actor runs, monitoring mode decides what's new in the results. Each distinct search keeps its own memory, so you can run several monitored searches independently.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it hourly/daily/weekly with monitoring mode to track new incorporations, filings, or director changes for your target industries and regions.
- Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/companies-house-scraper').call({sicCodes: ['62012'],location: 'London',incorporatedFrom: '2026-01-01',emitOfficerRecords: true,monitoringMode: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} companies & director leads`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new company leads straight into your CRM.
- Slack — get notified when a monitored search finds new companies.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find software companies incorporated in London this year and list their directors" and let it run this scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete B2B lead-gen & business-intelligence stack:
- SAM.gov Scraper — US federal contract opportunities & contacts.
- Bark Listing Scraper — service-provider business leads.
- LinkedIn Jobs Scraper — job postings as hiring-intent signals.
- Multi-ATS Job Scraper — jobs from Greenhouse, Lever, Ashby & Workday.
- Google Ads Transparency Scraper — who's advertising what on Google.
- Facebook Ad Library Scraper — competitor ad intelligence.
- Eventbrite Scraper — events + organizer contact leads.
Tips
- Targeted prospect lists: combine
sicCodes(industry) +location+incorporatedFromto slice the register exactly to your market, then sort the dataset byleadScore. - New-business feed: set a rolling
incorporatedFrom, turn onmonitoringMode, and schedule the run daily — you'll only ever receive companies you haven't seen. - Cost control: officers and PSCs are included by default; turn off
includeFilingHistoryandincludeCharges(the extra page fetches) when you only need profiles + people. - Company numbers are the fastest, cheapest input — paste them directly when you already have a list to enrich.
- Proxies: the default Apify Proxy is plenty — Companies House is a public UK government service and does not block datacenter IPs.
FAQ
Do I need a Companies House API key? No. This actor reads the public Companies House website, so there's no key, no rate-limit registration, and no login.
What's a PSC? A person with significant control — a beneficial owner who holds more than 25% of shares or voting rights, or otherwise controls the company. The actor extracts each PSC's name, nature & level of control, date of birth (month/year), nationality and country of residence.
Which company numbers are supported? All of them — England & Wales (12345678), Scotland (SC…), Northern Ireland (NI…), LLPs (OC…), and others. Search and advanced search resolve numbers for you automatically.
Can I get only newly-registered companies? Yes — set an incorporatedFrom date, enable monitoringMode, and schedule the run. Each run returns only companies not seen in previous runs.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
Is this legal? Companies House data is published as open data by the UK government for public use. This actor collects only that publicly available information. You remain responsible for using personal data (e.g. director details) in compliance with UK GDPR and applicable laws.
A field is null — why? Some companies genuinely don't publish certain data: newly-incorporated companies have no accounts yet, PLCs trading on a regulated market are PSC-exempt, and dormant companies may have no charges. Fields are null only when the data doesn't exist, not because the scraper skipped them.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.