UK Companies House
The UK Companies House API allows you to search for and retrieve detailed information about companies and officers registered with Companies House in the United Kingdom. Reports can be returned as JSON for system integration or PDF for human-readable documents.
What is Companies House?
Companies House is the United Kingdom's registrar of companies. It maintains the official register of all incorporated companies in England, Wales, Scotland, and Northern Ireland. The register includes information about company registration details, directors, secretaries, persons with significant control (PSCs), and filed documents.
The Companies House API enables you to search the register, retrieve company reports, officer reports, and filed documents on demand. This data plays an important role in due-diligence, KYB (Know Your Business), compliance, and operational workflows.
Available Functions
The UK Companies House API provides the following functions:
- Company Search - Search for companies by name or company number
- Officer Search - Search for officers (directors, secretaries) by name
- Company Report - Generate comprehensive company reports with officers, PSCs, and filing history
- Officer Report - Generate reports on individual officers including their appointments
- Document Download - Retrieve filed documents (annual accounts, confirmation statements, etc.)
API Usage
There are seven API endpoints used to interact with UK Companies House data:
| Endpoint Name | Description |
|---|---|
| Company House Search | Searches for companies by name or company number |
| Company House Officer Search | Searches for officers by name |
| Company House Report | Requests a comprehensive company report |
| Retrieve Company House Report | Retrieves the results of a company report request |
| Company House Officer Report | Requests a comprehensive officer report |
| Retrieve Company House Officer Report | Retrieves the results of an officer report request |
| Company House Document | Downloads a filed document by document ID |
Quick Start
The following sections show the typical workflow for using the UK Companies House API.
Company Report Workflow
- Use Company House Search to find a company by name or company number.
- Identify the company of interest and note its
company_number. - Use the Company House Report endpoint to request the report, providing the
company_number. - Use Retrieve Company House Report with the returned
api_referenceto poll for the report and retrieve it in JSON or PDF format.
Officer Report Workflow
- Use Company House Officer Search to search for an officer by name.
- From the matches, select the officer of interest and note the
officer_id. - Use the Company House Officer Report endpoint to request the report, providing the
officer_id. - Use Retrieve Company House Officer Report with the returned
api_referenceto poll for the report and retrieve it in JSON or PDF format.
Document Download Workflow
- Retrieve a company report to obtain the filing history.
- Identify the document of interest and note its
document_id. - Use the Company House Document endpoint to download the document as a PDF.
Processing Time
The system begins generating reports as soon as the request endpoint is called.
- Report generation normally completes within a few seconds.
- During busy periods, processing can take longer.
- The Retrieve endpoints can be used to check the status and retrieve the report once it is ready.
- The service polls for up to 30 seconds. If the report is still not ready, a
202status code is returned and you should continue polling.
Sandbox Environment
The sandbox environment uses deterministic test data and does not return live data. Use the sample company numbers, officer IDs, and document IDs below to receive predictable responses.
Sandbox Companies
| Company Name | Company Number | Status | Notes |
|---|---|---|---|
| TEST COMPANY LTD | 12345678 | Active | Standard company with 2 officers |
| SAMPLE HOLDINGS PLC | 87654321 | Active | PLC with multiple officers including corporate secretary |
| DORMANT SERVICES LTD | 11223344 | Dormant | Dormant company |
| DISSOLVED EXAMPLE LTD | 99887766 | Dissolved | Dissolved company with previous names |
| SCOTTISH ENTERPRISE SC | SC654321 | Active | Scottish company |
| DELAYED REPORT LTD | 55667788 | Active | Returns 202 on first poll (simulates async processing) |
Sandbox Officers
| Name | Officer ID | Type | DOB (Y-M) | Appointments |
|---|---|---|---|---|
| John David SMITH | ABC123DEF456 | Natural | 1975-06 | 3 |
| Jane Elizabeth DOE | XYZ789GHI012 | Natural | 1980-03 | 1 |
| Robert James JOHNSON | JKL345MNO678 | Natural | 1968-11 | 5 |
| Christopher Mark TAYLOR | DEL789AYE012 | Natural | 1990-05 | 1 (delayed report) |
| CORPORATE SECRETARIES LIMITED | VWX567YZA890 | Corporate | N/A | 25 |
| David DISQUALIFIED | DIS123QUA456 | Natural (Disqualified) | 1970-01 | 0 |
Sandbox Documents
Document IDs in the sandbox must use the sandbox-document-* prefix format. Examples from company filing histories include:
| Document ID | Description |
|---|---|
| sandbox-document-001 | TEST COMPANY LTD annual accounts |
| sandbox-document-002 | TEST COMPANY LTD confirmation statement |
| sandbox-document-003 | SAMPLE HOLDINGS PLC annual accounts |
Any document ID starting with sandbox-document- will return a valid placeholder PDF.
Billing
Note: Calls to the Company House Report and Officer Report endpoints outside of the sandbox environment will be billed. Refer to your commercial agreement or pricing documentation for details.
API Endpoints
More technical details on the API endpoints (including full request/response schemas, status codes, and error formats) are available in the API Reference section of the documentation.
Company House Search
The Company House Search endpoint searches the UK Companies House register for companies matching the provided search term.
The search is intelligent and will detect if the search term matches a company number format:
- Company number search: If the search term matches the 8-character company number format, a direct lookup is performed.
- Name search: Otherwise, a fuzzy name search is performed against registered company names.
Example Request
{
"company": "Test Company",
"is_operational": true,
"max_results": 50
}
Example Response
{
"message": "Ok",
"function": "company_house_search",
"api_reference": "fe4291ca-d831-4760-96df-c9cb03b3cd95",
"records": [
{
"company_number": "12345678",
"company_name": "TEST COMPANY LTD",
"company_status": "active",
"company_type": "ltd",
"date_of_creation": "2020-01-15",
"registered_office_address": {
"address_line_1": "123 Test Street",
"address_line_2": "Test District",
"locality": "London",
"postal_code": "EC1A 1BB",
"country": "United Kingdom"
}
}
],
"records_returned": 1,
"total_records_available": 1
}
See the Company House Search API documentation for detailed information on the request and response.
Company House Officer Search
The Company House Officer Search endpoint searches the UK Companies House register for officers matching the provided name.
An optional date_of_birth parameter can be provided to narrow results. When supplied, only officers whose date of birth matches the given year and month are returned. The day component is accepted for convenience but is not used for matching, as Companies House only provides month and year of birth for most officers.
Example Request
{
"name": "John Smith",
"date_of_birth": "1975-06-15",
"max_results": 50
}
Example Response
{
"message": "Ok",
"function": "company_house_officer_search",
"api_reference": "fe4291ca-d831-4760-96df-c9cb03b3cd95",
"records": [
{
"officer_id": "ABC123DEF456",
"title": "John David SMITH",
"date_of_birth": "1975-06",
"address": {
"address_line_1": "Test Street",
"address_line_2": "Test District",
"locality": "London",
"postal_code": "EC1A 1BB",
"country": "United Kingdom"
},
"address_snippet": "123 Test Street, Test District, London, United Kingdom, EC1A 1BB",
"appointment_count": 3,
"description": "Total number of appointments 3 - Born June 1975"
}
],
"records_returned": 1,
"more_results": false
}
See the Company House Officer Search API documentation for detailed information on the request and response.
Company House Report
The Company House Report endpoint requests a comprehensive company report. The response confirms the job was queued and returns an api_reference for polling.
Note: Calls to this endpoint outside of the sandbox will be billed.
Example Request
{
"company_number": "12345678"
}
Example Response
{
"message": "Ok",
"function": "company_house_report",
"api_reference": "fe4291ca-d831-4760-96df-c9cb03b3cd95"
}
The endpoint returns immediately with an api_reference, and the system begins generating the report in the background.
See the Company House Report API documentation for detailed information on the request and response.
Retrieve Company House Report
The Retrieve Company House Report endpoint retrieves the results of a company report request.
The report contains the company's profile information (name, status, type, registered address, accounts, confirmation statement), an officers array with all current and former officers, a filing_history object containing the most recent filings (up to 200), and a persons_with_significant_control array. Each section is only included when the corresponding data exists at Companies House.
Both JSON and PDF formats are available. To return a PDF, append ?pdf=true to the URL.
Example Request
GET /company_house_report/fe4291ca-d831-4760-96df-c9cb03b3cd95
Example Response
{
"message": "Ok",
"function": "company_house_report_show",
"api_reference": "7cbb094c-0f27-42f4-9f36-9cf0b2f6d5ff",
"report": {
"company_name": "TEST COMPANY LTD",
"company_number": "12345678",
"company_status": "active",
"type": "ltd",
"jurisdiction": "england-wales",
"date_of_creation": "2020-01-15",
"can_file": true,
"report_date": "2026-02-03T10:00:00Z",
"registered_office_address": {
"address_line_1": "123 Test Street",
"address_line_2": "Test District",
"locality": "London",
"postal_code": "EC1A 1BB",
"country": "United Kingdom"
},
"accounts": {
"overdue": false,
"next_due": "2026-10-15",
"last_accounts": {
"type": "full",
"made_up_to": "2025-01-15"
},
"accounting_reference_date": {
"day": "15",
"month": "01"
}
},
"confirmation_statement": {
"overdue": false,
"next_due": "2026-07-15",
"last_made_up_to": "2025-06-15"
},
"sic_codes": [
{
"code": "62020",
"description": "Information technology consultancy activities"
}
],
"officers": [
{
"name": "SMITH, John David",
"officer_id": "ABC123DEF456",
"officer_role": "director",
"appointed_on": "2020-01-15",
"date_of_birth": "1975-06",
"nationality": "British",
"country_of_residence": "England",
"address": {
"premises": "123",
"address_line_1": "Test Street",
"locality": "London",
"postal_code": "EC1A 1BB",
"country": "United Kingdom"
}
},
{
"name": "DOE, Jane Elizabeth",
"officer_id": "XYZ789GHI012",
"officer_role": "secretary",
"appointed_on": "2020-01-15",
"date_of_birth": "1980-03",
"nationality": "British",
"country_of_residence": "England",
"address": {
"premises": "456",
"address_line_1": "Sample Road",
"locality": "London",
"postal_code": "EC1A 2CC",
"country": "United Kingdom"
}
}
],
"filing_history": {
"total_files": 5,
"returned_files": 5,
"files": [
{
"date": "2025-10-01",
"type": "AA",
"pages": 15,
"category": "accounts",
"description": "accounts-with-accounts-type-full",
"document_id": "sandbox-document-001",
"transaction_id": "SANDBOX00001"
}
]
},
"persons_with_significant_control": [
{
"name": "Mr John David Smith",
"kind": "individual-person-with-significant-control",
"natures_of_control": [
"ownership-of-shares-75-to-100-percent",
"voting-rights-75-to-100-percent"
],
"notified_on": "2020-01-15",
"country_of_residence": "England",
"nationality": "British"
}
]
}
}
Waiting for the report to be ready
When the report is not yet complete, the endpoint may wait for up to 30 seconds. If the report is still not ready, the endpoint will return a 202 status code:
{
"message": "Extract is still being processed. Please try again later."
}
You can then repeat the request with the same api_reference until the report is returned.
See the Retrieve Company House Report API documentation for detailed information.
Company House Officer Report
The Company House Officer Report endpoint requests a comprehensive officer report. The response confirms the job was queued and returns an api_reference for polling.
Note: Calls to this endpoint outside of the sandbox will be billed.
Example Request
{
"officer_id": "ABC123DEF456",
"disqualified": false,
"type": "natural"
}
Example Response
{
"message": "Ok",
"function": "company_house_officer_report",
"api_reference": "fe4291ca-d831-4760-96df-c9cb03b3cd95"
}
See the Company House Officer Report API documentation for detailed information.
Retrieve Company House Officer Report
The Retrieve Company House Officer Report endpoint retrieves the results of an officer report request.
The report contains the officer's personal details and an items array listing every appointment (role) they hold or have held across different companies. Each item includes the company details (appointed_to), the role (officer_role), appointment date, and correspondence address. Active appointments have no resigned_on field; former appointments include resigned_on.
For disqualified officers (requested with disqualified=true), the report includes a disqualifications array instead of appointment items.
Both JSON and PDF formats are available. To return a PDF, append ?pdf=true to the URL.
Example Request
GET /company_house_officer_report/fe4291ca-d831-4760-96df-c9cb03b3cd95
Example Response
{
"message": "Ok",
"function": "company_house_officer_show",
"api_reference": "7cbb094c-0f27-42f4-9f36-9cf0b2f6d5ff",
"report": {
"officer_id": "XYZ789GHI012",
"name": "Jane Elizabeth DOE",
"date_of_birth": "1980-03",
"etag": "sandbox-etag-002",
"kind": "personal-appointment",
"type": "natural",
"is_corporate_officer": false,
"disqualified": false,
"report_date": "2026-02-03T10:00:00Z",
"total_results": 1,
"items_per_page": 50,
"start_index": 0,
"items": [
{
"name": "Jane Elizabeth DOE",
"officer_role": "secretary",
"appointed_on": "2020-01-15",
"appointed_to": {
"company_name": "TEST COMPANY LTD",
"company_number": "12345678",
"company_status": "active"
},
"address": {
"premises": "456",
"address_line_1": "Sample Road",
"locality": "London",
"country": "United Kingdom",
"postal_code": "EC1A 2CC"
},
"nationality": "British",
"name_elements": {
"title": "Ms",
"forename": "Jane",
"other_forenames": "Elizabeth",
"surname": "DOE"
},
"country_of_residence": "England",
"links": {
"company": "/company/12345678"
},
"is_pre_1992_appointment": false
}
]
}
}
Waiting for the report to be ready
When the report is not yet complete, the endpoint may wait for up to 30 seconds. If the report is still not ready, the endpoint will return a 202 status code:
{
"message": "Extract is still being processed. Please try again later."
}
You can then repeat the request with the same api_reference until the report is returned.
See the Retrieve Company House Officer Report API documentation for detailed information.
Company House Document
The Company House Document endpoint retrieves a filed document from Companies House. Documents are returned as PDF files.
Example Request
GET /company_house_document/sandbox-document-001
This returns the document as a PDF file in the response body.
Sandbox Note: Document IDs must use the
sandbox-document-*prefix in the sandbox environment. Valid sandbox document IDs can be found in thefiling_historysection of company reports (e.g.,sandbox-document-001,sandbox-document-002).
Error Responses
If the document is not available in PDF format, a 415 Unsupported Media Type error is returned:
{
"message": "Document media type is not supported"
}
See the Company House Document API documentation for detailed information.