New UK Companies Scraper
UK companies incorporated on any day: number, name, type, SIC codes and full registered office address, read from Companies House. No API key needed.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
incorporatedFrom,incorporatedTo,lastDays(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0037 per company = $3.7 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Company returned | One company returned in the dataset. Days with no new companies, rows outside your filters and repeats are never charged. | $0.0037 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-14, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
incorporatedFrom | The first day, as YYYY-MM-DD. Leave it empty to use Last days instead. | string |
incorporatedTo | The last day. Leave it empty to run up to today. Today's list keeps growing while Companies House registers new companies, so end at yesterday if you only want complete days. | string |
lastDays | Used when Incorporated from is empty: the last N full days, ending yesterday. 1 means yesterday only, which suits a daily schedule. | integer |
companyNameIncludes | Whole words, like consulting or property management. A name has to hold every word, in any order, and capitals don't matter. Part of a word doesn't count, so consult won't find CONSULTING. | string |
companyNameExcludes | Drops any company whose name has one of these words, for example ltd or holdings. Whole words again: tech leaves out DELTA TECH LTD but keeps DELTA TECHNOLOGIES LTD. | string |
sicCodes | Only companies registered under one of these five-digit codes, for example 62012 for software development. Leave it empty for every trade. Each code is a separate search on Companies House, and a company listed under two of your codes comes back once. | array |
location | A town or county, such as Manchester. Companies House matches it against the whole registered office address, county included, so Salford companies show up for Manchester. | string |
companyTypes | Leave it empty for all types. Nearly every new company is a private limited company. | array |
companySubtypes | Leave it empty for any subtype. Most companies have none. These are the two Companies House lets you search by. | array |
companyStatus | Leave it empty for any status. Almost every company in a recent range is active; older ranges also hold dissolved ones. | array |
dissolvedFrom | Only companies dissolved on or after this day, out of those incorporated on your days. Companies House lists dissolutions from 1 January 2010 on. | string |
dissolvedTo | Only companies dissolved on or before this day. A company dissolved in your range and restored to the register since comes back too, with its current status and no dissolution date. | string |
maxCompanies | The most companies returned in one run, across all days. Each company returned is one charge. | integer |
What you get
A structured dataset — each result includes fields like:
companyNamecompanyNumberincorporationDatecompanyTypestatussicCodessicDescriptionsregisteredOfficeAddresspostcodeurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
New UK Companies Scraper: every Companies House incorporation, day by day
Pick the days you want and get every company Companies House registered on them: name, number, status, type and subtype, incorporation date, the SIC codes with their descriptions, and the full registered office address with the postcode split out.
Read this before you schedule it: today's list is never finished. Companies keep being registered all day, so a range that ends today gives you a partial day. End at yesterday if you want complete ones.
| Input | A date range or a number of recent days, plus filters |
| Output | One row per company |
| Ceiling | 50,000 companies per run |
| Account needed | None |
| Price | $3.70 per 1,000 companies, flat on every plan |
🏛️ What New UK Companies Scraper does
It reads the Companies House register itself, the public one at find-and-update.company-information.service.gov.uk, day by day. No API key, no registration, no login.
Two ways to say which days. Set incorporatedFrom and incorporatedTo for an exact range, or leave the first empty and use lastDays for the last N full days ending yesterday. lastDays: 1 is yesterday only, which is what a daily schedule wants.
Then narrow it. SIC code is the useful one: 62012 for software development, 43210 for electrical installation. You can also filter on words in the company name, on the registered office address, on company type, subtype and status, and on a dissolution date.
Rows come back in Companies House's own order within each day, which is not by company number.
📥 What you give it
{
"lastDays": 1,
"sicCodes": ["62012", "62020"],
"location": "Manchester",
"maxCompanies": 500
}
| Field | Default | What it is |
|---|---|---|
incorporatedFrom | none | First day, YYYY-MM-DD. Leave empty to use lastDays. |
incorporatedTo | today | Last day. |
lastDays | none | 1 to 366 full days ending yesterday. Used only when incorporatedFrom is empty. |
sicCodes | none | Up to 20 five-digit codes. A company listed under two of yours comes back once. |
companyNameIncludes | none | Whole words, all of which must be in the name, in any order. consult will not find CONSULTING. |
companyNameExcludes | none | Drops names holding any of these words. Whole words again. |
location | none | A town or county. It is matched against the whole registered office address. |
companyTypes | all | 27 of them. Nearly every new company is a private limited company. |
companySubtypes | any | Community interest company, or private fund limited partnership. |
companyStatus | any | Active, dissolved, liquidation and eight more. |
dissolvedFrom, dissolvedTo | none | Narrows your incorporation days to companies dissolved in this window. |
maxCompanies | 1000 | 1 to 50,000, across every day in the run. |
location matches the whole address, county included, which is Companies House's own behaviour, not ours. Ask for Manchester and Salford companies turn up too. That is usually what people want, but it is worth knowing before you treat the column as a town filter.
Each SIC code is a separate search, on each day. Three codes over seven days is 21 searches. It is not a reason to avoid them, just the reason the run takes longer.
📤 What you get back
A real row, from run jb2htQM003m2P78jJ:
{
"companyName": "ROUTE TO TRANSMISSION CIC",
"companyNumber": "17429167",
"status": "Active",
"companyType": "Private limited by guarantee without share capital",
"companySubtype": "Community Interest Company (CIC)",
"incorporationDate": "2026-09-01",
"dissolutionDate": null,
"sicCodes": ["85590", "85600", "88990", "94990"],
"sicDescriptions": [
"Other education n.e.c.",
"Educational support services",
"Other social work activities without accommodation n.e.c.",
"Activities of other membership organisations n.e.c."
],
"registeredOfficeAddress": "2 Shaftesbury Waye, Hayes, England UB4 0HL",
"postcode": "UB4 0HL",
"url": "https://find-and-update.company-information.service.gov.uk/company/17429167"
}
| Field | What it is |
|---|---|
companyNumber | The register's own number. Your key for everything else. |
status | Companies House's word: Active, Dissolved, or Registered for an overseas entity. |
sicCodes, sicDescriptions | Same order, so index 0 of one matches index 0 of the other. |
registeredOfficeAddress | One string, with the commas as the register writes them. |
postcode | Split off the end when there is a UK one. null for a foreign address. |
incorporationDate | For an overseas entity, the date it was registered in the UK. |
companySubtype | null on the great majority of companies. |
🧾 Reading the output
The dataset holds companies and nothing else. No refusal rows and no blank lines. A run with no dates at all returns one labelled sample row, which is not charged.
Everything about the run is in a key-value record called RUN_REPORT:
| In the report | What it tells you |
|---|---|
| Companies returned, charged, and why the run stopped | Whether you hit your limit, ran out of days or ran out of time. |
| The dates and every filter in force | Written out, so you can see what the run actually asked for. |
| Companies listed, and what was skipped | Counted by reason: outside the dates, wrong SIC, wrong place, wrong name, a repeat. |
| One entry per search | The day, the SIC code, how many were listed, how many came back, pages read, pages missed, and how many were out of reach. |
| Restored after dissolution | Companies that were dissolved in your window and have since been restored. |
The status message on the run says the same thing in one sentence, starting with the result.
▶️ How to run it
1. Open New UK Companies Scraper and click Try for free. 2. Set Last days to 1 for yesterday, or pick a range with the two date fields. 3. Add SIC codes, Registered office address contains or a name filter to narrow it. 4. Set Maximum companies, keeping it low on the first run. 5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$3.70 per 1,000 companies. The same rate on every Apify plan, with no volume tiers.
One charge per company row. A company that matches two of your SIC codes is returned and charged once. Anything your filters drop, anything outside your dates, a repeat seen while a live day shifted underneath the run, and the sample row are all uncharged.
💡 What people use it for
- A daily feed of new companies in one trade, using
lastDays: 1and a SIC code on a schedule. - Territory lists for a local service business, using
locationand the postcode column. - Counting formations by SIC code or by month, as a market signal.
- Finding community interest companies as they register, for grant and charity work.
- Enriching a prospect list with the registered number and the official address.
🚧 What it does not do
- No officers, no persons with significant control, no accounts, no filing history. This is the
incorporation record, not the whole company file.
- No contact details. The registered office address is an address for post, and it is very often
an accountant's or a formation agent's.
- Today is always incomplete, and reading a live day can mean a company appears twice or slips
past as the pages shift under the run. Repeats are dropped and never charged.
- One SIC code per search, so 20 codes is the cap and each one costs another pass per day.
- A day with more than 10,000 incorporations cannot be read in full, because the register stops
paging there. The report says how many were out of reach. The busiest day seen had 3,466.
- Dissolved dates only narrow your incorporation days. There is no dissolved-only search, and
the register lists dissolutions from 2010 onwards.
- **A company dissolved in your window and restored since comes back with its current status and no
dissolution date**, because the results page does not carry the old one.
- Name filters are whole words, as the register applies them.
- The address is one string. Only the postcode is split out.
- It is deliberately unhurried. Requests go out about one a second, so a full weekday takes
around three minutes and a 50,000-company run closer to forty.
🧭 Which company scraper do you need?
| If you want | Use |
|---|---|
| New UK companies as they are registered | This one |
| Company records across Europe | Northdata Scraper |
| Company pages on LinkedIn | LinkedIn Companies Scraper |
| The Y Combinator startup directory | Y Combinator Companies Scraper |
| Emails and phones from a list of websites | Contact Details Scraper |
❓ Questions people ask
Do I need a Companies House API key? No. This reads the public register, so there is nothing to apply for and no quota to run out of.
How do I run it every morning? Set lastDays to 1 and schedule it. That gives you yesterday, complete, with no date arithmetic to maintain.
Where do I find a SIC code? They are the UK's five-digit trade codes, the same ones a company picks when it registers. 62012 is software development.
Why did I get Salford companies in a Manchester search? Because the register matches your words against the whole address, county included. Filter the rows on postcode if you need it tighter.
Why are the rows not in company-number order? They come back in Companies House's order within each day, which is not numeric. With a row limit, "the first N" means its first N.
Is this legal? The register is published by the UK government for anyone to search. Rows carry a company's registered address, which can be a person's home, so data-protection law still applies to what you do next. Apify's write-up on scraping and the law is a fair start, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID and the dates and filters you used, and paste the RUN_REPORT record: it carries a line for every day and SIC code the run searched.