Companies House API: Search companies
Searches the UK Companies House register by company name and returns each company's status, type, incorporation date and registered office address, in result order.
Unofficial. Not affiliated with or endorsed by Companies House.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Page optional
page Search results page to start from, for example 2.
1 (default)
Whole number 1 or more.
- Max Results optional
max_results Maximum number of companies to return, for example 20.
4
Whole number from 1 to 100. Default
20.- Company Name, required
company_name Company name to search, for example Tesco or Monzo Bank.
Tesco
- Include Dissolved optional
include_dissolved Include dissolved companies in the results, for example true.
true
True or false. Default
false.
Input as JSON
{ "max_results": 4, "company_name": "Tesco", "include_dissolved": true}Output
{ "companies": [ { "link": "https://find-and-update.company-information.service.gov.uk/company/00445790" , "status": "Active", "company_name": "TESCO PLC", "company_type": "Public limited Company", "company_number": "00445790", "incorporation_date": "1947-11-27", "registered_office_address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA" }, { "link": "https://find-and-update.company-information.service.gov.uk/company/09384423" , "status": "Active", "company_name": "KFORD TYRES (GORNAL) LTD", "company_type": "Private limited Company", "company_number": "09384423", "incorporation_date": "2015-01-12", "registered_office_address": "2 Dawley Brook Road, Kingswinford, England, DY6 7BD" }, { "link": "https://find-and-update.company-information.service.gov.uk/company/05888957" , "status": "Dissolved", "company_name": "TESCO AQUA (FINCO2) LIMITED", "company_type": "Private limited Company", "company_number": "05888957", "incorporation_date": "2006-07-27", "registered_office_address": "1 More London Place, London, SE1 2AF" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"find-and-update.company-information.service.gov.uk/search_companies","input":{"max_results":4,"company_name":"Tesco","include_dissolved":true}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "find-and-update.company-information.service.gov.uk/search_companies" , "input": { "max_results": 4, "company_name": "Tesco", "include_dissolved": True }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "find-and-update.company-information.service.gov.uk/search_companies" , "input": { "max_results": 4, "company_name": "Tesco", "include_dissolved": true } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run find-and-update.company-information.service.gov.uk/search_companies# with {"max_results":4,"company_name":"Tesco","include_dissolved":true}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "company_name" ], "properties": { "page": { "type": "integer", "default": 1, "minimum": 1, "description": "Search results page to start from, for example 2." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of companies to return, for example 20." }, "company_name": { "type": "string", "minLength": 1, "description": "Company name to search, for example Tesco or Monzo Bank." }, "include_dissolved": { "type": "boolean", "default": false, "description": "Include dissolved companies in the results, for example true." } }}Output schema
{ "type": "object", "required": [ "companies" ], "properties": { "companies": { "type": "array", "items": { "type": "object", "required": [ "company_name", "company_number", "status", "link" ], "properties": { "link": { "type": "string", "description": "Companies House company page." }, "status": { "type": "string", "description": "Company status in words." }, "company_name": { "type": "string", "description": "Registered company name." }, "company_type": { "type": [ "string", "null" ], "description": "Company type in words, if shown." }, "company_number": { "type": "string", "description": "Companies House number." }, "incorporation_date": { "type": [ "string", "null" ], "description": "Date incorporated (YYYY-MM-DD), if shown." }, "registered_office_address": { "type": [ "string", "null" ], "description": "Registered office address on one line, if shown." } } }, "description": "Companies in search-result order." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
find-and-update.company-information.service.gov.uk/search_companies- Returns
- company name, number, status, company type, incorporation date, registered office address, link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method find-and-update.company-information.service.gov.uk/search_companies with the inputs above.
Ask your agent
- Find UK registered companies with the name Tesco and show their status, type and registered office address
- Look up Monzo Bank on the Companies House register and give me its incorporation date
- I need a list of up to 50 companies matching 'Greenfield Holdings' including dissolved ones
- Search the UK company register for 'Bramble Logistics Ltd' and show results from page 3 onward
- Which companies named 'Northwind Consulting' are on the company-information.service.gov.uk register, and where are their registered offices?
See more
All Companies House methodsLooks up a UK company on Companies House by name, company number or Companies House link and returns its public registration details; a name prefers an active exact match.
company-information.service.gov.uk/get_company_profileLists a UK company's Companies House filings, newest first, with date, form code, type, description, page count and PDF link. Finds the company by name, company number or Companies House link; a category picks accounts, confirmation statements, officers, address, capital, charges or incorporation filings.
find-and-update.company-information.service.gov.uk/list_filing_historyLists a UK company's current and resigned directors, secretaries and other officers, found by company name, number or Companies House link.
find-and-update.company-information.service.gov.uk/list_directorsLists a UK company's people with significant control and any register statement, from the public Companies House register. Ceased owners and withdrawn statements are included only when asked for.
find-and-update.company-information.service.gov.uk/list_ownersFinds companies on Trustpilot by name or what they do, with TrustScore, review count, categories, location, logo and links. A preferred country moves companies listed in that country to the front.
trustpilot.com/search_companiesLooks up a French company by name, SIREN or SIRET and returns its registration, directors and latest public financial figures. Financial figures are null when not published; a city or postcode helps pick the right namesake.
annuaire-entreprises.data.gouv.fr/get_companySearches the Y Combinator company directory by keyword, industry, batch, location, hiring and status, returning companies in directory order.
ycombinator.com/search_companiesGets a company's Trustpilot rating summary from its name or website: TrustScore, rating label, total reviews, star breakdown, categories, claimed status, reply statistics and location when shown.
trustpilot.com/get_company_rating