Companies House API
Pricing
from $1.40 / 1,000 company records
Companies House API
Filter the free Companies House company data snapshot by name, company number, status, SIC code, postcode area and incorporation date. One row per UK company: type, SIC codes, registered office, filing dates. No API key, no officers or directors.
Pricing
from $1.40 / 1,000 company records
Rating
0.0
(0)
Developer
Don Mangu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
Use this Companies House API to filter UK companies by name, company number, status, SIC code, postcode area and incorporation date, for $2.00 per 1,000 companies.
Set one or more filters and the Actor returns one clean row per matching company: company number, name, status, company type, SIC codes, registered office address, incorporation date and the dates of the next accounts and confirmation statement. It reads the free monthly company data snapshot that Companies House publishes. You need no API key, no login and no proxy.
Sample output
One row per company. This is an invented company that shows the layout of a real row, shortened to 16 of the 33 fields:
{"resultStatus": "ok","companyNumber": "12345678","name": "ACME SOFTWARE LTD","status": "Active","companyType": "Private Limited Company","incorporationDate": "2023-01-15","sicCodes": ["62012", "62020"],"registeredOfficeAddress": "1 Example Street, London, EC1V 4AB","postTown": "London","postcode": "EC1V 4AB","postcodeArea": "EC","accountsNextDue": "2026-12-31","confirmationStatementNextDue": "2027-03-15","previousNames": [{ "name": "ACME APPS LTD", "changedOn": "2024-02-02" }],"licence": "Companies House public register data; Companies House states it imposes no rules or requirements on how this information is used","snapshotDate": "2026-10-01"}
How to use it
- Open the Input tab and set at least one filter. Every filter you set must match, so a SIC code plus a postcode area returns only companies that have both.
- Set Max results. The run stops as soon as it has that many companies, so a small limit finishes sooner.
- Press Start. When the run ends, open the Output tab for the table, or download JSON, CSV or Excel. The default view shows the main columns.
You can also call the Actor from the API, from Make, Zapier or n8n, and put it on a schedule to see new companies each month.
Bulk lists
You can give a long list of company names or numbers in two other ways, besides typing it into the input form.
- Dataset with the list: pick an Apify Dataset and, if needed, the name of the field that holds the name or number. If you leave the field empty, the Actor uses the first text field of each item.
- List file URL: the web address of a
.txt,.csvor.jsonfile. A.txtor.csvfile has one entry per line, and the Actor reads the first column. A.jsonfile is an array of strings or of objects. A header row is skipped. The file can be up to 10 MB.
The Actor joins the typed entries, the dataset entries and the file entries, and removes duplicates. The same limit of 50 names or numbers per run applies to the joined list, and each company returned costs the same as before. A .txt line is read up to the first comma, so put a name that contains a comma inside double quotes.
Run it every day
- Fill in your filters and set Only new since the last run to true. Give the monitor a name in Monitor name, for example
london-software. - Press Save as task.
- In Apify Console open Schedules, press Create new, add the Task and enter a cron expression for once a day, for example
0 7 * * *. - Each run returns only the companies that earlier runs of this monitor did not deliver. The first run returns the companies that match and becomes the baseline.
Set Max results high enough for the number of companies your filters match. A run that stops at the limit remembers only the companies it delivered, so the next run delivers the rest.
The monitor keeps its memory in your own key-value store named uk-companies-monitor-<monitorName>. It holds company numbers only, no other company data. A different set of filters starts its own memory. The list of names or numbers is not part of the memory, so a name you add to the list delivers the companies of that name once. Use one monitor name per saved task.
Companies House publishes a new snapshot once a month. A daily run between two snapshots finds no new company. A run that finds nothing new returns no row and costs only the start fee. A monthly schedule gives the same companies.
Cost example, with the prices in the Pricing section: one run that delivers 30 new companies costs 30 x $0.002 = $0.06 on the Free plan, plus the start fee of $0.00005, which is $0.06005. A run with no new company costs $0.00005.
What you get
- Company number, name, status and company type
- Incorporation date and, when given, dissolution date and country of origin
- Up to four SIC 2007 codes with their text
- Registered office address as one line and as separate fields, plus the postcode area
- Last accounts date, next accounts due date, accounts category
- Last and next confirmation statement dates
- Previous company names with the date of each change
- A link to the company page on the official Companies House service
- The snapshot date, the source file and a usage note on every row
What is left out
The snapshot holds company records only. It has no officers, directors, persons with significant control, shareholders or financial figures, and this Actor does not fetch them. The care-of line of the registered office address is dropped, because it can name a person. Companies that were dissolved before the snapshot date are not in the file.
Filters
- Company names or numbers: a name matches companies whose name contains all of its words. A company number such as SC123456 returns that company. A company matching any line is returned.
- Company status: active, active with a proposal to strike off, in liquidation, in administration, or any status in the snapshot.
- SIC codes: a full 5-digit code such as 62012, or a shorter start such as 62 for the whole group.
- Postcode areas: letters only, such as EC or SW, match the whole area. An outward code such as EC1 matches that district, and M1 does not return M11.
- Incorporated from and to: dates in the form 2024-01-31.
Pricing
Pay per event. Each company returned costs $0.002, which is $2.00 per 1,000 companies on the Free plan, and less on paid plans: $1.80 on Bronze, $1.60 on Silver and $1.40 on Gold per 1,000. A run that finds no company returns one row with the result status no_results and is charged one result. A run that could not read the source returns an error row, which is not charged. The Actor start fee is $0.00005. You can set a maximum charge per run and the Actor stops when it is reached.
Input example
{"sicCodes": ["62012"],"postcodeAreas": ["EC"],"incorporatedFrom": "2023-01-01","maxResults": 25}
FAQ
Where does the data come from? From the Free Company Data Product of Companies House, a monthly snapshot of live companies on the UK register. Companies House states that it imposes no rules or requirements on how the information on the public register is used, and that you are responsible for complying with any data protection, copyright and other rules that apply to your use. Each row names the snapshot date, so you know how fresh it is.
How current is it? Companies House publishes a new snapshot each month, so the data can be up to a month old. A company incorporated last week will not appear until the next snapshot.
Why does a run take a while? The Actor streams the whole snapshot, about 470 MB compressed, and checks every company against your filters. It does not keep the file in memory. A run that reaches your limit early ends early, while a narrow filter with few matches reads the whole file.
Does it return directors or owners? No. Officers and persons with significant control are personal data and are not in the snapshot. Registered office addresses are published company data, but for some small companies the registered office is a private address. Check the rules that apply to your own use of the data.
Why not use the Companies House REST API? The REST API needs your own API key and limits how many requests you can make. This Actor needs neither, and it works well for list building and bulk filtering. For one live company profile with officers, use the official service.
What if the download fails? The Actor retries each file. If a file still cannot be read, the run reports which one in the status message and the stats record, and marks the results as possibly incomplete.
Related Actors
The author publishes other Actors that return filtered company lists from official public registers. They are listed on the author's Apify profile.
About
This Actor is built by an independent developer and is not affiliated with, endorsed by or sponsored by Companies House or the UK government. The data comes from the Companies House public register. Disclosure: the author owns this Actor.