The UK company data API
Companies House data, plus everything Companies House makes you build yourself: accounts parsed into figures and ratios, ownership resolved into a group tree, and search that understands what a business actually does. 17 million companies, one JSON shape.
- 1,000 free credits a month, no card
- Sandbox companies free forever
- Errors are never charged
Your first call
Company 00000042 is a sandbox record served to every key, so this runs before you have spent a credit.
curl "https://api.companytrack.com/v1/company?company_number=00000042" \ -H "X-API-Key: YOUR_API_KEY"
The key also travels as ?key= or Authorization: Bearer — whichever your client makes easiest.
What you get that the Companies House API doesn't
The official API is free and it is the right tool for reading the register. It stops where the interesting work starts: it hands you accounts as documents, control statements instead of shareholdings, and no way to ask for companies by what they do. Everything below is the same public data — the difference is who does the pipeline.
| Capability | Companies House API | CompanyTrack API |
|---|---|---|
| Company profile, officers, PSCs, filing history | Yes | Yes — same registry source, one response shape |
| Figures from filed accounts | PDF and iXBRL documents only | Parsed and normalised across micro-entity, abridged and full accounts |
| Financial ratios and growth rates | No | 17 ratios plus 1y and 3y turnover CAGR, computed per period |
| Shareholdings | PSC statements only | PSCs plus holdings reconstructed from filed share allotments |
| Group structure | No — you walk it yourself | Parents and subsidiaries resolved and de-duplicated, flat or nested |
| Search by what a company does | Name and number only | Meaning-based search across 1.15 million companies with a verified website |
| Filter by turnover, headcount or region | No | Structured filters over the latest filed figures |
| Charges, property, grants and funding rounds | Charges only | Charges, Land Registry titles, public grant awards and reconstructed raises |
| One call for several layers | No — one resource per request | ?include= attaches officers, ownership, accounts and more in the same round trip |
| MCP server for AI agents | No | 15 read-only tools on the same key |
Four things teams build with it
Same endpoints, different question.
Fill in the fields your sales team never types
Take the company number off a signup form and write back status, size band, sector, latest turnover and headcount. One call, one shape, no per-field lookups.
GET /v1/company
?company_number=00000042
&include=financials,intelligence
// 1 + 2 + 1 = 4 credits, one round tripVerify the entity, then find who is really behind it
Confirm the company is active and the signatory is on the board, then walk the ownership chain to the ultimate parent before you approve the account.
GET /v1/company?company_number=00000042
&include=officers,controls
GET /v1/group-structure
?company_number=00000042
&direction=ancestorsBuild a target list from what companies do, not their SIC code
Search on meaning, then filter on the accounts they actually filed. A search costs one credit whether it matches ten companies or ten thousand.
GET /v1/search
?q=cold-chain+logistics
&employees_min=20
&sort=sh_funds_desc
// 1 credit, any result countNotice a change without re-fetching everything
Poll the filing history for the companies you hold and diff the newest date against the one you stored. New accounts, officer changes and charges all arrive dated and categorised.
GET /v1/company-filings
?company_number=00000042
&category=accounts&limit=5
// newest first — diff against your copyEvery endpoint
Fifteen GET endpoints, all returning { status, credits_used, data }. Attach several layers to
one company call with ?include= and pay the sum of the
layers, never more.
Company record
Identity, status, address and filing history.
| Endpoint | Returns | Credits |
|---|---|---|
| /company | The registry record for one company, plus any other layers you ask for in the same call. | 1, plus the layers you include (1 each; financials counts 2) |
| /company-filings | Everything the company has filed, newest first, categorised and dated. | 1 |
Accounts
Parsed figures from filed accounts, with ratios.
| Endpoint | Returns | Credits |
|---|---|---|
| /financials | Parsed figures from filed accounts — micro-entity, abridged and full — in one shape. | 2 per accounting period returned |
People & ownership
Officers, PSCs, shareholders and group structure.
| Endpoint | Returns | Credits |
|---|---|---|
| /officers | Directors and secretaries, current and resigned, each with a stable person ID. | 1 |
| /ownership | Persons with significant control and reconstructed shareholdings. | 2 |
| /group-structure | Parents above and subsidiaries below, flat or as a nested tree. | 2 |
| /person | One director and every company they hold or have held an appointment at. | 1 |
Search
Resolve a name, or screen the register on what companies do.
| Endpoint | Returns | Credits |
|---|---|---|
| /search | Resolve a name to a number, or screen the register on what companies do and what they filed. | 1 per search, whatever the result count |
| /intelligence | What the company actually sells, and who to — from its verified website. | 1 |
Signals
Charges, property, grants, funding rounds and news.
| Endpoint | Returns | Credits |
|---|---|---|
| /charges | Charges registered against the company — the secured lending picture. | 1 |
| /properties | Land Registry titles held in the company name, with price paid where published. | 1 |
| /grants | Public grant funding matched to the legal entity, with funder and programme. | 1 |
| /fundraisings | Equity raised, reconstructed from filed share allotments. | 2 |
| /news | Recent coverage, matched to the company rather than to a similar name. | 3 (1 for a cached read) |
Account
Your remaining allowance.
| Endpoint | Returns | Credits |
|---|---|---|
| /account/credits | Credits remaining, your allowance, and when it resets. | Free |
Missing data is explicitly missing
Most UK companies never have to publish a profit and loss account. An API that quietly returns zero for those is an API that will make you draw the wrong conclusion about a perfectly healthy business.
null means not disclosed
Never zero, never an estimate. Every figure carries the accounting period and the accounts type it was filed under.
no_data means the layer doesn't exist
No accounts filed yet, no verified website, no matched grant. You get told that up front, and it costs nothing.
Failures are never billed
Every 4xx and 5xx is free, so a bad batch costs you nothing but time.
{
"status": "success",
"credits_used": 2,
"data": {
"period_end": "2025-03-31",
"accounts_type": "micro-entity",
"currency": "GBP",
"turnover": null, // not disclosed, never zero
"op_profit_loss": null, // no P&L required at this size
"net_curr_assets": 184200,
"shareholder_funds": 96100,
"num_employees": 4
}
} | Status | Meaning |
|---|---|
| 200 | Success. status is "success" and credits_used says what it cost. |
| 200 | No data. status is "no_data" — the company exists but this layer does not. Never charged. |
| 400 | Missing or malformed parameter. Not charged. |
| 401 | Missing, invalid or revoked API key. Not charged. |
| 402 | Allowance exhausted for the period. Not charged. |
| 404 | The company number or person ID does not exist on the register. Not charged. |
| 429 | Rate limited. Back off and retry. Not charged. |
| 500 | Server error. Not charged — please retry. |
One credit system, published per call
No per-seat pricing and no metered surprises: a call costs what the table says, the x-ct-credits-charged header confirms it on every response,
and allowances reset monthly with no overage billing.
| Cost | What it covers |
|---|---|
| Free | /account/credits, every no_data response, and every error |
| 1 credit | Company record, filings, officers, business profile, charges, property, grants, and any search |
| 2 credits | Ownership, group structure, fundraisings, and each accounting period of financials |
| 3 credits | A live news lookup (1 when answered from cache) |
Plans
One allowance per key, per UTC month, shared across the REST API and the MCP server. Self-serve, cancel any time.
| Plan | Per month | Credits per month |
|---|---|---|
| Free | £0 — no card | 1,000 |
| Starter | £29 | 10,000 |
| Growth | £99 | 50,000 |
| Scale | £299 | 250,000 |
Errors, no-data responses and 429s are never charged, the sandbox companies stay free on every plan, and there is no overage billing — a spent allowance simply waits for the monthly reset.
Or point Claude at it and write no code at all
The same catalogue is exposed as an MCP server, so Claude, Claude Code, Cursor or any MCP client can query UK company data directly — fifteen read-only tools, the API key you already have, and the same credit allowance. There is no separate plan.
See the MCP server# one line, then just ask claude mcp add --transport http CompanyTrack \ https://api.companytrack.com/mcp "Which of these 40 suppliers has a charge registered against it?" // get_charges × 40 · 40 credits
Questions developers ask first
How is this different from the free Companies House API?
Companies House gives you the register: profile, officers, PSC statements and a list of filings, with the accounts themselves as PDF and iXBRL documents you have to parse. This API gives you the register plus the parts you would otherwise build — accounts parsed into figures and ratios, shareholdings reconstructed from share allotments, group structure resolved, and search by what a company actually does rather than by name. Same underlying public data, none of the pipeline.
How many UK companies does the API cover?
The register holds about 17 million UK companies including dissolved ones, of which roughly 5.8 million are active. Lookups by company number work across the register. Search covers the active register by name, and the 1.15 million active companies with a verified website by what they do.
How often is the data updated?
The registry layers — profile, officers, PSCs, filings and charges — are refreshed daily from Companies House. Parsed accounts follow within a day of the filing appearing. Enrichment layers such as the business profile are rebuilt on a rolling schedule.
How do credits work?
Every call costs a fixed number of credits, published per endpoint: registry layers cost 1, ownership and parsed accounts cost 2, a live news lookup costs 3. A search costs 1 credit however many companies it matches. Errors, no-data responses and the credit-balance endpoint are always free, and the x-ct-credits-charged header shows what each response actually cost.
How much does the API cost?
Every key starts on the free plan: 1,000 credits a month, no card required. Paid plans are flat monthly prices for a bigger allowance — Starter is £29 for 10,000 credits, Growth is £99 for 50,000 credits, Scale is £299 for 250,000 credits — each per key, per UTC month, shared across the REST API and the MCP server. There is no overage billing, and errors, no-data responses and rate-limited requests are never charged. Need more than 250,000 credits a month? Talk to us.
What happens when a figure was never disclosed?
It comes back as null, never as a zero. Most small UK companies are not required to publish a profit and loss account, so a null turnover on a micro-entity is the correct answer rather than a gap. When a whole layer does not exist — no accounts filed yet, no verified website — you get an explicit no_data response, and it costs nothing.
Can I use the data in a commercial product?
Yes. The underlying registry data is public information published by Companies House, and your plan covers using it inside your own product, CRM or models. Redistributing the raw dataset as a competing data feed is not covered — talk to us if that is what you need.
Is there a rate limit?
Requests are rate limited per key at a level well above normal integration traffic, and a 429 is never charged. Your monthly credit allowance, not the rate limit, is the thing that bounds a large batch — check /account/credits before you start one.
Do I need a separate plan for the MCP server?
No. The MCP server runs on the same API key and draws from the same allowance, so a tool call costs exactly what the equivalent REST call costs. There is no second price list.
Make your first call in two minutes
Mint a key, hit the sandbox companies for free, and see the response shape for yourself. The free tier includes 1,000 credits a month on real companies — no card — and every plan uses the same schemas and the same authentication.