Companies House API in Python — a working guide

The UK register has a free, genuinely good REST API. This guide covers authentication, search, company profile, officers and PSC from Python, and is honest about the point where the free API stops being enough.

Authentication

Companies House uses HTTP Basic auth with your API key as the username and an EMPTY password — not a bearer token, which is the most common cause of a 401. Register a free application on the developer hub for a key.

Search, profile, officers and PSC

Search returns candidates; the profile endpoint returns the record. Confirm on company_number, never on name — UK names are not unique and change often. Officers and PSC are separate paginated endpoints using start_index rather than a next link, and PSC can 404 entirely for companies that have none. PSC is the UK beneficial-ownership register and is unusually open: most EU equivalents closed to public access after the 2022 CJEU ruling.

Three things that bite

Company numbers are strings, not integers — 00445790 is Tesco, 445790 is a 404, so zero-pad to 8 characters. There is no check digit, so a UK number cannot be validated offline, only shape-checked. The rate limit is 600 requests per five minutes and returns 429 with Retry-After.

When the free API is enough

If you only need the UK, use Companies House — it is free and authoritative, and paying for a wrapper around a free government API makes no sense. It runs out when you need other countries, sanctions or export-control screening, insolvency outside the UK, or one schema across registries. That is what Prometiam adds: the same call shape for ES, FR, GB, IE, PL and NO, with 1,000 free calls a month and no card.

Read the full guide · Get a free API key

Frequently asked questions

How do you authenticate with the Companies House API?
HTTP Basic auth with your API key as the username and an EMPTY password - not a bearer token, which is the most common cause of 401s. Register a free application on the Companies House developer hub to obtain a key.
Can a UK company number be validated offline?
Only its shape: 8 digits, or two letters followed by six digits such as SC123456. Companies House numbers carry no check digit, unlike a Spanish NIF or a Norwegian organisasjonsnummer, so whether the company exists can only be confirmed by a lookup.
What is the Companies House API rate limit?
600 requests per five minutes. Exceeding it returns HTTP 429 with a Retry-After header, which should be honoured - persistently exceeding the limit can get an API key suspended.
Is the free Companies House API enough?
If you only need the UK, yes - it is free, well documented and authoritative, and there is no good reason to pay for a wrapper around it. It runs out when you need other countries, sanctions or export-control screening, insolvency outside the UK, or one schema across several registries.