# New UK Companies Scraper - Companies House Incorporations (`dami_studio/companies-house-new-companies-scraper`) Actor

Every company Companies House registered on the days you pick: name, number, status, type, incorporation date, SIC codes with descriptions, and the full registered office address with its postcode. Filter by SIC code, town, company type or status. No API key or login.

- **URL**: https://apify.com/dami\_studio/companies-house-new-companies-scraper.md
- **Developed by:** [Dami's Studio](https://apify.com/dami_studio) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.70 / 1,000 company returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## New UK Companies Scraper

Pick a day, or a run of days, and get every company Companies House registered on them. Each company is one row: number and name, status, type, incorporation date, SIC codes with what they mean, and the full registered office address with the postcode split out.

It reads the public search on Companies House's own site, find-and-update.company-information.service.gov.uk, and takes the same filters its advanced search offers: words in the name, SIC code, address, company type, subtype, status and dissolved date. There's no API key to register for and nothing to log in to.

For scale: 3,466 companies were incorporated on Tuesday 1 September 2026. Saturday 12 September had 387.

### What it doesn't do

- **No directors, shareholders or people with significant control.** Each row links to the company's Companies House page, where they're listed.
- **No phone numbers, emails or websites.** Companies House doesn't hold them.
- **No accounts or filing history.** A company a few days old hasn't filed anything yet anyway.
- **Today is never finished.** Companies are registered all day, so a range that ends today is complete only up to the minute you run it. For whole days, end at yesterday.
- **No search by dissolution date alone.** The dissolved dates narrow down the companies incorporated on your days. They work alongside Incorporated from or Last days, not instead of them.

### Input

**Incorporated from, Incorporated to.** The days you want, written like `2026-09-01`. Leave the end empty and the run goes up to today. One run covers up to 366 days.

**Last days.** Use this instead of dates for the last few full days, ending yesterday. Set it to `1` on a daily schedule and each run brings in the previous day's companies.

**Company name contains.** Whole words, such as `consulting` or `property management`. A name has to hold every word, in any order, and capitals don't matter. Companies House matches whole words only, so `consult` finds AHM-CONSULT LTD but not ACME CONSULTING LTD. On 1 September 2026, `consulting` found 31 companies.

**Leave out names containing.** Any company whose name has one of these words is dropped. `ltd` leaves only the names spelled out as LIMITED. `tech` drops DELTA TECH LTD and keeps DELTA TECHNOLOGIES LTD.

**SIC codes.** Five-digit industry codes, such as `62012` for software development or `56101` for licensed restaurants. Companies House searches one code at a time, so each code you add is a search of its own, and a company filed under two of your codes comes back once. Up to 20 codes.

**Registered office address contains.** A town or county. Companies House matches it against the whole address, county included, which is why a Salford company turns up for Manchester: its address says Greater Manchester.

**Company types, Company subtype, Company status.** Leave them empty for everything. Nearly every new company is an active private limited company. Companies House lets you search by two subtypes: community interest companies and private fund limited partnerships.

**Dissolved from, Dissolved to.** Out of the companies incorporated on your days, only the ones dissolved between these dates. One of the two is enough. Companies House lists dissolutions from 1 January 2010 on.

A dissolved-date search also brings back companies that were dissolved in your window and later restored to the register. Their rows show the status they have now, usually Active, and no dissolution date. Of the 288 companies incorporated on 2 January 2020 and dissolved in July 2021, 4 were like that.

**Maximum companies.** 1,000 unless you change it, and up to 50,000 per run.

```json
{
  "lastDays": 1,
  "sicCodes": ["62012"],
  "location": "Manchester",
  "maxCompanies": 500
}
```

Companies incorporated in January 2020 that were dissolved during 2021:

```json
{
  "incorporatedFrom": "2020-01-01",
  "incorporatedTo": "2020-01-31",
  "dissolvedFrom": "2021-01-01",
  "dissolvedTo": "2021-12-31"
}
```

### Output

One row per company, day by day, in the order Companies House lists them.

| Field | Example | Notes |
|---|---|---|
| `companyName` | `ROUTE TO TRANSMISSION CIC` | |
| `companyNumber` | `17429167` | Scottish companies start `SC`, Northern Irish ones `NI`, LLPs `OC` |
| `status` | `Active` | Companies House's word for it; overseas entities show `Registered` |
| `companyType` | `Private limited by guarantee without share capital` | |
| `companySubtype` | `Community Interest Company (CIC)` | empty for most companies |
| `incorporationDate` | `2026-09-01` | for an overseas entity, the day it was registered in the UK |
| `dissolutionDate` | `2021-07-06` | only while a company is dissolved; a company restored since has none |
| `sicCodes` | `["85590", "85600", "88990", "94990"]` | LLPs, partnerships and overseas entities have none |
| `sicDescriptions` | `["Other education n.e.c.", "Educational support services", …]` | in the same order as the codes |
| `registeredOfficeAddress` | `2 Shaftesbury Waye, Hayes, England UB4 0HL` | the whole address, as Companies House shows it |
| `postcode` | `UB4 0HL` | empty for an address outside the UK |
| `url` | `https://find-and-update.company-information.service.gov.uk/company/17429167` | the company's page |

The run also leaves a report, `RUN_REPORT`, in its key-value store: what each day's search listed and returned, anything skipped and why, and why the run stopped.

### What you pay

Each company in your dataset is one charge. Nothing else costs anything: not a day with no new companies, not a search Companies House didn't answer, not a row that didn't match your search, and not a company you already got under another of your SIC codes. If you set a maximum charge for the run, it stops when that's reached, and every row you get has been paid for. The price is on the Pricing tab.

### Limits

- 366 days, 20 SIC codes and 50,000 companies per run.
- A Companies House search shows 10,000 companies at most. The actor searches one day at a time, so that only matters on a day with more than 10,000 new companies; the busiest day we've checked had 3,466. If it ever happens, the status message says how many were out of reach.
- It reads about one page of 20 companies a second, so a busy weekday takes a few minutes, and a run of tens of thousands of companies can take the best part of an hour.
- When Companies House stops answering for a while, the actor waits a couple of minutes and carries on. If pages still can't be read, the status names the days that are incomplete, and nothing is charged for what's missing.
- If Companies House won't run a search the way you set it, the run stops straight away, quotes what Companies House said, and charges nothing.

### Where the data comes from

Companies House, the UK's registrar of companies. Its own statement on reuse is that it "imposes no rules or requirements on how the information on the public register is used". It does ask anyone using information from its website to credit Companies House as the source, so do that if you publish what you get.

The addresses are public, but a small company's registered office is sometimes somebody's home. If you use the list to contact people, keeping within UK data protection rules is up to you.

### Questions

**Can I get new companies every morning?** Schedule the actor with Last days set to 1. Each run returns the previous day's companies.

**A company I expected isn't there. Why?** Check its incorporation date on its Companies House page. The search goes by that date, and an overseas entity goes by the day it registered in the UK. A company registered after your run started won't be in it either.

**Why does a company in my dissolved-date search say Active?** It was dissolved in your window and restored to the register afterwards. Companies House still lists it for that dissolution, but the row shows the company as it is today.

**Is this the Companies House API?** No. It reads the search pages anyone can open in a browser, so there's no key to apply for.

# Actor input Schema

## `incorporatedFrom` (type: `string`):

The first day, as YYYY-MM-DD. Leave it empty to use Last days instead.

## `incorporatedTo` (type: `string`):

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.

## `lastDays` (type: `integer`):

Used when Incorporated from is empty: the last N full days, ending yesterday. 1 means yesterday only, which suits a daily schedule.

## `companyNameIncludes` (type: `string`):

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.

## `companyNameExcludes` (type: `string`):

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.

## `sicCodes` (type: `array`):

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.

## `location` (type: `string`):

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.

## `companyTypes` (type: `array`):

Leave it empty for all types. Nearly every new company is a private limited company.

## `companySubtypes` (type: `array`):

Leave it empty for any subtype. Most companies have none. These are the two Companies House lets you search by.

## `companyStatus` (type: `array`):

Leave it empty for any status. Almost every company in a recent range is active; older ranges also hold dissolved ones.

## `dissolvedFrom` (type: `string`):

Only companies dissolved on or after this day, out of those incorporated on your days. Companies House lists dissolutions from 1 January 2010 on.

## `dissolvedTo` (type: `string`):

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.

## `maxCompanies` (type: `integer`):

The most companies returned in one run, across all days. Each company returned is one charge.

## Actor input object example

```json
{
  "lastDays": 3,
  "maxCompanies": 20
}
```

# Actor output Schema

## `results` (type: `string`):

One row per company incorporated in your dates: name, number, status, type, incorporation date, SIC codes with descriptions, registered office address, postcode and a link to its Companies House page.

## `report` (type: `string`):

What each day's search found and returned, rows skipped and why, and why the run stopped.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "lastDays": 3,
    "maxCompanies": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("dami_studio/companies-house-new-companies-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "lastDays": 3,
    "maxCompanies": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("dami_studio/companies-house-new-companies-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "lastDays": 3,
  "maxCompanies": 20
}' |
apify call dami_studio/companies-house-new-companies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/companies-house-new-companies-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0Qwon3EJvpX9WShpj/builds/wenfeoZQYSW7poKHG/openapi.json
