Companies House
Companies House Company Search API
Start here. This is the entry point that turns a company NAME into the company_number every other Companies House endpoint is keyed by. Searches the official UK statutory register and returns company number, name, status, incorporation or dissolution date, registered office address and any FORMER names the term matched, as JSON. 20 companies per page. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonquerystringrequiredCompany name, a fragment of one, or a company number. 1-200 characters and must not be blank or whitespace-only. Matches CURRENT AND FORMER names, which is the point of searching a register by name: a search for tesco returns KFORD TYRES (GORNAL) LTD because it used to trade as TESCO TYRES LTD, and the matched former name comes back in previous_company_names.
Example: tesco
pageintegerdefault:1Results page, 1-based, 20 results per page. CAPPED AT 50 and a higher value is rejected with a 400. The register serves a 1000-result WINDOW per term however many matches it reports - it claims 10,000 for a broad term and then answers page 51 with HTTP 416. Narrow the query to reach the rest.
Example: 2
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Step 1: name -> company_number
matches = client.companies_house.search("tesco")
company_number = matches["data"]["results"][0]["company_number"]
# Step 2: every other Companies House endpoint takes that number
profile = client.companies_house.company(company_number)
print(profile)Response