Companies House Scraper — UK Company Data, Officers & SIC Codes
Pricing
from $5.00 / 1,000 results
Companies House Scraper — UK Company Data, Officers & SIC Codes
Turn Companies House into structured UK company data — no API key, no login. Search 5M+ companies by keyword and filter by status, type, SIC code, location or incorporation date. Each row carries officers, filing dates and registered address. Billed per result
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Companies House Scraper
Turn the UK Companies House register — 5M+ live companies — into structured data. Search by keyword and filter by status, company type, SIC code, location or incorporation date, then get one clean row per company with company number, status, registered address, SIC codes, filing dates, and full officer records. Reads the official public register directly — no API key, no login. Billed per result.
How it works

✨ Why use this scraper?
- No API key required — the official Companies House REST API needs a registered key with rate limits; this actor reads the public register directly, so it works the moment you hit Run.
- Full officer records — directors and secretaries with role, appointment/resignation dates, month/year of birth, nationality, country of residence and correspondence address.
- Rich search filters — company status, type, SIC code, registered-office location and incorporation date range, combined in one run.
- Official, authoritative data — straight from the UK government register, not a stale third-party mirror.
- Structured, stable fields — dates normalised to ISO (
2022-05-14), SIC codes split into code + description, one row per company. - Deduplicated — each company appears once, even across overlapping keywords and result pages.
🎯 Use cases
| Who | What they do with it |
|---|---|
| Sales / lead-gen teams | Build B2B prospect lists filtered by industry (SIC), location and company age |
| KYC / compliance | Verify company status, incorporation date, officers and registered address |
| Researchers & analysts | Map company formation trends by SIC code, region or date range |
| Recruiters | Find directors and decision-makers by company or sector |
| Data teams | Enrich CRM records with authoritative company numbers, status and filing dates |
📥 Supported inputs
| Input | Example | Behaviour |
|---|---|---|
| Search keyword | packaging | Runs an advanced search on the company name, pages through results |
| Search URL | https://find-and-update.company-information.service.gov.uk/search/companies?q=solar | Query is extracted and run as a keyword search |
| Company profile URL | .../company/09403356 | That company is scraped directly |
| Bare company number | 09403356, SC123456 | Scraped directly |
Not supported: filing-document downloads (PDFs), charges/mortgages detail, and the officer-appointments cross-index — this actor covers the company record, its SIC/filing metadata, officers and PSCs.
🔄 How it works
- Classify input — keywords, URLs and bare company numbers are sorted into searches vs direct fetches.
- Search — each keyword runs the GOV.UK advanced search with your filters, walking result pages (
?page=N). - Dedupe — companies are deduplicated by company number across pages and keywords.
- Parse — each company's overview page yields status, type, dates, SIC codes and registered address; the officers page (and optionally PSC page) is fetched in parallel.
- Push — the merged row lands in the dataset; export as JSON, CSV, Excel or via API.
⚙️ Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | array | ["packaging"] | Keywords matched against company name |
startUrls | array | [] | Search URLs, company profile URLs, or bare company numbers |
status | array | ["active"] | active, dissolved, liquidation, administration, … |
companyType | array | [] (all) | ltd, plc, llp, limited-partnership, community-interest-company, … |
sicCodes | array | [] (all) | 4–5 digit SIC codes, e.g. 62012 |
location | string | — | Registered office address contains this (town / postcode) |
incorporatedFrom / incorporatedTo | string | — | Incorporation date range, YYYY-MM-DD |
includeOfficers | boolean | true | Fetch each company's officers page |
includePscs | boolean | false | Fetch each company's persons-with-significant-control page |
maxItems | integer | 1000 | Hard cap on rows collected |
maxConcurrency | integer | 10 | Companies processed in parallel |
proxy | object | Apify residential (GB) | Proxy settings |
📊 Output overview
One row per company. Every row carries the register record (number, name, status, type, incorporation date, registered office address, SIC codes, previous names, accounts + confirmation-statement dates). With includeOfficers on (default), an officers array is merged in; with includePscs on, a pscs array too. Fields the register doesn't provide are emitted as null (or []), so your column layout is stable across runs.
📦 Output sample
{"type": "company","source": "companies-house","companyNumber": "14107361","companyName": "TOTAL PACKAGING SOLUTIONS WORLDWIDE LTD","profileUrl": "https://find-and-update.company-information.service.gov.uk/company/14107361","companyStatus": "Active","companyType": "Private limited Company","incorporatedOn": "2022-05-14","dissolvedOn": null,"registeredOfficeAddress": "Tythe Barn High Street, Edlesborough, Dunstable, England, LU6 2HS","sicCodes": [{ "code": "82920", "description": "Packaging activities" }],"previousNames": [],"accountsNextDue": "2026-05-31","confirmationStatementNextDue": "2027-05-13","officers": [{"name": "WESTWOOD, Matthew Jolyon","role": "Director","status": "Active","appointedOn": "2022-05-14","resignedOn": null,"dateOfBirth": "July 1969","nationality": "British","countryOfResidence": "England","correspondenceAddress": "Tythe Barn, High Street, Edlesborough, Dunstable, England, LU6 2HS"}],"scrapedAt": "2026-07-17T15:21:00.000Z"}
🗂 Key output fields
| Group | Fields |
|---|---|
| Identity | companyNumber, companyName, profileUrl, previousNames[] |
| Status | companyStatus, companyType, incorporatedOn, dissolvedOn |
| Location | registeredOfficeAddress |
| Classification | sicCodes[] (code + description) |
| Filing | accountsNextDue, accountsLastMadeUpTo, confirmationStatementNextDue, confirmationStatementLastMadeUpTo |
| People | officers[] (name, role, status, appointed/resigned, DOB, nationality, country of residence, address); pscs[] when enabled |
| Meta | scrapedAt |
❓ FAQ
Do I need a Companies House API key? No. The official REST API needs a registered key and enforces rate limits; this actor reads the public register front end directly, so no key or account is required.
Does every company have officers?
Most limited companies do. Some entity types — Scottish Limited Partnerships, for example — don't list officers in the same way, so their officers array may be empty. That reflects the register, not a scrape failure.
Can I filter by industry? Yes — pass one or more SIC codes. A company is returned if it lists that SIC among its (possibly several) codes.
Can I scrape one specific company?
Yes — paste its company number (09403356) or profile URL into startUrls. You get the full record without running a search.
Is the date of birth the full date?
No. Companies House only publishes an officer's month and year of birth (e.g. July 1969); the day is never public.
💬 Support
- Found a bug or need a field added? Open an issue on the actor's Issues tab.
- Direct contact: muhamed.didovic@gmail.com
🛠 Additional services
- Custom output shape, additional fields (charges, filing history), or one-off datasets: muhamed.didovic@gmail.com
- Need a similar scraper for another company registry (OpenCorporates, Irish CRO, etc.)? Drop an email.
- For API access (no Apify fee, just a usage fee for the API): muhamed.didovic@gmail.com
🔎 Explore more scrapers
If this Companies House Scraper was useful, see other scrapers and actors at memo23's Apify profile — covering B2B directories, job boards, real estate, social media, and more. Pairs well with the Europages Scraper for a full UK/EU B2B data stack.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Companies House, GOV.UK, or the UK Government. All trademarks mentioned are the property of their respective owners.
The scraper accesses only the publicly available company register at find-and-update.company-information.service.gov.uk — no authenticated endpoints or content behind a login. Company data on the register (including officer names, month/year of birth and correspondence addresses) is published by Companies House as public record. Users are responsible for ensuring their use complies with Companies House's terms of use, applicable data-protection law (UK GDPR, etc.) — particularly when processing officers' personal data — and any contractual obligations of their own organisation.
SEO Keywords
companies house scraper, scrape companies house, companies house api, uk company data scraper, company register scraper, uk company information, company officers scraper, director data uk, sic code search, uk business data, company number lookup, b2b lead generation uk, kyc company data, incorporation data uk, registered office address scraper, dissolved companies data, uk company house export, opencorporates alternative, company filing dates, persons with significant control scraper