Skip to content
← all APIs

Ownership Chain

2 credits / call

Who controls the company, followed up the register to the parent nobody registered controls.

The PSC chain followed company by company (up to five levels): names, numbers, status, what each controller holds, where the register ends, trouble above. Individuals counted, never named.

Every UK company files its people with significant control: the companies and individuals that own more than a quarter of it, hold the votes, or can appoint the board. One company's filing shows only its own controllers; who controls the controller is another filing, and the one above that another. This endpoint follows the chain up the register while the controller is a UK-registered company, up to five levels, and gives it back as one picture: each company with its status and insolvency flag, what each controller holds, where the register runs out (a foreign parent, a listed company whose shares are widely held, a statement that there's no PSC), and whether any company above is in trouble. Companies are named and numbered; an individual with significant control is counted, never named.

what you’d build with it

Credit control and vetting

The customer looks fine; its parent is in administration. One call shows it.

Onboarding

Who ultimately owns this supplier, as far as the public register can say, and where the trail leaves the UK.

Group work

Every company in a chain by number, ready for the other endpoints.

example response

{
  "company": { "name": "TESCO STORES LIMITED", "number": "00519500", "status": "active" },
  "levels": 3,
  "ultimateParentOnRegister": { "name": "TESCO PLC", "number": "00445790", "status": "active" },
  "chain": [
    { "level": 0, "name": "TESCO STORES LIMITED", "number": "00519500", "status": "active", "controllers": [ { "kind": "company", "name": "Tesco Holdings Limited", "number": "00243011", "controls": ["owns 75–100% of the shares", "holds 75–100% of the voting rights", "can appoint and remove the directors"], "followed": true } ] },
    { "level": 1, "name": "TESCO HOLDINGS LIMITED", "number": "00243011", "status": "active", "controllers": [ { "kind": "company", "name": "Tesco Plc", "number": "00445790", "followed": true } ] },
  …

Abbreviated. The full example, every endpoint and runnable code are in the implementation guide above; the integration pack downloads beside it. No account needed to read any of it.

Loading plans…

Why developers pick it

The chain, not one filing

Five levels in one call, each company's status and insolvency flag read on the way up.

Where the register ends, said

A foreign parent, a listed company or a PSC statement: the reply names the point the public record stops.

Companies named, people counted

Individuals with significant control are counted, never named, so the reply can be shown anywhere.

Terms & disclaimer. Provided “as is” with no warranty. Results are derived from public sources and, in places, generated by AI — they may be inaccurate or out of date and are not legal, professional or credit advice. Company data contains public sector information licensed under the Open Government Licence v3.0; the Registers API contains Environment Agency information © Environment Agency and/or database right, used under the Environment Agency Conditional Licence. Any logos returned remain the trademarks of their owners (nominative/identification use only, no endorsement implied). Any scores or ratings are an indicative opinion, not a statement of fact about a company. You are responsible for your own use. See the full API Terms of Use or get in touch.

Optional cookies show us how the site is used. Privacy