Browse guides

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

  1. Use Company House Search to find a company by name or company number.
  2. Identify the company of interest and note its company_number.
  3. Use the Company House Report endpoint to request the report, providing the company_number.
  4. Use Retrieve Company House Report with the returned api_reference to poll for the report and retrieve it in JSON or PDF format.

Officer Report Workflow

  1. Use Company House Officer Search to search for an officer by name.
  2. From the matches, select the officer of interest and note the officer_id.
  3. Use the Company House Officer Report endpoint to request the report, providing the officer_id.
  4. Use Retrieve Company House Officer Report with the returned api_reference to poll for the report and retrieve it in JSON or PDF format.

Document Download Workflow

  1. Retrieve a company report to obtain the filing history.
  2. Identify the document of interest and note its document_id.
  3. 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 202 status 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 the filing_history section 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.