> For the complete documentation index, see [llms.txt](https://manual.personr.co/api-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manual.personr.co/api-documentation/entity-results/retrieving-thorough-entity-ownership-structures.md).

# Retrieving thorough entity ownership structures

Retrieving the ownership structure of an entity is simple, and is available for manually-entered or automatically-detected directors, shareholders, universal beneficial owners, or others.

## Retrieving an entity's ownership structure

<mark style="color:green;">`POST`</mark> `/api-retrieve-ownership`

Once the entity has been verified, retrieve the ownership structure and information.

**Headers**

| Name          | Value                 |
| ------------- | --------------------- |
| Content-Type  | `multipart/form-data` |
| Authorization | `Bearer YOUR_TOKEN`   |

**Body**

| Name          | Type   | Description                                                                                |
| ------------- | ------ | ------------------------------------------------------------------------------------------ |
| `applicantId` | string | Unique applicantId generated on entity creation <mark style="color:red;">(required)</mark> |

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "ownershipInsight": {
    "verifiedEntity": {
      "name": "EXAMPLE HOLDINGS PTY LTD",
      "registrationNumber": "123456789",
      "totalCapital": 1000000,
      "registeredAddress": "1 Example Street, Sample City, ST, 0000"
    },
    "stakeholders": [
      {
        "applicantId": "null",
        "name": "JANE EXAMPLE",
        "uboType": "Individual",
        "detectedPositions": ["UBO", "Director", "Shareholder"],
        "inputtedPosition": "null",
        "address": "2 Sample Road, Sample City, ST, 0000",
        "registrationNumber": "null",
        "sharesHeldInVerifiedEntity": [500000],
        "typeOfSharesHeldInVerifiedEntity": ["ORD"],
        "percentageOfSharesHeldInVerifiedEntity": 50.0,
        "jointHolding": false,
        "isFirstLevelStakeholder": true,
        "stakeholders": []
      },
      {
        "applicantId": "1784178339854x158496588203819001",
        "name": "PARENT HOLDINGS LTD",
        "uboType": "Company",
        "detectedPositions": ["Shareholder"],
        "inputtedPosition": "Shareholder",
        "address": "3 Corporate Ave, Sample City, ST, 0000",
        "registrationNumber": "987654321",
        "sharesHeldInVerifiedEntity": [500000],
        "typeOfSharesHeldInVerifiedEntity": ["ORD"],
        "percentageOfSharesHeldInVerifiedEntity": 50.0,
        "jointHolding": false,
        "isFirstLevelStakeholder": true,
        "stakeholders": [
          {
            "name": "JOHN SAMPLE",
            "type": "Individual",
            "sharesHeldInParentEntity": [100],
            "typeOfSharesHeldInParentEntity": ["ORD"],
            "percentageOfSharesHeldInParentEntity": 100.0,
            "percentageOfSharesHeldIndirectlyInVerifiedEntity": 50.0,
            "jointHolding": false,
            "rolesHeldInParentEntity": ["Director", "Shareholder"]
          }
        ]
      }
    ]
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
    "statusCode": 400,
    "message": "Error: incorrect applicantId provided"
}
```

{% endtab %}
{% endtabs %}

`detectedPositions` types are roles that we've automatically identified during verification.

`inputtedPosition` types are roles that the entity has manually entered, in the event of manual fallback.

{% hint style="info" %}
Note: The `applicantId` can be empty/null when the representative has been identified, but not yet verified. If applicable, once an applicant or entity has been created to verify the representative, manually or automatically in a flow, the `applicantId` will appear.
{% endhint %}

### Response properties

| Property           | Type   | Description                                                                               |
| ------------------ | ------ | ----------------------------------------------------------------------------------------- |
| `ownershipInsight` | object | Single wrapper object containing the entity being verified and its full stakeholder tree. |

| Property             | Type   | Description                                                                                                                      |
| -------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------- |
| `verifiedEntity`     | object | The company that was verified (the root of the ownership tree).                                                                  |
| `name`               | string | Legal entity name.                                                                                                               |
| `registrationNumber` | string | Company registration number. Always a string, even though it's numeric (e.g. `"`<mark style="color:red;">`654135430`</mark>`"`). |
| `totalCapital`       | float  | The entity's capital.                                                                                                            |
| `registeredAddress`  | string | Full address as a single unstructured string, not split into fields.                                                             |

| Property                                 | Type           | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ---------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stakeholders[]`                         | array          | Every direct or indirect stakeholder of the verified entity — individuals and companies mixed in the same array, distinguished by <mark style="color:red;">`uboType`</mark>. Every stakeholder is unique (no two instances of the same stakeholder appear inside this array and it is capped at 2 levels — nested <mark style="color:red;">`stakeholders[]`</mark> entries do not themselves contain a further <mark style="color:red;">`stakeholders`</mark> array) |
| applicantId                              | string         | The unique ID of the <mark style="color:red;">verified</mark> applicant.                                                                                                                                                                                                                                                                                                                                                                                             |
| `name`                                   | string         | Individual's full name or company name.                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `uboType`                                | string         | `"`<mark style="color:red;">`Individual`</mark>`"` \| `"`<mark style="color:red;">`Company`</mark>`"`.                                                                                                                                                                                                                                                                                                                                                               |
| `detectedPositions`                      | array\<string> | Roles that we've automatically identified during verification. Can be <mark style="color:red;">`[]`</mark> (e.g. historical registry entries with no current role). Example values: <mark style="color:red;">`Director`</mark>, <mark style="color:red;">`Secretary`</mark>, <mark style="color:red;">`Shareholder`</mark>, <mark style="color:red;">`Managing Director`</mark>.                                                                                     |
| `inputedPosition`                        | string         | Role that the entity has manually entered.                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `address`                                | string         | Full address string. Can be <mark style="color:red;">`""`</mark> (empty) when unavailable                                                                                                                                                                                                                                                                                                                                                                            |
| `registrationNumber`                     | string         | <mark style="color:red;">`"null"`</mark> for individuals; actual registration number (as string) for companies.                                                                                                                                                                                                                                                                                                                                                      |
| `sharesHeldInVerifiedEntity`             | array\<float>  | The number of shares the stakeholder holds in the verified entity, one entry per share class. Can be <mark style="color:red;">`[]`</mark>. Length matches <mark style="color:red;">`typeOfSharesHeldInVerifiedEntity`</mark>                                                                                                                                                                                                                                         |
| `typeOfSharesHeldInVerifiedEntity`       | array\<string> | Share class labels, positionally matched to <mark style="color:red;">`sharesHeldInVerifiedEntity`</mark>. Example values: <mark style="color:red;">`"A"`</mark>, <mark style="color:red;">`"B"`</mark>, <mark style="color:red;">`"ORD"`</mark>, <mark style="color:red;">`"Direct"`</mark> — varies by jurisdiction/source.                                                                                                                                         |
| `percentageOfSharesHeldInVerifiedEntity` | float          | Direct ownership % in verified entity.                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `jointHolding`                           | boolean        | Marks whether this stakeholder shares legal title to the same block of shares with other sibling stakeholders.                                                                                                                                                                                                                                                                                                                                                       |
| `isFirstLevelStakeholder`                | boolean        | Marks whether the stakeholder is a direct stakeholder of the verified entity.                                                                                                                                                                                                                                                                                                                                                                                        |
| `stakeholders`                           | array\<object> | Nested stakeholders chain. <mark style="color:red;">`[]`</mark> for individuals; populated for companies that themselves have traceable owners/officers.                                                                                                                                                                                                                                                                                                             |

| Property                                           | Type           | Description                                                                                                                                                                                                                                                                                                                  |
| -------------------------------------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stakeholders[].stakeholders[]`                    | array          | <p><br>When a first-level stakeholder is a <mark style="color:red;"><code>Company</code></mark>, this array unpacks <em>its</em> shareholders, directors, and other roleholders (i.e. the next layer up/down the ownership chain). Some stakeholders may appear multiple times if they hold stakes in multiple entities.</p> |
| `name`                                             | string         | Name of the person/entity holding a stake in the parent stakeholder.                                                                                                                                                                                                                                                         |
| `type`                                             | string         | `"`<mark style="color:red;">`Individual`</mark>`"` \| `"`<mark style="color:red;">`Company`</mark>`"`.                                                                                                                                                                                                                       |
| `sharesHeldInParentEntity`                         | array\<float>  | Shares held in the ***parent stakeholder***, not the originally verified entity. Can be <mark style="color:red;">`[]`</mark> (e.g. for a Director/Managing Director with no shareholding).                                                                                                                                   |
| `typeOfSharesHeldInParentEntity`                   | array\<string> | Positionally matched to <mark style="color:red;">`sharesHeldInParentEntity`</mark>.                                                                                                                                                                                                                                          |
| `percentageOfSharesHeldInParentEntity`             | float          | % owned of the parent stakeholder.                                                                                                                                                                                                                                                                                           |
| `percentageOfSharesHeldIndirectlyInVerifiedEntity` | float          | Calculated indirect % ownership of the ***original verified entity***, flowed down through the parent. Available only for AU verified entities.                                                                                                                                                                              |
| `jointHolding`                                     | boolean        | Marks whether this stakeholder shares legal title to the same block of shares with other sibling stakeholders.                                                                                                                                                                                                               |
| `rolesHeldInParentEntity`                          | array\<string> | Roles held in the parent stakeholder. Example values: <mark style="color:red;">`Director`</mark>, <mark style="color:red;">`Secretary`</mark>, <mark style="color:red;">`Shareholder`</mark>, <mark style="color:red;">`Managing Director`</mark>.                                                                           |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://manual.personr.co/api-documentation/entity-results/retrieving-thorough-entity-ownership-structures.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
