# UK New Companies Feed: Companies House Daily (`offerastudio/uk-new-companies-feed`) Actor

Get newly incorporated UK companies from the official Companies House API, yesterday by default. Filter by date range, sector presets, SIC codes, location or postcode, and get company number, name, status, type, SIC codes with descriptions, registered office address and a Companies House link.

- **URL**: https://apify.com/offerastudio/uk-new-companies-feed.md
- **Developed by:** [Offera Studio](https://apify.com/offerastudio) (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 $2.00 / 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?

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

### What does UK New Companies Feed do?

**UK New Companies Feed** gives you the companies that were **newly incorporated in the UK**, straight from the **official Companies House API**. By default it returns **yesterday's new companies**; you can choose any date range up to a year and filter by sector, SIC code, location or postcode. For every company you get:

- 🏢 **company number, name, status, incorporation date and company type** (with a plain-English label)
- 🏷️ **SIC codes with descriptions** from the official condensed SIC 2007 list, plus which of your **sector presets** matched
- 📍 the **registered office address** (the company's official address on the register), also as one line and with the postcode on its own
- 🔗 a **link to the company's Companies House page**
- 👤 optional: the **current officers' names and roles** only (off by default, see "Personal data" below)

Run it once, or **schedule it every morning** to get a daily feed of new UK businesses in Google Sheets, your CRM, Slack or Zapier/Make.

### Who is this Companies House feed for?

- **B2B sales and lead generation**: accountants, banks, insurers, web designers, payment and software providers who want to reach businesses in their first weeks.
- **Local services**: find new construction, food, beauty or fitness businesses in your postcode area.
- **Market research and journalism**: count new companies by sector, region or day and spot trends.
- **Investors and analysts**: track new companies in a sector, e.g. every new software company.
- **Compliance and KYC teams**: monitor new registrations that match a name or an address area.

### How to get a free Companies House API key

The Actor uses the official Companies House Public Data API, which needs a **free API key**:

1. Go to the **Companies House Developer Hub**: https://developer.company-information.service.gov.uk
2. Click **Sign in / Register** and create a Companies House account (email and password; it's free).
3. Open **Your applications** → **Create an application**. Give it a name (e.g. "Apify feed"), a short description, and choose **Live**.
4. In the application, choose **Create new key** and select **API key** (REST) as the key type. Leave any optional restrictions, such as allowed IP addresses, empty: Apify runs don't use a fixed IP.
5. Copy the key and paste it into **Companies House API key** in this Actor. It is stored **encrypted** by Apify.

**No key yet?** Just click **Start**: you get one row explaining how to get a key and **10 made-up sample companies** (marked `isSampleData: true`) so you can see the output format. Sample rows are free. If the Actor's developer has set up a shared default key, runs without a key use it instead; your own key gives you your own rate limit.

### Sector presets

Pick one or more ready-made sectors instead of looking up SIC codes. Each preset is a list of SIC 2007 codes:

| Preset | SIC codes |
| --- | --- |
| Tech | 58210, 58290, 62011, 62012, 62020, 62030, 62090, 63110, 63120, 63990 |
| Construction | every code starting with 41, 42, 43 |
| Food and drink | 10…, 11…, 472… (food shops), 56… (restaurants, takeaways, pubs) |
| Hospitality | 55… (hotels, holiday lets), 56… |
| Beauty | 96020 (hair and beauty), 96040 (wellbeing), 47750 (cosmetics shops), 20420 (cosmetics makers) |
| Online retail | 47910 |
| Also available | retail, real estate, consulting, accounting & legal, marketing, creative & media, health, fitness, transport & logistics, finance, education, cleaning, automotive, recruitment, care services |

You can also enter **SIC codes** yourself: full 5-digit codes (`62012`) or a prefix (`62` = every code starting with 62). A company matches if it has **any** of the chosen codes.

### How to use it

1. Paste your API key (or run without one to see sample data).
2. Leave the dates empty for **yesterday**, or set **Incorporated from / to** (a date like `2026-09-01` or a relative date like `7 days`).
3. Optional: choose **Sectors** and/or **SIC codes**, a **Location** (Companies House's own filter, e.g. `Manchester`) or **Postcode prefixes** (`M` = Manchester area, `M1` = one district, `SW1A` …).
4. Optional: change **Company status** (default: active), **Company types**, **Company name includes** and **Maximum companies** (default 100).
5. Click **Start**. The **Companies** tab shows one row per company; **SIC codes**, **Addresses** and **Officers** have their own tabs.

To build a daily feed, save the input as a **task** and add a **schedule** (for example every morning at 8:00 UK time), then connect the dataset to Google Sheets or your CRM.

### Input example

```json
{
    "apiKey": "your-companies-house-api-key",
    "incorporatedFrom": "7 days",
    "sectors": ["tech", "construction"],
    "postcodePrefixes": ["M", "SK"],
    "companyStatus": ["active"],
    "companyTypes": ["ltd"],
    "maxResults": 500,
    "includeOfficers": false
}
```

### Output example

One item per company (made-up data):

```json
{
    "companyNumber": "ZZ123456",
    "companyName": "EXAMPLE SOFTWARE STUDIO LTD",
    "companyStatus": "active",
    "companyStatusLabel": "Active",
    "incorporationDate": "2026-09-29",
    "companyType": "ltd",
    "companyTypeLabel": "Private limited company",
    "companySubtype": null,
    "sicCodes": [
        { "code": "62012", "description": "Business and domestic software development" },
        { "code": "62020", "description": "Information technology consultancy activities" }
    ],
    "sicCodesText": "62012 Business and domestic software development; 62020 Information technology consultancy activities",
    "matchedSectors": ["tech"],
    "registeredOfficeAddress": {
        "addressLine1": "1 Example Street",
        "addressLine2": null,
        "locality": "Manchester",
        "region": null,
        "postalCode": "M1 1AA",
        "country": "England"
    },
    "registeredOfficeAddressText": "1 Example Street, Manchester, M1 1AA, England",
    "postalCode": "M1 1AA",
    "companiesHouseUrl": "https://find-and-update.company-information.service.gov.uk/company/ZZ123456",
    "officers": null,
    "isSampleData": false,
    "retrievedAt": "2026-09-30T07:02:11.000Z",
    "error": null
}
```

With **Include officers** on, `officers` looks like `[{ "name": "EXAMPLE, Alex", "role": "Director" }]`: only the name and role, nothing else.

Rows with an `error` code cost nothing: `missing-api-key` (with sample data), `invalid-api-key`, `invalid-input`, `no-results` (nothing matched your filters), `rate-limited`, `api-error`.

### How much does it cost?

This Actor uses **pay per event**:

| Event | Price |
| --- | --- |
| Company returned | **$0.002** per company |
| Error rows, the "no results" row and sample data | **free** |

- 100 companies cost **$0.20**; 1,000 cost **$2**.
- The price is the same with officers included.
- The Companies House API itself is free.
- Apify also charges a tiny standard start fee per run (about $0.0000125 at the default 256 MB).
- Set **Maximum cost per run** in the run options and the Actor stops when it is reached.

### Personal data and your responsibility

- **Company data only by default.** Company number, name, status, type, SIC codes and the registered office address describe the company, not a person.
- **Officer names are personal data** under the UK GDPR, even though Companies House publishes them. That's why **Include officers is off by default**. When you turn it on, the Actor returns only each current officer's **name and role** as shown on the public register: no date of birth, nationality, occupation or address.
- **You are responsible** for having a lawful basis to process officer names, for telling people how you use their data where the law requires it, for honouring objections and opt-outs, and for following direct marketing rules (PECR in the UK) if you contact anyone. Small companies' registered offices are sometimes a director's home address; handle addresses with care too.
- The data comes from the official Companies House register. Contains public sector information licensed under the Open Government Licence v3.0.
- This is not legal advice.

### Limitations

- **Needs a free Companies House API key** (see above). The API allows **600 requests per 5 minutes** per key; the Actor stays just below that and waits when Companies House asks it to.
- **Speed:** without officers, one request returns up to 5,000 companies, so most runs take seconds. With officers, each company needs one more request, so large runs take longer (about 1,000 companies in 10 minutes).
- **Up to 366 days and 10,000 companies per run.** Days are searched newest first.
- **Very recent days can be incomplete** while Companies House processes new registrations. For a daily feed, run each morning for "yesterday", or use a 2-day range and de-duplicate on `companyNumber`.
- **Location** uses Companies House's own filter on the registered office address. **Postcode prefixes** are checked by the Actor on the registered office postcode.
- SIC descriptions come from the condensed SIC 2007 list; a code that isn't on it gets `description: null`.

### FAQ

#### Is this data official?

Yes. It comes from the Companies House Public Data API, the official source for UK company information, and is as current as the register.

#### Why did I get sample data?

No API key was given. Add your free key (see "How to get a free Companies House API key") to get real companies. Sample rows are marked `isSampleData: true` and are never billed.

#### Why did I get "no-results"?

Nothing matched your filters for the chosen dates. Try a wider date range or fewer filters. The row is free.

#### Can I get directors' contact details?

No. Companies House doesn't publish them, and this Actor only returns officer names and roles when you ask for them.

#### Can I run it every day automatically?

Yes. Save a task, add a schedule in Apify Console, and connect the dataset to Google Sheets, a webhook, Zapier, Make or your CRM.

### More tools from the same developer

All pay-per-result, no proxy or login needed, built and maintained by the same developer:

**Website audits**

- [Website Accessibility Checker: WCAG 2.2 & EAA](https://apify.com/offerastudio/website-accessibility-audit): accessibility issues with fixes, SEO basics and security headers.
- [Cookie & Tracker Audit: GDPR Consent Checker](https://apify.com/offerastudio/cookie-tracker-audit): cookies and tracking tags that load before consent.
- [AI Crawler Access Checker: robots.txt & llms.txt](https://apify.com/offerastudio/ai-crawler-access-audit): which AI crawlers a site allows, plus llms.txt.
- [Website Change Monitor: Diffs, Prices & Alerts](https://apify.com/offerastudio/website-change-monitor): get a row only when a page changes, with a clean diff.

**Company data and compliance**

- [Company Contact Finder: Emails, Phones & Socials](https://apify.com/offerastudio/company-contact-finder): contact details published on company websites.
- [EU VAT Number Validator: Bulk VIES Checker](https://apify.com/offerastudio/eu-vat-number-validator): bulk VAT checks with name, address and consultation number.
- [LEI Corporate Tree: GLEIF Parents & Subsidiaries](https://apify.com/offerastudio/gleif-lei-corporate-tree): LEI lookup with parents, subsidiaries and a KYC summary.

**Market signals**

- [US WARN Layoff Notices: 12 States Daily Feed](https://apify.com/offerastudio/us-warn-layoff-notices): layoff and plant closure notices from official state sources.
- [US Product Recalls Monitor: FDA & CPSC Feed](https://apify.com/offerastudio/us-product-recalls-monitor): FDA and CPSC recalls in one feed, with severity.

### Feedback

Missing a sector preset or a filter you need? Open an issue on the **Issues** tab.

# Changelog

This Actor's version history is a separate document: https://apify.com/offerastudio/uk-new-companies-feed/changelog.md

# Actor input Schema

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

Your free REST API key from the Companies House Developer Hub (developer.company-information.service.gov.uk: register, create an application, create an API key). It is stored encrypted. Leave it empty to use the Actor owner's default key if one is set, or to see sample data.

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

First incorporation date (UK date), e.g. 2026-09-01, or a relative date like "7 days" (7 days ago). Leave both dates empty for yesterday's new companies. With only this date set, the range runs to today. At most 366 days per run.

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

Last incorporation date (UK date), inclusive. Companies House usually lists a day's new companies by the next morning.

## `sectors` (type: `array`):

Ready-made groups of SIC codes, for example Tech = software development, IT consultancy, data processing and web portals. Combined with the SIC codes below: a company matches if it has any of the codes.

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

SIC 2007 codes as used by Companies House: 5 digits (62012) or a prefix of 2 to 4 digits (62 = every code starting with 62). Leave empty, together with Sectors, for all industries.

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

Passed to Companies House's own location filter, which searches the registered office address, e.g. Manchester or Cardiff.

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

Keep only companies whose registered office postcode starts with one of these: an area (M = Manchester area, not ME), a district (M1, SW1A) or a longer start (SW1A 1).

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

Default: active. New companies are almost always active.

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

Leave empty for all types, or pick e.g. Private limited company and Limited liability partnership.

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

Optional word the company name must contain, e.g. BAKERY.

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

Stop after this many companies (newest days first). Each company returned costs $0.002.

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

Adds the current officers of each company: only the name and role (e.g. Director) as published on the public register. No dates of birth, nationalities or addresses. Names are personal data under UK GDPR: you are responsible for having a lawful basis and for how you use them. Costs one extra API request per company, so runs are slower; the price stays $0.002 per company.

## `useSampleDataWithoutKey` (type: `boolean`):

Without a key, return 10 made-up sample companies (clearly marked isSampleData = true) so you can see the output format. Sample rows are free.

## Actor input object example

```json
{
  "sectors": [
    "tech"
  ],
  "companyStatus": [
    "active"
  ],
  "maxResults": 50,
  "includeOfficers": false,
  "useSampleDataWithoutKey": true
}
```

# Actor output Schema

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

No description

## `sicCodes` (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 = {
    "sectors": [
        "tech"
    ],
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("offerastudio/uk-new-companies-feed").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 = {
    "sectors": ["tech"],
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("offerastudio/uk-new-companies-feed").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 '{
  "sectors": [
    "tech"
  ],
  "maxResults": 50
}' |
apify call offerastudio/uk-new-companies-feed --silent --output-dataset

```

## MCP server setup

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

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/ThvVTxYh2GNNurlU5/builds/aigNHNs9T8FTeTLgZ/openapi.json
