---
title: "New companies feed"
method: GET
path: "/incorporations"
tags: ["New Companies"]
---

# New companies feed

`GET /incorporations`

## Request

- Base URL: `https://api.companystack.co.uk`
- URL: `https://api.companystack.co.uk/incorporations`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Companies by incorporation date, newest first. API Free: the latest 10 companies of one day (date within the last 7 days), with company_number, company_name, incorporation_date, sic_codes and postcode only; filters and paging answer 403 plan_upgrade_required. Starter: every filter, date ranges and paging up to 90 days back; Business and Enterprise: 2 years back. total is exact for ranges of up to 31 days and counted with a short time limit beyond (null when it runs out); has_more and next_offset page through. Registered office addresses are business addresses, and sole traders are not on the register. Directors' names are published by Companies House in their business capacity: under PECR and UK GDPR they are not to be used for unsolicited electronic marketing to individuals. How you use this data is your responsibility.

## Query parameters

- `date` string, date
- `from` string, date
- `to` string, date
- `sic` string
- `region` 'TLC' | 'TLD' | 'TLE' | 'TLF' | 'TLG' | 'TLH' | 'TLI' | 'TLJ' | 'TLK' | 'TLL' | 'TLM' | 'TLN'
- `town` string
- `postcode` string
- `type` 'ltd' | 'plc' | 'llp' | 'guarantee' | 'lp' | 'cic' | 'unlimited'
- `shared_address` 'true' | 'false'
- `directors_with_other_companies` 'true' | 'false'
- `status` 'active' | 'all'
- `limit` integer
- `offset` integer

## Response `200`

A page of new companies

- object
  - `date_range` object
  - `newest_date_held` string
  - `total` integer, nullable
  - `count` integer
  - `has_more` boolean
  - `next_offset` integer, nullable
  - `results` object[]
    - `company_number` string
    - `company_name` string
    - `company_type` string, nullable
    - `company_status` string, nullable
    - `incorporation_date` string, date
    - `sic_codes` object[]
      - `code` string
      - `description` string, nullable
    - `registered_office` object
      - `post_town` string, nullable
      - `postcode` string, nullable
      - `region` string, nullable
      - `region_code` string, nullable
    - `shared_address` object
      - `postcode_companies` integer, nullable
      - `shared` boolean, nullable
    - `directors` object
      - `status` 'read' | 'partial' | 'unavailable' | 'not_read'
      - `count` integer, nullable
      - `with_other_companies` integer, nullable
      - `other_appointments` integer, nullable
      - `names` object[]
    - `ownership` object
      - `psc_count` integer
      - `no_psc_statement` boolean
    - `first_accounts_due` string, nullable
    - `confirmation_statement_due` string, nullable
  - `directors_not_read` integer
  - `plan` object
  - `rules` object
  - `notice` string

## Other responses

- `400`: Invalid filter, or a search too broad to finish (code query_too_broad)
- `401`: API key missing, malformed or revoked
- `403`: Filters, ranges or dates beyond the plan (plan_upgrade_required, date_out_of_range)
- `429`: Per-minute or per-day limit reached (`code: rate_limited`, `window: minute|day`). Wait `Retry-After` seconds; when both windows are full the day is reported. A refused request does not count against either limit. A bulk lookup (`POST /company/bulk`) counts each company number in it as one request, so one that is more than you have left is refused whole, and the body adds `requested` and `fits`.

---

[API](https://skmtc.dev/companystack/apis/companystack-api.md) · [All operations](https://skmtc.dev/companystack/apis/companystack-api/llms.txt) · [OpenAPI document](https://skmtc.dev/companystack/apis/companystack-api/revisions/8f3234237d2d?raw)
