Companies House API
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.
Endpoint health
Loading verification…
Connect your agent
Connect through MCP so your agent can find this API, read its docs, and call its endpoints.
Add the server from your terminal.
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcpIn 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 keySign 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.
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.
GETSearch/v1/search
Search companies or officers
Input
queryRequiredQuery · stringSearch keyword: company name, company registration number, or officer name.
Example: Barclays
pageOptionalQuery · integer, min: 1, default: 1One-based source result page.
Example: 1
typeOptionalQuery · "companies" | "officers"Search company records or officer records.
Example: companies
Response
pageintegertype"companies" | "officers"querystringresultsobject[]results[].hrefstringresults[].kind"company" | "officer"results[].namestringresults[].officer_id?string | nullresults[].company_number?string | nulltransportstringFields marked ? are optional.
GETAdvanced search companies/v1/companies/advanced-search
Advanced company search
Input
pageOptionalQuery · integer, min: 1, default: 1One-based source result page.
Example: 1
sic_codesOptionalQuery · string | nullOne or more Companies House SIC codes, comma-separated.
Example: 64191
company_typeOptionalQuery · string | nullNative Companies House company-type filter.
Example: plc
company_statusOptionalQuery · string | nullNative company-status filter, such as active or dissolved.
Example: active
company_name_includesOptionalQuery · string | nullWords included in the company name.
Example: Barclays
registered_office_addressOptionalQuery · string | nullWords in the registered office address.
Example: London
Response
pageintegerresultsobject[]results[].hrefstringresults[].kind"company" | "officer"results[].namestringresults[].officer_id?string | nullresults[].company_number?string | nulltransportstringFields marked ? are optional.
GETCompany profile/v1/companies/{company_number}
Get a company profile
Input
company_numberRequiredPath · stringEight-character Companies House registration number.
Example: 00048839
Response
statusstringaddressstringsic_codesobject[]sic_codes[].codestringsic_codes[].descriptionstringtransportstringcompany_namestringcompany_typestringcompany_numberstringincorporation_datestringGETCompany filing history/v1/companies/{company_number}/filing-history
Get company filing history
Input
company_numberRequiredPath · stringEight-character Companies House registration number.
Example: 00048839
pageOptionalQuery · integer, min: 1, default: 1One-based filing-history page.
Example: 1
categoryOptionalQuery · "accounts" | "capital" | "mortgage" | "confirmation-statement" | "incorporation" | "officers" | nullOptional native filing category: accounts, capital, mortgage, confirmation-statement, incorporation, or officers.
Example: accounts
Response
pageintegerfilingsobject[]filings[].datestringfilings[].typestringfilings[].descriptionstringfilings[].document_url?string | nullfilings[].transaction_id?string | nulltransportstringcompany_numberstringFields marked ? are optional.
GETCompany officers/v1/companies/{company_number}/officers
Get current company officers
Input
company_numberRequiredPath · stringEight-character Companies House registration number.
Example: 00048839
Response
officersobject[]officers[].hrefstringofficers[].namestringofficers[].rolestringofficers[].statusstringofficers[].address?string | nullofficers[].officer_idstringofficers[].appointed_on?string | nulltransportstringcompany_numberstringFields 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.
An account is required to submit an extension. Prepare your request, then sign in to build.