For the complete documentation index, see llms.txt. This page is also available as Markdown.

Ultimate Parent

Resolve the ultimate parent of a company through corporate-hierarchy reasoning. Submit a company (name + website, optional country); the API returns a job_id you poll until the result is ready. The response includes the ultimate corporate parent, the full ownership chain (intermediate holding entities), the ultimate financial parent when it differs from the corporate parent, GLEIF Legal Entity Identifier (LEI) data for every entity, and the LLM's reasoning + cited source URL.

Submit an ultimate-parent resolution job

post

Submit a company (name + website, optional country) for ultimate-parent resolution. Returns a job ID for tracking the process.

Required scopes
This endpoint requires the following scopes:
  • : Access to the public API
Authorizations
OAuth2clientCredentialsRequired

OAuth2 client credentials flow for API access

Token URL:
Body

Payload to submit a new ultimate-parent resolution job.

company_namestring · min: 1Required

The company whose ultimate parent we want to resolve. Free-form name as it appears commercially or legally.

Example: LVMH
websitestring · min: 1Required

The company's primary website. Used by the LLM to ground the search and resolve ambiguity. URL scheme will be added automatically if missing.

Example: https://www.lvmh.com/
countryany ofOptional

Optional country to disambiguate when the website's jurisdiction is unclear (e.g., generic .com domains). Free-form name; not constrained to ISO codes.

Example: France
stringOptional
or
nullOptional
Responses
202

Job submitted to get-ultimate-queue

application/json

Response after submitting an ultimate-parent resolution job.

job_idany ofOptional

The job ID. Required if status_code <= 300.

Example: 4e8a7b3c-1234-5678-90ab-cdef12345678
stringOptional
or
nullOptional
messagestringRequired

The message to return

Example: Job submitted to get-ultimate-queue
statusstring · enumRequired

The status of the process

Example: SUCCESSPossible values:
status_codeintegerRequired

The HTTP status code to return

Example: 202
post
/v1/ultimate

Get ultimate-parent job status

get

Retrieve the result and status of a previously submitted ultimate-parent resolution job.

Required scopes
This endpoint requires the following scopes:
  • : Access to the public API
Authorizations
OAuth2clientCredentialsRequired

OAuth2 client credentials flow for API access

Token URL:
Path parameters
job_idstringRequired

The unique identifier of the ultimate-parent job

Example: {"summary":"Sample job ID","value":"4e8a7b3c-1234-5678-90ab-cdef12345678"}
Responses
202

Job is still running.

application/json

Response after retrieving the status and result of an ultimate-parent job.

job_idstringRequired

The job ID echoed back from the request.

Example: 4e8a7b3c-1234-5678-90ab-cdef12345678
messageany ofOptional

A human-readable message describing the current state or outcome of the job.

Example: Job succeeded.
stringOptional
or
nullOptional
statusstring · enumRequired

The status of the process. Note: SUCCESS at status_code=202 means 'still running'.

Example: SUCCESSPossible values:
status_codeintegerRequired

The HTTP status code representing the job's current state.

Example: 200
resultany ofOptional

The corporate hierarchy resolution. Present only when status_code == 200.

Example: {"comment":"Per LVMH 2024 annual report, Christian Dior SE holds 41.4% ...","confidence":0.95,"evidence_summary":"Identity: Sephora SAS verified | Chain: Sephora SAS -> LVMH ... | Protocol: 6 | Discard Check: ... | GTM Selection: LVMH selected as the active Operating Conglomerate","source_url":"https://www.lvmh.com/group/governance/","subsidiary_commercial_name":"Sephora Italy","ultimate_parent_source_level":"Securities Filing"}
or
nullOptional
get
/v1/ultimate/{job_id}

Last updated

Was this helpful?