Resolve an entity's ultimate beneficial owners
/api/v1/entities/{entity_uuid}/ubos
operationId: relationship.ubos
Base: https://portal.watcheye.com.au/api/v1/entities/{entity_uuid}/ubos
Resolves the ultimate beneficial owners (UBOs) of a business entity by tracing its
shareholding relationships (the relationship types that carry an ownership percentage) out to
the natural persons behind it. Indirect ownership through other companies is followed and each
person's stake is aggregated across every chain before the threshold is applied.
Every business that could not be fully traced - because it has no recorded shareholders, a
shareholder with an unknown percentage, or recorded shareholdings that do not add up to 100% -
is returned in data_gaps regardless of its stake, so the disclosure is complete. The
threshold only filters the confirmed ubos list.
Only business entities can be resolved; for any other entity type applicable is false
and both lists are empty.
Path parameters
| Field | Description |
|---|---|
entity_uuidrequired |
string (uuid) The entity UUID |
Query parameters
| Field | Description |
|---|---|
threshold |
number (float) The minimum ownership percentage for an owner to be returned (0-100, default 25). |
as_of |
string (date) Evaluate ownership as at this date (YYYY-MM-DD, defaults to today). |
Responses
Ultimate beneficial owner analysis
application/json
| Field | Description |
|---|---|
data |
object The ultimate beneficial owner (UBO) analysis for a business entity. Ownership is traced
through the entity's shareholding relationships out to the natural persons behind it, with
each person's stake aggregated across every chain before the threshold is applied. Every
business that could not be fully traced is reported in |
data. |
boolean False when the entity is not a business (UBO tracing only applies to businesses). |
data. |
number (float) The minimum ownership percentage used to filter the |
data. |
string (date) The date the ownership was evaluated as at (YYYY-MM-DD). |
data. |
boolean True when there are no data-quality gaps. |
data. |
boolean True when a loop was found in the ownership structure. |
data. |
array of objects Confirmed beneficial owners at or above the threshold. |
data. |
string (uuid) UUID of the beneficial owner entity. |
data. |
string Name of the beneficial owner. |
data. |
string The owner's entity type (typically |
data. |
number (float) Aggregated direct and indirect ownership of the subject entity. |
data. |
array of objects The ownership chains contributing to this owner's stake. |
data. |
number (float) The ownership contributed by this chain. |
data. |
array of objects The intermediary businesses on this chain, from the subject outwards. |
data. |
string (uuid) |
data. |
string |
data. |
array of objects Businesses whose ownership could not be fully traced, regardless of stake. |
data. |
string (uuid) UUID of the business whose ownership could not be fully traced. |
data. |
string Name of the business. |
data. |
number (float) The effective ownership of the subject entity that flows through this business (its total stake, traced or not). |
data. |
number (float) The effective ownership of the subject entity that is actually unaccounted for via this business - the stake reaching it multiplied by its unresolved fraction. This is the figure shown in the UI and the most meaningful measure of the gap. |
data. |
string Why the business could not be fully traced - one of |
data. |
number (float) or null The unresolved fraction (percentage) of this business's own ownership, where known. |
api_reference |
string (uuid) |