UK Companies House Scraper & Company Intelligence
Pricing
$4.00 / 1,000 company records
UK Companies House Scraper & Company Intelligence
Look up UK companies by number and get the full public record: status, registered office, SIC codes, accounts and confirmation statement dates, directors and officers, persons with significant control, and filing history. No API key needed.
Pricing
$4.00 / 1,000 company records
Rating
0.0
(0)
Developer
Technical Dost Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Look up any UK company by number and get its complete public record — profile, directors, beneficial owners and filing history — in one structured JSON object. No API key required.
Give it a list of company numbers and it returns clean, normalised records ready for a CRM, a KYB check or a due-diligence spreadsheet. Officers, persons with significant control and filing history are optional, so you only fetch and pay for what you need.
What you get
Core profile (always included):
{"companyName": "TESCO PLC","companyNumber": "00445790","companyStatus": "Active","companyType": "Public limited Company","incorporationDate": "1947-11-27","registeredOfficeAddress": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA","postcode": "AL7 1GA","sicCodes": ["47110"],"sicDescriptions": ["Retail sale in non-specialised stores with food, beverages or tobacco predominating"],"primarySicCode": "47110","accountsNextMadeUpTo": "2027-02-26","accountsNextDueBy": "2027-08-26","accountsLastMadeUpTo": "2026-02-28","confirmationStatementNextDate": "2027-06-18","confirmationStatementDueBy": "2027-07-02","previousNames": [{ "name": "TESCO STORES (HOLDINGS) PUBLIC LIMITED COMPANY", "period": "14 Dec 1981 - 25 Aug 1983" }],"activeOfficerCount": 11,"companyUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790"}
With includeOfficers:
{"name": "BETHELL, Melissa","role": "Director","status": "active","appointedOn": "2018-09-24","resignedOn": null,"nationality": "British","countryOfResidence": "United Kingdom","dateOfBirth": "September 1974","correspondenceAddress": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA"}
With includePsc — including the natures of control, where the ownership bands live:
{"name": "Kyle Damien Egan","status": "Active","notifiedOn": "2021-05-06","dateOfBirth": "April 1989","nationality": "British","countryOfResidence": "England","naturesOfControl": ["Ownership of shares – More than 25% but not more than 50%","Ownership of voting rights - More than 25% but not more than 50%","Right to appoint or remove directors"]}
Dates are ISO-8601. Absent values are null, never "N/A". Officer and PSC dates of birth are passed through exactly as the register publishes them — month and year only.
Main use cases
- KYB and onboarding checks. Verify a company exists, is active, and confirm its registered office and directors before opening an account.
- Beneficial ownership / AML. Pull the PSC register with natures of control for ownership-threshold checks.
- CRM enrichment. Turn a list of company numbers into full firmographic records with industry classification.
- Compliance monitoring. The
complianceoutput view gives you accounts and confirmation-statement deadlines as a CSV — useful for accountants tracking a client book. - Due diligence. Filing history, previous names and officer appointment/resignation timelines in one pass.
- Supplier and counterparty vetting.
Quick start
{"companyNumbers": ["00445790"]}
Full record for several companies:
{"companyNumbers": ["00445790", "SC123456", "13379071"],"includeOfficers": true,"includePsc": true,"includeFilingHistory": true,"filingHistoryLimit": 25}
Company numbers are forgiving: 445790 is zero-padded to 00445790 automatically, and sc123456 is upper-cased.
Input reference
| Field | Type | Default | What it does |
|---|---|---|---|
companyNumbers | array | required | 8 digits (00445790) or 2 letters + 6 digits (SC123456). Up to 5,000 per run. |
includeOfficers | boolean | false | Directors and secretaries, with appointment and resignation dates. +1 page per company. |
includePsc | boolean | false | Persons with significant control and their natures of control. +1 page per company. |
includeFilingHistory | boolean | false | Recent filings with document links. +1 page per company. |
filingHistoryLimit | integer | 25 | Filings per company when filing history is on. Max 100. |
Pricing
| Event | Price | When it happens |
|---|---|---|
| Company record | $0.004 | One company successfully returned |
That is the whole pricing model — one event, one price, whether or not you include officers, PSC and filing history.
You are not charged for:
- company numbers that are not on the register
- pages that failed or timed out
- invalid company numbers — those are reported and skipped
- anything after the maximum charge you set for the run
Worked example. 500 companies with officers and PSC included: 500 × $0.004 = $2.00.
How this compares
| Actor | Price per company | Officers | PSC | Filing history |
|---|---|---|---|---|
| This Actor | $0.004 | yes | yes | yes |
memo23/companies-house-scraper | $0.005 + $0.005/run | — | — | — |
scrapesage/companies-house-scraper | $0.004 | — | — | — |
memo23/northdata-scraper | $0.0035 + $0.00005/run | — | — | — |
nexgendata/business-registration-lookup | $0.05 + $0.0001/run | — | — | — |
Competitors' list prices as published on Apify Store on 2026-08-17; check current figures before relying on this table. Feature columns reflect what each listing advertises.
Using the API
curl -X POST "https://api.apify.com/v2/acts/technicaldost~uk-companies-house-intelligence/run-sync-get-dataset-items?token=<TOKEN>" \-H 'Content-Type: application/json' \-d '{ "companyNumbers": ["00445790"], "includeOfficers": true }'
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('technicaldost/uk-companies-house-intelligence').call({companyNumbers: ['00445790', '13379071'],includeOfficers: true,includePsc: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const c of items) {console.log(`${c.companyName}: ${c.companyStatus}, ${c.activeOfficerCount} active officers`);}
Python:
from apify_client import ApifyClientclient = ApifyClient("<TOKEN>")run = client.actor("technicaldost/uk-companies-house-intelligence").call(run_input={"companyNumbers": ["00445790"],"includePsc": True,})for c in client.dataset(run["defaultDatasetId"]).iterate_items():for psc in c.get("personsWithSignificantControl", []):print(psc["name"], psc["naturesOfControl"])
Filing deadlines as CSV:
$curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&view=compliance&token=<TOKEN>"
Limitations
- Lookup by company number only. There is no name search here — if you need to find companies, use the leads monitor below and feed its
companyNumberoutput into this Actor. - Each extra section is an extra page fetch. Officers, PSC and filing history each add a request per company, so a 1,000-company run with all three enabled makes 4,000 requests and takes proportionally longer. The price does not change.
- Not every company has PSCs. Listed companies such as Tesco are exempt and legitimately return an empty array. That is the register's answer, not a parse failure.
- Dates of birth are month and year only. That is all the public register shows; we do not attempt to resolve a full date.
- No accounts figures. Turnover, profit and balance-sheet numbers live inside filed PDF documents, which this Actor does not parse. It returns the filing metadata and the document link.
- Officer fields vary by role. A company secretary typically shows fewer fields than a director; missing values are
nullrather than invented.
Related Actors
- UK New Company Leads Monitor — finds newly incorporated companies by industry and location. The natural pairing: discover companies there, enrich them here.
- SEC EDGAR Filing Monitor — the equivalent for US public company filings.
Data source and responsible use
Data comes from the public Companies House register, published under the Open Government Licence. This Actor reads only publicly accessible pages at a paced request rate and does not access anything behind authentication.
The register contains personal data — officer names, partial dates of birth, and correspondence addresses that are sometimes residential. If you process these records, UK GDPR applies to you as the data controller. Use them for legitimate business purposes such as KYB, compliance and due diligence.
Not affiliated with or endorsed by Companies House.