Catalog / Companies House

Companies House API

find-and-update.company-information.service.gov.uk

Read live public company, filing, and officer information from Companies House. Search supports company names, registration numbers, and officer names; advanced company search passes the source's native filters and page number through.

  • Business
  • companies
  • business registry
  • UK
  • public records
5 endpointsDocs updated

Endpoint health

Loading verification…

Connect your agent

Connect through MCP so your agent can find this API, read its docs, and call its endpoints.

Setup guide

Add the server from your terminal.

Claude Code · terminal
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcp

In Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.

Then ask your agent to use the Companies House API for your task.

Call it over HTTP

Get an API key

Sign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.

Search companies or officers

Search keyword: company name, company registration number, or officer name.

Optional parameters 2

One-based source result page.

Search company records or officer records.

View call pricing
cURL · Search
curl --request GET --get 'https://api.agent-data.dev/find-and-update-company-information-service-gov-uk/v1/search' \
  --header "Authorization: Bearer $AGENT_DATA_API_KEY" \
  --data-urlencode 'query=Barclays'

Endpoints

Inputs and response fields for every endpoint in this API.

GETAdvanced search companies/v1/companies/advanced-search

Advanced company search

Input

pageOptionalQuery · integer, min: 1, default: 1

One-based source result page.

Example: 1

sic_codesOptionalQuery · string | null

One or more Companies House SIC codes, comma-separated.

Example: 64191

company_typeOptionalQuery · string | null

Native Companies House company-type filter.

Example: plc

company_statusOptionalQuery · string | null

Native company-status filter, such as active or dissolved.

Example: active

company_name_includesOptionalQuery · string | null

Words included in the company name.

Example: Barclays

registered_office_addressOptionalQuery · string | null

Words in the registered office address.

Example: London

Response

pageinteger
resultsobject[]
results[].hrefstring
results[].kind"company" | "officer"
results[].namestring
results[].officer_id?string | null
results[].company_number?string | null
transportstring

Fields marked ? are optional.

GETCompany profile/v1/companies/{company_number}

Get a company profile

Input

company_numberRequiredPath · string

Eight-character Companies House registration number.

Example: 00048839

Response

statusstring
addressstring
sic_codesobject[]
sic_codes[].codestring
sic_codes[].descriptionstring
transportstring
company_namestring
company_typestring
company_numberstring
incorporation_datestring
GETCompany filing history/v1/companies/{company_number}/filing-history

Get company filing history

Input

company_numberRequiredPath · string

Eight-character Companies House registration number.

Example: 00048839

pageOptionalQuery · integer, min: 1, default: 1

One-based filing-history page.

Example: 1

categoryOptionalQuery · "accounts" | "capital" | "mortgage" | "confirmation-statement" | "incorporation" | "officers" | null

Optional native filing category: accounts, capital, mortgage, confirmation-statement, incorporation, or officers.

Example: accounts

Response

pageinteger
filingsobject[]
filings[].datestring
filings[].typestring
filings[].descriptionstring
filings[].document_url?string | null
filings[].transaction_id?string | null
transportstring
company_numberstring

Fields marked ? are optional.

GETCompany officers/v1/companies/{company_number}/officers

Get current company officers

Input

company_numberRequiredPath · string

Eight-character Companies House registration number.

Example: 00048839

Response

officersobject[]
officers[].hrefstring
officers[].namestring
officers[].rolestring
officers[].statusstring
officers[].address?string | null
officers[].officer_idstring
officers[].appointed_on?string | null
transportstring
company_numberstring

Fields marked ? are optional.

Don’t see the endpoint you need?

Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.