# New UK Companies: Companies House Incorporations by SIC Code (`clearpath-data/companies-house-new-companies`) Actor

New UK companies from the official Companies House API: incorporations by date, SIC code, location and postcode, with optional officers and PSCs. Skip companies already seen for daily lead lists, or look up companies by number or name. From $0.002 per company. Not endorsed by Companies House.

- **URL**: https://apify.com/clearpath-data/companies-house-new-companies.md
- **Developed by:** [Clearpath Data](https://apify.com/clearpath-data) (community)
- **Categories:** Lead generation, Business
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 companies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### New UK Companies: Companies House Incorporations by SIC Code

A Companies House scraper for newly incorporated UK companies from the official Companies House API, filtered by SIC code, location and postcode, with optional officers and PSCs.

**Price:** $0.002 per company, +$0.0005 per company's officers list or PSC list (opt-in). You only pay for saved results. Set `maxResults` to cap the cost.

### Quick start: Companies House API: new UK companies

1. Click **Try for free**, keep the prefilled input and press **Start**.
2. Or call it from code:

```bash
curl -X POST "https://api.apify.com/v2/acts/clearpath-data~companies-house-new-companies/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" -d '{"incorporatedFrom": "7 days", "sicCodes": ["62012"], "includeOfficers": true, "maxResults": 25}'
```

### Sample output: new UK companies data

| companyNumber | companyName | incorporatedOn | postcode | sicCodes | officers |
|---|---|---|---|---|---|
| 17495351 | KALEA GROUP LIMITED | 2026-10-02 | DE6 1BX | 62012 | 2 |
| 17496740 | CHIU FLIGHT SYSTEMS LTD | 2026-10-02 | EC2A 4NA | 62012, 63110, 74909, 85590 | 1 |
| SC904673 | ELAIOS LTD | 2026-10-02 | EH15 2LY | 58210, 62012 | 1 |
| 17497026 | FRONTIERCORE LTD | 2026-10-03 | WC2H 9JQ | 62012 | 4 |
| 17497791 | OSSHQ LTD | 2026-10-03 | BL6 4NT | 62012 | 1 |

*Sample rows: real output of test run on 2026-10-09, trimmed to a few columns.*
Officer names are left out of this table on purpose. The dataset includes them when `includeOfficers` is on.

### Daily new-company leads (only companies you haven't seen)

Schedule the Actor daily with `skipPreviouslySeen: true`. Each run then returns only companies it hasn't already returned to you with the same `stateName` (kept in a named key-value store in your account). Use a different `stateName` per schedule or task, e.g. `software-london`.

### Look up UK companies by number or name

Set `mode` to **Look up companies by number or name** and list company numbers (e.g. 00000006, SC123456; leading zeros optional for 8-digit numbers) or names in `companies`. For names, `nameMatchesPerQuery` sets how many best matches to return. Officers and PSCs can be added the same way as in the new-companies feed.

### Use cases

- **Accountants, banks and business services:** reach companies in their first weeks.
- **B2B SaaS prospecting:** new companies by SIC 2007 code and postcode area.
- **Market research:** incorporation counts by sector and region over time.
- **KYB checks:** look up a company by number and get its status, registered office and, optionally, officers and PSCs.

### Input

| Field | Type | Default | What it does |
|---|---|---|---|
| `mode` | string | "newCompanies" | "New companies" lists companies incorporated in a date range, filtered by SIC code, location, postcode and company type |
| `incorporatedFrom` | string | "7 days" | First incorporation date to include (UK date) |
| `incorporatedTo` | string |  | Last incorporation date to include |
| `sicCodes` | array | \[] | Keep companies with at least one of these SIC 2007 codes, e.g |
| `locations` | array | \[] | Companies House's own location filter on the registered office address, e.g |
| `postcodePrefixes` | array | \[] | Exact postcode filter on the registered office: letters only = area ("M" matches M1 to M99 but not ML), an outward code = district ("SW1A",  |
| `companyTypes` | array | \[] | Keep only these company types |
| `companySubtype` | string |  | Optional: only community interest companies or private fund limited partnerships. |
| `companyStatus` | array | \["active"] | Keep only companies with these statuses |
| `companyNameIncludes` | string |  | Optional: only companies whose name includes this text. |
| `companyNameExcludes` | string |  | Optional: skip companies whose name includes this text, e.g |
| `skipPreviouslySeen` | boolean | false | For scheduled runs: skip companies this Actor already returned to you in earlier runs with the same state name (kept in a named key-value st |
| `stateName` | string | "default" | Separate memory for each schedule or task, e.g |
| `includeFullProfile` | boolean | false | Adds jurisdiction, next accounts due date, next confirmation statement date, charges/insolvency flags and previous names |
| `companies` | array | \[] | Company numbers (00000006, SC123456, NI036672, OC301540; leading zeros optional for 8-digit numbers), register URLs, or company names |
| `nameMatchesPerQuery` | integer | 1 | For names: how many of the best matches to return (1 = best match only). |
| `includeOfficers` | boolean | false | Adds the company's officers: name, role, appointment date, nationality, occupation, country of residence, month and year of birth, correspon |
| `includeResignedOfficers` | boolean | false | By default only current officers are returned. |
| `includePsc` | boolean | false | Adds the company's PSCs (owners and controllers): name, kind (individual, corporate entity, legal person, super-secure), natures of control, |
| `includeCeasedPsc` | boolean | false | By default only current PSCs are returned. |
| `maxResults` | integer | 100 | Stop after saving this many companies |
| `maxRequestsPerFiveMinutes` | integer | 500 | Companies House allows 600 requests per 5 minutes per key |
| `apiKey` | string |  | Recommended for scheduled or large runs |

### Integrations, schedules and AI agents

- **Schedules:** Schedule it daily with `skipPreviouslySeen: true` to get only new companies each day. See [Apify schedules](https://docs.apify.com/platform/schedules).
- **No-code tools:** send results to Google Sheets, Slack or a CRM with Apify's [Make](https://docs.apify.com/platform/integrations/make), [Zapier](https://docs.apify.com/platform/integrations/zapier) or [n8n](https://docs.apify.com/platform/integrations/n8n) integrations, or a [webhook](https://docs.apify.com/platform/integrations/webhooks) when a run finishes.
- **AI agents (MCP):** connect an MCP client such as Claude Code or Cursor to `https://mcp.apify.com?tools=clearpath-data/companies-house-new-companies` and the agent can run this Actor directly. See the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) docs.

### How much does it cost to get new UK company data?

| Plan | Price per company |
|---|---|
| Free / Bronze | $0.002 |
| Silver | $0.0017 |
| Gold and above | $0.0014 |
| Officers list (opt-in) | $0.0005 per company |
| PSC list (opt-in) | $0.0005 per company |

Plus Apify's standard Actor-start event ($0.00005 per GB of memory).

**Example:** 100 companies with officers on the Free plan cost $0.25.

### FAQ

**Data source?** The official Companies House public data API.

**Daily leads?** Schedule it with `skipPreviouslySeen` so each run returns only new companies.

**Own API key?** Optional. It's recommended for large or scheduled runs.

### Other Clearpath Data Actors

| Actor | What it does |
|---|---|
| [remote-jobs-aggregator](https://apify.com/clearpath-data/remote-jobs-aggregator) | Remote jobs from Remote OK and Himalayas |
| [lei-lookup](https://apify.com/clearpath-data/lei-lookup) | LEI lookup via the GLEIF API (LEI, name, BIC, ISIN) |
| [ats-jobs-by-company](https://apify.com/clearpath-data/ats-jobs-by-company) | Jobs from Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee boards |
| [uk-visa-sponsor-register](https://apify.com/clearpath-data/uk-visa-sponsor-register) | UK visa sponsor licence list from the GOV.UK register, with a changes feed |
| [hiring-changes-monitor](https://apify.com/clearpath-data/hiring-changes-monitor) | Jobs each company opened or closed since your last run, on the same six ATS boards |
| [us-new-business-filings](https://apify.com/clearpath-data/us-new-business-filings) | New LLCs and corporations from the NY, CO and CT state registries, since your last run |

# Changelog

This Actor's version history is a separate document: https://apify.com/clearpath-data/companies-house-new-companies/changelog.md

# Actor input Schema

## `mode` (type: `string`):

"New companies" lists companies incorporated in a date range, filtered by SIC code, location, postcode and company type. "Look up companies" fetches specific companies by number or name.

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

First incorporation date to include (UK date). Use a date (2026-10-01) or a relative value such as "7 days" (= 7 days before today). Default: 7 days.

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

Last incorporation date to include. Leave empty for today.

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

Keep companies with at least one of these SIC 2007 codes, e.g. 62012 (business software), 70229 (management consultancy), 68209 (letting own property), 56103 (takeaways). 5 digits each. Leave empty for all industries.

## `locations` (type: `array`):

Companies House's own location filter on the registered office address, e.g. "Manchester", "Kent" or "EC2A". It is broad (a search for Manchester also returns nearby towns such as Altrincham); for an exact area use Postcode prefixes. One search is made per location and results are merged without duplicates.

## `postcodePrefixes` (type: `array`):

Exact postcode filter on the registered office: letters only = area ("M" matches M1 to M99 but not ML), an outward code = district ("SW1A", "M1"; "M1" does not match M14), with a space = prefix of the full postcode ("SW1A 1"). Only companies that pass are saved and charged.

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

Keep only these company types. Leave empty for all types.

## `companySubtype` (type: `string`):

Optional: only community interest companies or private fund limited partnerships.

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

Keep only companies with these statuses. New companies are almost always "Active".

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

Optional: only companies whose name includes this text.

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

Optional: skip companies whose name includes this text, e.g. "HOLDINGS".

## `skipPreviouslySeen` (type: `boolean`):

For scheduled runs: skip companies this Actor already returned to you in earlier runs with the same state name (kept in a named key-value store in your own Apify account). Lets you use an overlapping date window (e.g. "3 days") without paying twice for the same company.

## `stateName` (type: `string`):

Separate memory for each schedule or task, e.g. "software-london". Only used with "Only companies not delivered before".

## `includeFullProfile` (type: `boolean`):

Adds jurisdiction, next accounts due date, next confirmation statement date, charges/insolvency flags and previous names. One extra API request per company, no extra charge. Always on in lookup mode.

## `companies` (type: `array`):

Company numbers (00000006, SC123456, NI036672, OC301540; leading zeros optional for 8-digit numbers), register URLs, or company names. Names use Companies House's name search.

## `nameMatchesPerQuery` (type: `integer`):

For names: how many of the best matches to return (1 = best match only).

## `includeOfficers` (type: `boolean`):

Adds the company's officers: name, role, appointment date, nationality, occupation, country of residence, month and year of birth, correspondence address. One extra API request per company and one "officers" event (see Pricing).

## `includeResignedOfficers` (type: `boolean`):

By default only current officers are returned.

## `includePsc` (type: `boolean`):

Adds the company's PSCs (owners and controllers): name, kind (individual, corporate entity, legal person, super-secure), natures of control, notified date, nationality, country of residence, month and year of birth. One extra API request per company and one "pscs" event (see Pricing).

## `includeCeasedPsc` (type: `boolean`):

By default only current PSCs are returned.

## `maxResults` (type: `integer`):

Stop after saving this many companies. 0 = no limit. You pay per saved company, so this also caps the cost.

## `maxRequestsPerFiveMinutes` (type: `integer`):

Companies House allows 600 requests per 5 minutes per key. The default 500 leaves headroom if you use the same key elsewhere. The Actor waits and retries automatically if the limit is hit.

## `apiKey` (type: `string`):

Recommended for scheduled or large runs. Paste your own free Companies House REST API key to get your own limit (600 requests per 5 minutes) and no per-run cap. Get one in a few minutes: register at developer.company-information.service.gov.uk, create an application for the Live environment, then add a key of type REST (see "How to get a free API key" in the README). Without a key, the run uses a shared key that every user shares: it is capped at 300 API requests per run and stops early if the shared key is rate-limited. Stored encrypted; never logged or saved to the output.

## Actor input object example

```json
{
  "mode": "newCompanies",
  "incorporatedFrom": "7 days",
  "sicCodes": [
    "62012"
  ],
  "locations": [],
  "postcodePrefixes": [],
  "companyTypes": [],
  "companyStatus": [
    "active"
  ],
  "skipPreviouslySeen": false,
  "stateName": "default",
  "includeFullProfile": false,
  "companies": [],
  "nameMatchesPerQuery": 1,
  "includeOfficers": true,
  "includeResignedOfficers": false,
  "includePsc": false,
  "includeCeasedPsc": false,
  "maxResults": 25,
  "maxRequestsPerFiveMinutes": 500
}
```

# Actor output Schema

## `companies` (type: `string`):

One row per company (overview view)

## `people` (type: `string`):

Officer and PSC lists when enrichment is on

## `runReport` (type: `string`):

Filters used, counts, API requests, rate-limit waits, per-lookup status and any warnings

# 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 = {
    "incorporatedFrom": "7 days",
    "sicCodes": [
        "62012"
    ],
    "includeOfficers": true,
    "maxResults": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath-data/companies-house-new-companies").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 = {
    "incorporatedFrom": "7 days",
    "sicCodes": ["62012"],
    "includeOfficers": True,
    "maxResults": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath-data/companies-house-new-companies").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 '{
  "incorporatedFrom": "7 days",
  "sicCodes": [
    "62012"
  ],
  "includeOfficers": true,
  "maxResults": 25
}' |
apify call clearpath-data/companies-house-new-companies --silent --output-dataset

```

## MCP server setup

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

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/cC9ka6qKbywYWRuyN/builds/YXlVFrQ7IPEPWERbi/openapi.json
