Most people meet Companies House through its website. Developers meet it through the public data API, which exposes the same register as JSON and, crucially for lead generation, includes an advanced search that filters companies by incorporation date. This guide covers the parts you need to build a daily feed of new companies, and the limits that shape how you should build it.
Getting access
Create an account on the Companies House developer hub, register an application and copy its API key. Requests use HTTP basic authentication with the key as the username and an empty password. There is a live environment and a sandbox; the sandbox has test data only, so use live for anything real. Keys are free and there is no paid tier.
curl -u "$COMPANIES_HOUSE_API_KEY:" \
"https://api.company-information.service.gov.uk/advanced-search/companies?incorporated_from=2026-09-15&incorporated_to=2026-09-22&size=50"The endpoints that matter
| Endpoint | Use it for |
|---|---|
| GET /advanced-search/companies | New companies by incorporation date, location, SIC code, status and type. The core of any new-company feed. |
| GET /search/companies | Free-text search by name or number. Good for lookups, poor for discovery. |
| GET /company/{number} | The company profile: status, type, incorporation date, registered office, SIC codes, accounts and confirmation statement dates. |
| GET /company/{number}/officers | Directors and secretaries, with appointment dates, roles, nationality and occupation. |
| GET /company/{number}/persons-with-significant-control | Owners and controllers with the nature of their control. |
| GET /company/{number}/filing-history | Every document filed, newest first, with type codes such as AA, CS01 and AP01. |
| GET /company/{number}/charges | Registered charges, useful as a signal of borrowing. |
Building a daily feed
The advanced search paginates with size (up to 5,000 results in total per query) and start_index. For a daily feed, query yesterday's date range each morning, page through the results, and store the company number as your key. Then fetch the profile and officers for the companies that pass your filters. Do not fetch enrichment for every company; a week of incorporations is around 12,000 records and the interesting ones are a small fraction.
The location parameter matches text in the registered office address, which is how Lead Forge builds its city pages. The sic_codes parameter takes a comma-separated list; combine it with a date range to get, for example, every software company formed this week.
Limits and good practice
- Rate limit. 600 requests per five minutes per key. Exceeding it returns HTTP 429. Cache aggressively; a company profile does not change hour to hour.
- Result cap. The advanced search will not return beyond 5,000 results for a single query. Narrow the date range or split by SIC division if you hit it.
- Data lag. Incorporations appear the same day, but officer and PSC records for a brand-new company can take a little longer to be complete. Re-fetch after 24 hours before treating a missing director as meaningful.
- Licence and attribution. The data is published under the Open Government Licence v3.0. Attribute Companies House and do not present your product as affiliated with it.
- Personal data. Officer and PSC names are personal data even though they are public. Keep only what you need, and see our note on outreach and UK GDPR.
Or skip the plumbing
Lead Forge is built on exactly these endpoints. The directory is the advanced search with date ranges and categories, the city pages are location filters, and every profile pulls the profile, officers, PSC, filings and charges into one view with an AI brief on top. If you want the feed without maintaining the code, it is free.
QUICK ANSWERS
Questions this article answers
- Is the Companies House API free?
- Yes. Register for a free developer account, create an application and use its API key with HTTP basic authentication. The live API is rate limited to 600 requests per five-minute window per key.
- Can the API list companies by incorporation date?
- Yes. The advanced search endpoint accepts incorporated_from and incorporated_to parameters, plus location, SIC codes, company status and type filters.