If you've ever had to manually look up a company's registration number, check whether a director is still active, or verify a registered office address, you've probably thought there should be a better way. There is. The Companies House API gives developers and businesses direct, programmatic access to the UK's official register of over 5 million companies. This guide walks you through everything you need to start building against it, from authentication and endpoints to streaming feeds and production reliability patterns. The API improves efficiency by automating retrieval of official company records, and this guide will help you get there step by step.
Key Takeaways
The Companies House API is a free service provided by the UK government for programmatic, read-only access to public data including company profiles, officers, persons with significant control, and filing history.
Developers must sign up for an API key via the Companies House developer hub and use HTTP Basic authentication to call most endpoints against the main house API base URL.
There are three main access routes: the REST Companies House API for on-demand queries, the Streaming API for real-time updates on company data, and legacy bulk or URI products for large historical datasets.
Typical use cases include automated compliance checks, customer onboarding verification, market analysis dashboards, and keeping internal CRMs synced with Companies House records.
The API is free but has rate limits and occasional reliability issues (including 502 errors reported across 2024–2025), so production systems should implement retry and fallback logic to cope with intermittent outages.
What Is the UK Companies House API?
Companies House is responsible for incorporating and dissolving limited companies in the UK, and it collects and stores public company data across the register. As of March 2025, the register held approximately 5.43 million active companies, with around 801,871 new incorporations and 726,813 dissolutions in the 2024–2025 year alone.
The Companies House API is the official UK government REST service that exposes this public data for programmatic consumption. It covers company profiles, officers, people with significant control (PSC), filing history, registered charges, and several search endpoints. Access is generally free and read-only, with no per-call charges as of 2026, though usage is governed by fair-use policies and technical limits.
How does it differ from the public website? The website is designed for humans browsing individual records on screen. The house API is built for automated, machine-to-machine access at scale, letting you integrate company lookup functionality directly into your own systems.
Key technical details worth being aware of:
All responses use JSON format for easy integration with modern application stacks.
Every endpoint is served over https for secure data transfer.
The API is read-only; you cannot file documents or update records through it.
Core API Endpoints and Base URLs
Companies House currently exposes several key endpoints via the Companies House API and related services. Here is what you need to know to find the right resources for your application.
Primary REST base URL: The API base URL is https://api.company-information.service.gov.uk. Older documentation may reference https://api.companieshouse.gov.uk/, which can redirect but should not be relied upon in new code.
The API provides access to company profile and filing history endpoints, along with several other high-traffic resources:
Company profile: GET /company/{company_number} - returns company information including name, status, SIC codes, registered office, and date of creation.
Filing history: GET /company/{company_number}/filing-history - lists documents filed with metadata, types, and links to images where available.
Officers: GET /company/{company_number}/officers - directors, secretaries, appointment and resignation dates.
PSC data: GET /company/{company_number}/persons-with-significant-control - persons with significant control listings, nature of control, and PSC kind.
Charges: GET /company/{company_number}/charges - registered charges and mortgages against assets.
Search endpoints are useful for autocomplete and discovery features:
/search/companies, /search/officers, /search/disqualified-officers, and /advanced-search/companies.
There is also a separate Streaming API at https://stream.companieshouse.gov.uk that exposes event feeds for companies, charges, insolvency cases, PSCs, and more.
For simple, unauthenticated access to basic company snapshots, legacy Linked Data URIs such as http://data.companieshouse.gov.uk/doc/company/{company_number} remained available, though they provide limited fields and are gradually being deprecated.
Getting and Using a Companies House API Key
Most REST endpoints require authentication using an API key obtained from the Companies House developer portal. Here is the process to get started.
Registration steps (2026):
Create a WebFiling or standard sign-in account with Companies House.
Navigate to the "Applications" or "API Keys" area in the developer hub.
Register a new application (provide a name, purpose, and description).
Generate your API key.
Authentication method:
The API requires HTTP Basic authentication with your API key. You use the API key as the username and leave the password blank (or use any placeholder). In practice, this means base64-encoding YOUR_API_KEY: and passing it in the Authorization header.
Security essentials:
Your API key uniquely identifies your application and is tied to rate limits. Never commit it to public repositories or embed it in client-side code.
Store keys in environment variables, a secret manager, or encrypted configuration files in server-side applications.
Rotate keys periodically and monitor usage to identify anomalies.
There is a limited, unauthenticated legacy URI service for basic company snapshots, but an API key is mandatory for the main house API and all its core endpoints.
How to Start Calling the Companies House API
This section will help you make your first real API call. Developers can use standard HTTP GET requests to access data from any endpoint. You can test the API with tools like Postman or cURL before writing any application code.
cURL example:
curl -u YOUR_API_KEY: "https://api.company-information.service.gov.uk/company/00000006"This sends a GET request with HTTP Basic authentication. The colon after the key indicates a blank password.
Postman approach:
Create a new GET request.
Set the URL to https://api.company-information.service.gov.uk/company/00000006.
Under the "Authorization" tab, select "Basic Auth," enter your API key as the username, and leave the password empty.
Hit Send and check the output on screen.
Sample JSON fields in the response:
Field | Example Value |
|---|---|
company_name | "VIRGIN GROUP HOLDINGS LIMITED" |
company_number | "00000006" |
date_of_creation | "1896-10-16" |
company_status | "active" |
registered_office_address | Object with address lines, postcode |
sic_codes | ["70100"] |
Data is output in JSON format for easy integration. Key retrieval details include registration numbers and incorporation dates for each company record.
All responses are versioned implicitly, and fields may be added over time. Your client code should tolerate missing or new properties. If you are working in python, standard libraries like requests handle Basic auth natively.
Watch for these HTTP status codes when troubleshooting errors:
200 - Success
400 - Bad request (check your parameters)
401 - Unauthorized (check your API key)
404 - Company not found
429 - Rate limited (back off and retry)
Start by testing calls against non-critical companies and log every response status to build confidence before going to production.
Developer Documentation and Support Resources
The official developer documentation is the authoritative reference for all Companies House API details. Explore the API documentation for detailed guidance on authentication, endpoint parameters, request examples, and expected response schemas.
The getting-started page at developer-specs.company-information.service.gov.uk covers the essentials: how authentication works, the list of available endpoints, and annotated request and result examples.
Interactive OpenAPI and Swagger-style specs let you explore endpoints, parameters, and schema definitions directly in the browser without writing any code.
Companies House Developer Forum:
A Developer Forum is available for support regarding the API. This is the go-to place where issues like 502 timeouts, performance degradation, or endpoint-specific bugs are reported and discussed by the community.
Forum posts from feb 2025 and the surrounding months documented intermittent 502 errors on endpoints such as persons-with-significant-control-statements, illustrating the value of monitoring official updates. Website crashes have been reported for several months by users across the forum and department channels.
Subscribe to the service status page or change log so you are notified about planned maintenance, deprecations, or schema changes affecting the house API before they hit your application.
Types of Data You Can Access
The Companies House API exposes several structured datasets that support compliance, KYC, and analytics use cases. Public information includes company profiles, filing history, and charges. Here is a breakdown of each category.
Company profile data:
Company name, number, status (active, dissolved, etc.)
SIC codes for industry classification
Registered office address and jurisdiction
Accounts due date and confirmation statement due date
Officer data:
Directors, secretaries, and their roles
Appointment and resignation dates
Partially redacted personal details (e.g., year of birth only) as required by law
Persons with significant control (PSC):
Nature of control (voting rights, shareholding, contractual)
PSC kind: individual, corporate entity, or legal person
Links to PSC statements when information is restricted
Filing history:
List of every document filed since incorporation
Document type codes, descriptions, and date of filing
Links to document images where available (though some older filings lack digital versions)
Charges and insolvency:
Registered charges against company assets
Insolvency case types, status, and dates
Disqualified officer data via dedicated endpoints
For heavy analytics workloads, the Streaming API and bulk products can be used to maintain a continuously updated local copy of selected datasets, which we will look at below.
Practical Use Cases for Businesses and Developers
Here is how the house API can support real-world workflows, whether you are a developer building product features or a business head looking to streamline operations.
Compliance and onboarding:
Integrate the API into customer onboarding for verification, confirming a company is active before opening an account.
Automate compliance checks to save time and effort, checking directors and PSCs against the register before forming partnerships.
The API facilitates automated Know Your Customer (KYC) processes, reducing manual work that previously took weeks.
CRM and ERP integration:
Companies can automatically update internal systems with the latest details by syncing officer changes, address updates, and status changes on a daily or hourly basis.
Schedule API calls or use the Streaming API to keep records refreshing without manual intervention.
Market analysis and dashboards:
Build dashboards that aggregate company counts by SIC code, track incorporation trends by region, or map director networks across lots of related firms.
Use the data to generate reports on dissolution patterns or new market entrants over months of activity.
Customer experience:
Use the API to auto-fill company details in forms when a user types a company name or number, reducing friction and making the signup process simple for end users.
The API enables integration of company lookup functionality in systems like e-commerce checkouts or trade credit applications.
Specialist monitoring:
Track competitors' filing activity or new incorporations in a specific area.
Feed risk-scoring models with up-to-date data, flagging companies with late filings or unusual control structures.
Performance, Rate Limiting, and Reliability Considerations
While the Companies House API is powerful and free, it is a shared public service with technical limits that you need to be aware of. Getting this level of planning right can help you avoid a problem in production.
Rate limits:
The API enforces limits per API key and per IP address. The observed limit is approximately 600 requests per 5 minutes per key. The Companies House API allows 25 million data requests daily, with reports suggesting it handles up to 30 million requests daily at peak load. When you exceed the limit, expect an HTTP 429 "Too Many Requests" response. Implement exponential backoff with jitter to cope with throttling.
Historical scale:
The Companies House API experienced 6.5 billion requests in 2018/19, and the register was accessed 16.3 billion times in 2024–2025. These numbers illustrate why careful, cached consumption patterns are encouraged.
Reliability issues:
Users report frequent 502 Bad Gateway errors on the website and API, particularly on PSC-related endpoints and the disqualified-officers stream. Forum threads from 2024–2025 consistently document these incidents. Despite this, digital services availability remained at approximately 99.98% for the 2024–2025 period according to the annual report. Companies House is working hard to fix these intermittent issues, but they persist.
Production patterns to adopt:
Cache stable data (company profiles, SIC codes, registered office) locally to reduce redundant requests.
Prefer the Streaming API or bulk products where full register replication is needed, rather than polling REST endpoints.
Document internal SLAs that acknowledge Companies House as an external dependency and specify fallback behaviour (e.g., queueing onboarding checks, serving cached data) when it is temporarily unavailable.
Companies House Streaming API and Bulk Data Products
High-volume users often combine the REST API with the Streaming API and bulk datasets to leave polling behind entirely.
How the Streaming API works:
A streaming API provides real-time updates on company data through a long-lived HTTP connection that pushes changes as they are published. This eliminates the need for constant REST polling. The streaming API was tested for 6 months before launch to ensure stability at scale.
Available streams (seven total):
Companies
Filings
Officers
Persons with significant control
Charges
Insolvency cases
Disqualified officers
Each stream emits events with metadata including the event type, published timestamp, a timepoint marker, and fields_changed for granular tracking.
Bulk data products:
Legacy bulk products provide large snapshot files of the database, updated daily or monthly. These are essential for the initial historical load that streaming alone cannot provide.
Recommended architecture:
Perform an initial load using bulk snapshot files.
Subscribe to continuous updates via the Streaming API.
Use the REST Companies House API for ad hoc queries when needed.
This combination can significantly reduce load on the main house API while giving organisations a near real-time mirror of the register for internal analytics. Be aware that streams routinely disconnect around 2–3 AM UK time for maintenance, so your application must detect disconnections and reconnect automatically.
Security, Compliance, and Data Protection
Although the Companies House dataset is public, integrations still need to consider security and compliance at every level.
API key protection:
Treat your API key as a confidential credential. Rotate it periodically. Never embed it in client-side JavaScript or mobile apps.
If a key is compromised, generate a new one immediately via the developer portal.
Data protection:
Companies House data includes personal information about directors and PSCs (partial dates of birth, addresses). Organisations consuming this data must handle it in line with UK GDPR and internal data protection policies.
Keep audit logs of when and how Companies House data is accessed, particularly in regulated sectors such as finance, legal, or accounting.
User-facing transparency:
If you use company lookups during onboarding, provide clear explanations to end users that data is obtained from Companies House and remains subject to official records. This builds trust and meets regulatory expectations.
Regulatory changes:
Stay aware of regulatory changes following the Economic Crime and Corporate Transparency Act (ECCTA), which has tightened identity verification requirements, restricted PO Box addresses as registered offices, and may alter what PSC data is publicly visible through the API in the months ahead. Checking for updates from the relevant government department is essential to identify any changes that could affect your integration.
FAQ
Do I have to pay to use the UK Companies House API?
As of mid-2026, the Companies House API is a free service for accessing public data. There are no per-call charges. However, fair-use rate limits apply, and your own infrastructure and development costs still add up when you build against the house API. Any change to pricing or quotas would be announced via official Companies House channels, so keep feedback loops open with their documentation and status page.
Can I use the Companies House API for commercial products?
Yes. The underlying register is public, and the data is published under the Open Government Licence, so commercial use is generally permitted. However, you must comply with the Companies House terms of use, check the latest licence text and attribution requirements, and consult legal counsel if you are building large-scale commercial data products to ensure licensing and GDPR obligations are fully understood.
Is there a sandbox or test environment for the Companies House API?
Companies House does not currently offer a dedicated sandbox. Most developers test against live data using non-sensitive companies (for example, company number 00000006). Limit your calls while experimenting, and use the documentation examples and the developer forum to understand expected responses before integrating into production systems. This approach is simple and effective for getting started.
How often is Companies House API data updated?
The underlying register is updated continuously as filings are processed day by day. The Streaming API delivers updates in near real time, whereas bulk products may lag by hours or a day depending on the specific dataset. Mission-critical applications should combine real-time API checks with internal caching so they see new filings quickly without overloading the service.
What should I do if I keep getting 502 or timeout errors from the API?
First, check the Companies House service status page and developer forum for any known incidents affecting the house API. Implement exponential backoff and retries in your client code, particularly around PSC and other heavy endpoints that have historically seen occasional instability. If errors persist beyond brief incidents, contact Companies House support with concrete request examples and timestamps so they can help identify and fix the issue.