Companies House API: UK Company Search & Data (Official API)
Pricing
from $2.00 / 1,000 company saveds
Companies House API: UK Company Search & Data (Official API)
Official Companies House API for UK company data: look up by company number, search by name, or list new companies by SIC code, location and incorporation date. Status, address, SIC, accounts due dates; directors, PSC, filings optional. Try with no API key (10 per run). $2 per 1,000.
Pricing
from $2.00 / 1,000 company saveds
Rating
0.0
(0)
Developer
Kevin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Look up any UK company on the official Companies House API: by company number, by name, or as a list of companies filtered by SIC code, location, status and incorporation date (great for new-company lead lists). Get status, registered office address, SIC codes, accounts and confirmation-statement due dates, and optionally directors, PSC (beneficial owners) and filing history with PDF links.
No API key needed to try it: leave the key empty and the run saves up to 10 companies (trial mode). Add your own free Companies House key (about 2 minutes) for unlimited runs. $2 per 1,000 companies, all details included.
- Official API, no scraping, no proxies. The data comes from the same live register as the Companies House website, as stable JSON.
- One flat price per company. Officers, PSC and filings are included at no extra cost.
- Live UK company data, not a monthly snapshot. The API rate limit is respected automatically.
- Built for KYB / KYC checks, supplier onboarding, due diligence, CRM enrichment and UK B2B lead lists.
Not affiliated with or endorsed by Companies House.
How to use
- Click Start. Leave the API key empty for a trial run (up to 10 companies), or paste your own free key (see below).
- Fill in one of the inputs below (or combine them).
- Run, then export the dataset as CSV, Excel or JSON, or connect it to your CRM via the Apify API.
Example 1: company number lookup (KYB, CRM enrichment). Numbers or Companies House page URLs:
{"companyNumbers": ["00000006", "SC123456", "https://find-and-update.company-information.service.gov.uk/company/OC301234"]}
Example 2: UK company search by name, with directors and filing history:
{"searchQueries": ["bakery manchester"],"searchActiveCompaniesOnly": true,"maxResultsPerSearch": 50,"includeOfficers": true,"includeFilingHistory": true}
Example 3: new companies by SIC code + location + incorporation date (lead list), e.g. software companies (SIC 62012) in Leeds incorporated in October 2026:
{"apiKey": "<your key>","sicCodes": ["62012"],"location": "Leeds","companyStatus": ["active"],"incorporatedFrom": "2026-10-01","incorporatedTo": "2026-10-31","maxResultsPerSearch": 500}
Without a key, examples 2 and 3 still run but stop after 10 companies.
Official API vs. scraping-based actors
| This actor | Scraping-based alternatives | |
|---|---|---|
| Data source | Official Companies House Public Data API (JSON) | Companies House website pages (HTML) or the monthly bulk file |
| Breaks when the website layout changes | No | Can |
| Proxies needed | No | Usually (website scraping) |
| Data freshness | Live register on every run | Live (website) or up to a month old (bulk file) |
| API key | Optional: trial with no key (10 companies/run), own free key for unlimited runs | Usually none |
| Price | Flat $0.002 per company, officers/PSC/filings included | Often per company plus extra per officer or section |
| Personal data | Off by default, flagged per item, no email/phone enrichment | Varies |
Try it without a key
Leave the API key empty to try the actor right away: it runs in trial mode and saves at most 10 companies per run (same price per company). For bigger runs, add your own free key.
Get your free Companies House API key (about 2 minutes)
- Go to the Companies House Developer Hub and register or sign in (free).
- Open Your applications and create an application. Choose the live environment (not test).
- In the application, create a new key and choose the REST key type (an "API key"; not a stream key or OAuth client).
- Leave the IP/domain restrictions empty: Apify runs on changing servers, so an IP-restricted key
returns
401. - Copy the key into the actor's Companies House API key field. Apify stores it encrypted (secret
input). It is sent only to
api.company-information.service.gov.uk, never written to the dataset or logs.
The labels on the Developer Hub may change over time. Companies House documents the key in its authorisation guide.
What data do you get?
One dataset item per company:
| Field | Example |
|---|---|
companyNumber, companyName | 12345678, EXAMPLE BAKERY LTD |
companyStatus, companyStatusDetail | active |
companyType, companySubtype, jurisdiction | ltd, england-wales |
incorporationDate, cessationDate | 2015-03-02 |
registeredOfficeAddress (one line) + registeredOfficePremises, ...AddressLine1, ...Locality, ...Region, ...PostalCode, ...Country | 1 High Street, Unit 4, Manchester, M1 1AA, England |
sicCodes, sicDescriptions | ["10710"], ["Manufacture of bread; manufacture of fresh pastry goods and cakes"] |
lastAccountsMadeUpTo, lastAccountsType, nextAccountsDue, accountsOverdue, accountingReferenceDate | 2026-12-31, false |
confirmationStatementLastMadeUpTo, confirmationStatementNextDue, confirmationStatementOverdue | 2027-03-15 |
previousCompanyNames | [{"name": "EXAMPLE CAKES LTD", "effectiveFrom": "2015-03-02", "ceasedOn": "2018-07-01"}] |
hasCharges, hasInsolvencyHistory, hasBeenLiquidated, registeredOfficeIsInDispute | true |
companiesHouseUrl, apiUrl | link to the company page on the Companies House website |
officers (optional) | name, role, appointed/resigned dates, nationality, occupation, country of residence, service address |
personsWithSignificantControl (optional) | name, kind, natures of control, notified/ceased dates, nationality, country of residence, service address, corporate legal form / registration number |
filingHistory (optional) | date, type (e.g. AA, CS01), category, description, pages, PDF link |
matchedBy, retrievedAt, containsPersonalData, source, licence | provenance and licence attribution |
SIC descriptions come from the official
Companies House condensed SIC 2007 list
(Open Government Licence v3.0). Codes not on that list get null; no description is invented.
Input
| Field | What it does |
|---|---|
| Companies House API key (recommended) | Your own free key (see above). Without it the actor runs in trial mode: at most 10 companies per run. |
| Company numbers | Bulk lookup: 00000006, SC123456, OC301234, or Companies House page URLs. Short numbers are padded with zeros, duplicates removed. |
| Search by company name | One or more name searches, like the Companies House search box. |
| Filter search | SIC codes, location, company status, company type, name includes/excludes, incorporated from/to, dissolved from/to. Filters are combined (AND). |
| Max companies per search | Default 100, up to 5,000. |
| Searches: active companies only | Skip dissolved and other non-active companies in search results. |
| Include officers / PSC | Off by default. Personal data, see "Personal data and UK GDPR". |
| Also include resigned officers and ceased PSCs | Off by default. |
| Include month and year of birth | Off by default, even when officers or PSC are on. |
| Include filing history / Max filings per company | Off by default; latest 25 filings when on. |
| Max companies in total | Optional overall cap. |
| Max API requests per 5 minutes | Default 575 (Companies House allows 600 per key). Lower it if another app uses the same key. |
See How to use above for input examples.
Output example
{"companyNumber": "12345678","companyName": "EXAMPLE BAKERY LTD","companyStatus": "active","companyType": "ltd","jurisdiction": "england-wales","incorporationDate": "2015-03-02","cessationDate": null,"registeredOfficeAddress": "1 High Street, Unit 4, Manchester, Greater Manchester, M1 1AA, England","registeredOfficePostalCode": "M1 1AA","sicCodes": ["10710", "47240"],"sicDescriptions": ["Manufacture of bread; manufacture of fresh pastry goods and cakes","Retail sale of bread, cakes, flour confectionery and sugar confectionery in specialised stores"],"lastAccountsMadeUpTo": "2025-03-31","lastAccountsType": "micro-entity","nextAccountsDue": "2026-12-31","accountsOverdue": false,"confirmationStatementNextDue": "2027-03-15","confirmationStatementOverdue": false,"previousCompanyNames": [{"name": "EXAMPLE CAKES LTD", "effectiveFrom": "2015-03-02", "ceasedOn": "2018-07-01"}],"hasCharges": true,"companiesHouseUrl": "https://find-and-update.company-information.service.gov.uk/company/12345678","filingHistory": [{"date": "2026-03-10","type": "CS01","category": "confirmation-statement","descriptionText": "Confirmation statement with no updates","pages": 3,"documentUrl": "https://find-and-update.company-information.service.gov.uk/company/12345678/filing-history/MzQ1Njc4OTAxMmFkaXF6a2N4/document?format=pdf&download=0"}],"containsPersonalData": false,"matchedBy": {"type": "companyNumber", "value": "12345678"},"retrievedAt": "2026-10-31T04:40:00+00:00","source": "Companies House Public Data API","licence": "Contains public sector information licensed under the Open Government Licence v3.0 (Companies House)."}
(Illustrative values. Some fields are shortened here; every item contains all fields listed above.)
The run summary is saved as OUTPUT in the key-value store: companies saved, numbers not found or
invalid, results per search, failures, API requests used, rate-limit waits and the licence attribution.
Pricing
This actor uses pay-per-event pricing. You pay only for each company saved to the dataset. Apify platform usage is included in that price: under pay-per-event the actor's creator pays it, not you.
| Event | Price |
|---|---|
| Company saved to the dataset (Apify's standard "dataset item" event) | $0.002 (= $2 per 1,000 companies) |
Officers, PSC and filing history are included in this price. Companies that are not found, invalid
numbers and failed requests cost nothing. Set Maximum cost per run to cap spending. When that
limit is reached, the run stops cleanly: it keeps everything already saved, makes no further API
requests, and reports the skipped inputs in OUTPUT (stoppedByChargeLimit: true).
Speed: Companies House allows 600 requests per 5 minutes per key, about 2 per second. A profile needs 1 request, and each optional section adds at least 1 more. Expect about 1,000 companies in ~9 minutes with profiles only, or ~35 minutes with officers, PSC and filings.
Use cases
- KYB / supplier onboarding: check status, registered office, overdue accounts and insolvency flags for a list of company numbers.
- Due diligence: previous names, charges flag, filing history with PDF links, PSC (beneficial owners).
- CRM enrichment: add SIC codes, incorporation date and address to your accounts by company number.
- Market mapping and lead lists: all active companies by SIC code and location, or new incorporations in a date range.
- Compliance calendars: upcoming accounts and confirmation-statement deadlines for a client portfolio.
Licence and attribution
Company data is © Crown copyright, from Companies House, and is reused under the
Open Government Licence v3.0.
Every item has a licence field, and OUTPUT has attribution and licenceUrl. If you publish or
redistribute the data, keep the attribution:
"Contains public sector information licensed under the Open Government Licence v3.0."
Using the API is also subject to Companies House's developer terms and
guidelines, including the
rate limit. The actor respects that limit and never rotates keys to get around it.
Personal data and UK GDPR
Company profiles are company-level data. Officers and PSC are personal data even though they are
on a public register. Officers, PSC and birth month/year are off by default, and items that include
them are marked containsPersonalData: true.
If you turn these options on, you are the controller of the personal data in your copy under UK GDPR (and EU GDPR where it applies). You need a lawful basis and a specific purpose (for example KYC/AML checks or due diligence), must keep only what you need, must honour data subject rights, and must not use the data for unsolicited direct marketing to individuals where the law forbids it. Companies House's personal information charter explains why it publishes this data.
The actor outputs only what Companies House publishes. It never enriches personal data: no email, phone or social-media lookups, no matching across sources, and never a day of birth (the API publishes only month and year, and even those are off by default). Residential addresses are not available from the API; only service (correspondence) addresses are output.
FAQ
Can I try it without an API key? Yes. Leave the key empty: trial mode saves up to 10 companies per run (same price per company). Add your own free key to remove the cap.
Is the API key really free? Yes. Companies House gives REST API keys free of charge to anyone who registers on its Developer Hub. See "Get your free Companies House API key" above.
Can I find newly incorporated companies? Yes. Use the filter search with incorporatedFrom /
incorporatedTo, optionally with SIC codes and a location (example 3). Schedule the run weekly or monthly
on Apify to get a fresh list.
Can I export to Excel or CSV? Yes. The address and due dates are flat fields, so the Apify dataset export to CSV/Excel works well in spreadsheets. Nested lists (officers, PSC, filings) are JSON arrays.
Does it cover Scotland and Northern Ireland? Yes: all companies on the Companies House register,
including SC, NI, OC (LLP) and other prefixes.
Why use my own API key? Each key has its own limit of 600 requests per 5 minutes. With your own free key there is no 10-company cap, your runs never compete with other users for a shared quota, and you use the official API under Companies House's terms.
I get "Companies House rejected the API key (HTTP 401)". Check that you copied a REST key from a live application, without spaces, and that the key has no IP restriction.
The run was slower than expected. The actor paces itself to stay under the key's limit. If another application uses the same key at the same time, the actor waits for the window to reset (you will see this in the log). This is safer than getting the key banned for exceeding the limit.
Does it include financial figures (turnover, profit)? No. The public API has no parsed accounts.
Use the PDF links in filingHistory to open the filed accounts.
How fresh is the data? It is live: every run reads the current register. It is not a monthly bulk snapshot.
Changelog
- 1.1 (2026-10-31): trial mode without an API key (up to 10 companies per run).
- 1.0 (2026-10-31): company numbers, name search and filter search (SIC, location, status, type, dates); optional officers, PSC, filing history; SIC descriptions; rate limiting with 429 handling; pay-per-event with clean charge-limit stop.