# UK Companies House Data · New Companies by SIC, No API Key (`thequietstack/uk-company-register`) Actor

All live UK companies from the official free Companies House snapshot, filtered by SIC code, postcode, town, name, status and dates. Find new companies in your sector or accounts falling due. No API key, no login, no director data.

- **URL**: https://apify.com/thequietstack/uk-company-register.md
- **Developed by:** [TheQuietStack](https://apify.com/thequietstack) (community)
- **Categories:** Lead generation, Business
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.17 / 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

## UK Companies House Data: New Companies by SIC, No API Key

All live UK companies from the official **free Companies House snapshot**, filtered down to the ones you want: new companies in your sector, firms in a postcode area, accounts falling due. No API key, no login, no registration.

**Typical uses:** new companies in your SIC code each month · B2B lists by sector and postcode · companies with accounts due soon · market sizing by sector or town.

No director or person data is included: one row per company, as on the public register.

### Input example

```json
{ "sicCodes": ["62012"], "postcodePrefixes": ["M1", "LS"], "incorporatedSince": "2026-09-01", "maxRows": 500 }
```

At least one filter is required. SIC codes and postcodes work as prefixes (`62` = all of division 62). By default the newest companies come first.

### Output example (one row, shortened)

```json
{ "companyNumber": "17469839", "companyName": "EXAMPLE STUDIOS LIMITED", "companyCategory": "Private Limited Company", "companyStatus": "Active",
  "incorporationDate": "2026-09-21", "sicCodes": ["58210", "62012"], "sicDescriptions": ["Publishing of computer games", "Business and domestic software development"],
  "postTown": "LONDON", "postcode": "W1W 5PF", "accountsNextDue": "2028-06-21", "confirmationNextDue": "2027-10-04",
  "companyUrl": "https://find-and-update.company-information.service.gov.uk/company/17469839", "snapshotDate": "2026-11-01" }
```

### Pricing

Pay per event: **one charge per company row**. `maxRows` caps every run. A run without a match writes one free status row.

### Honest limits

- **Monthly data.** Companies House publishes this snapshot once a month, so companies from the current month are missing. `snapshotDate` is on every row. Run it monthly, not hourly.
- **Live companies only.** Dissolved companies are not in the snapshot.
- Each run reads the whole register (about 5.7 million lines), which takes a few minutes. `sortBy: fileOrder` stops at the limit and is much faster, but then returns mostly names near the start of the alphabet.
- The registered office is what the company filed; for small companies it can be a home address. You are responsible for data protection and marketing law when you use the data, for example UK GDPR and PECR.
- The source is Companies House, which says it imposes no rules on how the public register is used. It is not connected to this Actor.

# Actor input Schema

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

Full codes or prefixes: 62012, or 62 for all computer programming and consultancy.

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

Start of the postcode of the registered office: M1, EC1A, BS.

## `towns` (type: `array`):

Exact town of the registered office, for example LEEDS.

## `nameContains` (type: `array`):

Any of these words in the company name.

## `incorporatedSince` (type: `string`):

A date like 2026-09-01.

## `incorporatedUntil` (type: `string`):

A date like 2026-10-31.

## `accountsDueBefore` (type: `string`):

Companies with accounts due before this date.

## `companyStatuses` (type: `array`):

For example Active, Liquidation. Empty = all in the snapshot.

## `companyCategories` (type: `array`):

For example Private Limited Company. Empty = all.

## `sortBy` (type: `string`):

Newest reads the whole register and takes several minutes. With file order a limit returns mostly names near the start of the alphabet, in seconds.

## `maxRows` (type: `integer`):

Hard cap on rows, and therefore on the bill.

## Actor input object example

```json
{
  "sicCodes": [
    "62012"
  ],
  "incorporatedSince": "2026-09-01",
  "sortBy": "fileOrder",
  "maxRows": 20
}
```

# Actor output Schema

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

No description

## `summary` (type: `string`):

No description

# 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 = {
    "sicCodes": [
        "62012"
    ],
    "incorporatedSince": "2026-09-01",
    "sortBy": "fileOrder",
    "maxRows": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("thequietstack/uk-company-register").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 = {
    "sicCodes": ["62012"],
    "incorporatedSince": "2026-09-01",
    "sortBy": "fileOrder",
    "maxRows": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("thequietstack/uk-company-register").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 '{
  "sicCodes": [
    "62012"
  ],
  "incorporatedSince": "2026-09-01",
  "sortBy": "fileOrder",
  "maxRows": 20
}' |
apify call thequietstack/uk-company-register --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,thequietstack/uk-company-register"
        }
    }
}
```

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/v9AHQ2swhOl5GKtSt/builds/BWEzm0sY4uNz6TxiU/openapi.json
