/ownership

GET 1 request = 1 credit

Coverage The PSC regime begins April 2016 — companies dissolved before then have no PSC record. Shareholder registers come from annual confirmation statements, so they are annual snapshots rather than live.

Returns who controls the company: persons with significant control as filed, plus the shareholder register from confirmation statements with share classes and percentage holdings. Corporate controllers are linked to their own company record so you can walk the chain.

Input

ParameterDescriptionRequired
keyYour API key. May also be sent as a bearer token or X-API-Key header.Required
company_numberCompanies House company number, with or without the UK- prefix. E.g. 00000042 or UK-00000042.Required
include_ceasedtrue to include ceased PSC records. Default false.Optional

Example request

GET request
https://api.ukdatalayer.com/v1/ownership?key=YOUR_KEY&company_number=00000042

Output

FieldTypeDescription
controls[].namestringName of the person or company with significant control.
controls[].kindstringindividual-person-with-significant-control, corporate-entity-person-with-significant-control and similar.
controls[].natures_of_controlstring[]e.g. ownership-of-shares-75-to-100-percent, voting-rights-25-to-50-percent.
controls[].notified_ondateDate the control was notified.
controls[].ceased_ondate | nullDate control ceased, null if current.
controls[].control_is_companybooleanTrue where the controller is a corporate entity.
controls[].parent_company_idstring | nullCompany ID of a corporate controller, where resolved.
active_controllersnumberCount of PSC records that have not ceased.
shareholders[].namestringHolder name from the latest confirmation statement.
shareholders[].shares_percnumber | nullPercentage of the class held.
shareholders[].share_countnumber | nullNumber of shares held in the class.
shareholders[].share_classstring | nulle.g. ORDINARY, A ORDINARY, PREFERENCE.
shareholders[].is_companybooleanTrue where the holder is a company.
shareholders[].as_ofdate | nullDate of the filing the holding was taken from.
shareholders[].sourcestring | nullRegister source of the holding record.
total_shareholdersnumberHolder count on the latest filing.

Example response

200 OK · application/json
{
  "status": "success",
  "credits_used": 1,
  "data": {
    "company_number": "00000042",
    "controls": [
      {
        "name": "NORTHGATE GROUP HOLDINGS LTD",
        "kind": "corporate-entity-person-with-significant-control",
        "natures_of_control": ["ownership-of-shares-75-to-100-percent"],
        "notified_on": "2022-09-30",
        "ceased_on": null,
        "control_is_company": true,
        "parent_company_id": "UK-00000041"
      }
    ],
    "shareholders": [
      {
        "name": "NORTHGATE GROUP HOLDINGS LTD",
        "shares_perc": 82.5,
        "share_class": "ORDINARY",
        "is_company": true
      },
      {
        "name": "Priya Raman",
        "shares_perc": 17.5,
        "share_class": "ORDINARY",
        "is_company": false
      }
    ],
    "total_shareholders": 2
  }
}

Notes

  • One holder produces one row per share class per snapshot. Aggregate by holder before computing an overall percentage.
  • Percentages filed as integers can drift slightly on older registers; treat small differences from 100% as rounding.