Company Data API

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.

GET /v1/company
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.

17 million UK companies on the register, active and dissolved
5.8 million active companies, searchable by name and by number
Daily refresh from Companies House
15 endpoints behind one response shape

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.

CapabilityCompanies House APICompanyTrack API
Company profile, officers, PSCs, filing historyYesYes — same registry source, one response shape
Figures from filed accountsPDF and iXBRL documents onlyParsed and normalised across micro-entity, abridged and full accounts
Financial ratios and growth ratesNo17 ratios plus 1y and 3y turnover CAGR, computed per period
ShareholdingsPSC statements onlyPSCs plus holdings reconstructed from filed share allotments
Group structureNo — you walk it yourselfParents and subsidiaries resolved and de-duplicated, flat or nested
Search by what a company doesName and number onlyMeaning-based search across 1.15 million companies with a verified website
Filter by turnover, headcount or regionNoStructured filters over the latest filed figures
Charges, property, grants and funding roundsCharges onlyCharges, Land Registry titles, public grant awards and reconstructed raises
One call for several layersNo — one resource per request?include= attaches officers, ownership, accounts and more in the same round trip
MCP server for AI agentsNo15 read-only tools on the same key

Four things teams build with it

Same endpoints, different question.

CRM enrichment

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 trip
KYB & onboarding

Verify 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=ancestors
Lead screening

Build 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 count
Portfolio monitoring

Notice 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 copy

Every 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.

EndpointReturnsCredits
/companyThe 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-filingsEverything the company has filed, newest first, categorised and dated.1

Accounts

Parsed figures from filed accounts, with ratios.

EndpointReturnsCredits
/financialsParsed 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.

EndpointReturnsCredits
/officersDirectors and secretaries, current and resigned, each with a stable person ID.1
/ownershipPersons with significant control and reconstructed shareholdings.2
/group-structureParents above and subsidiaries below, flat or as a nested tree.2
/personOne 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.

EndpointReturnsCredits
/searchResolve a name to a number, or screen the register on what companies do and what they filed.1 per search, whatever the result count
/intelligenceWhat the company actually sells, and who to — from its verified website.1

Signals

Charges, property, grants, funding rounds and news.

EndpointReturnsCredits
/chargesCharges registered against the company — the secured lending picture.1
/propertiesLand Registry titles held in the company name, with price paid where published.1
/grantsPublic grant funding matched to the legal entity, with funder and programme.1
/fundraisingsEquity raised, reconstructed from filed share allotments.2
/newsRecent coverage, matched to the company rather than to a similar name.3 (1 for a cached read)

Account

Your remaining allowance.

EndpointReturnsCredits
/account/creditsCredits remaining, your allowance, and when it resets.Free
Full reference — parameters, fields and example responses

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.

GET /v1/financials — a micro-entity
{
  "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
  }
}
StatusMeaning
200Success. status is "success" and credits_used says what it cost.
200No data. status is "no_data" — the company exists but this layer does not. Never charged.
400Missing or malformed parameter. Not charged.
401Missing, invalid or revoked API key. Not charged.
402Allowance exhausted for the period. Not charged.
404The company number or person ID does not exist on the register. Not charged.
429Rate limited. Back off and retry. Not charged.
500Server 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.

CostWhat it covers
Free/account/credits, every no_data response, and every error
1 creditCompany record, filings, officers, business profile, charges, property, grants, and any search
2 creditsOwnership, group structure, fundraisings, and each accounting period of financials
3 creditsA 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.

PlanPer monthCredits per month
Free£0 — no card1,000
Starter£2910,000
Growth£9950,000
Scale£299250,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.

Start free — 1,000 credits a month
No integration required

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
POST /mcp — 15 tools, one endpoint
# 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.