Skip to main content
Trace the ownership chain of any vessel from registered owner through to ultimate beneficial owner. The UBO graph resolves corporate structures and cross-references ownership entities against sanctions lists, showing where a vessel sits in the broader network.

GET /api/v1/ubo/vessel/{imo}

Requires API key.
Returns the full beneficial ownership graph for a vessel, including the sanctions network — all entities in the ownership chain that have sanctions matches. Parameters Response
Example

GET /api/v1/ubo/vessels

Requires API key.
Batch lookup of vessels with sanctions-flagged ownership. Returns a summary for each vessel indicating whether any entity in its ownership chain has a sanctions match. Response
Example

GLEIF ultimate parent chain

Overwatch ingests the GLEIF Level 2 Relationship Records golden copy weekly. Every active direct and ultimate accounting-consolidation relationship between Legal Entity Identifiers (LEIs) lands in the gleif_relationships table, and a Postgres function walks the consolidation graph from a child LEI up to its ultimate parents. Use this when you have an LEI on an entity in a vessel’s ownership chain — registered owner, beneficial owner, or anything in between — and need to resolve the accounting-consolidation parent chain above it. The output is the canonical input to manual UBO investigations and to the sanctions screening pipeline. Source: GLEIF RR-CDF (Relationship Record Common Data Format) JSON golden copy. CC0 Public Domain. Refreshed weekly.

get_ultimate_parent_chain(p_lei)

Recursive Postgres function. Follows ACTIVE GLEIF relationships of type IS_DIRECTLY_CONSOLIDATED_BY and IS_ULTIMATELY_CONSOLIDATED_BY from the input LEI up to each terminal parent. Returns one row per hop. Parameters Returns (table) Example (Supabase client)
Example (Postgres / SQL)
The function is exposed to anon, authenticated, and service_role. Call it via the Supabase REST/PostgREST RPC interface, the Supabase JS / Python client, or directly in SQL against a read replica. There is no REST endpoint wrapper yet — the vessel-scoped /api/v1/ubo/vessel/{imo} graph above remains the recommended starting point when you are working from an IMO rather than an LEI.