Corporate Ownership Tree — GLEIF Parent & Subsidiary Chains avatar

Corporate Ownership Tree — GLEIF Parent & Subsidiary Chains

Pricing

from $4.00 / 1,000 entities

Go to Apify Store
Corporate Ownership Tree — GLEIF Parent & Subsidiary Chains

Corporate Ownership Tree — GLEIF Parent & Subsidiary Chains

Give it a company name or LEI and get the whole ownership tree from official GLEIF data: the parent chain up to the ultimate parent, the subsidiary tree, and derived fields like depth, path to the ultimate parent, subtree size and countries covered.

Pricing

from $4.00 / 1,000 entities

Rating

0.0

(0)

Developer

宗諭 楊

宗諭 楊

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Give it a company name or an LEI. Get back the whole ownership tree: every parent up to the ultimate parent, every subsidiary down to the depth you ask for, and the derived fields you were going to work out by hand.

The data is GLEIF's official Legal Entity Identifier register — free, public, no API key, and currently carrying over 3.4 million registered legal entities.

What you get per entity

FieldExample
legalName / leiAPPLE OPERATIONS INDIA PRIVATE LIMITED / 2549008YU9EOMHFUA249
relationToRootself, ancestor or descendant
depth0 for the company you asked about, -1 for its parent, +2 for a grandchild
pathToUltimateParentApple Inc. → Apple Operations Europe
isUltimateParent / ultimateParentNamefalse / Apple Inc.
directChildrenCount / subtreeSize8 / 47
jurisdiction / legalCountry / hqCountryUS-CA / US / US
entityStatus / registrationStatusACTIVE / ISSUED
legalCity / hqCity / legalFormIdGlendale / Cupertino / H1UM
bic / spglobal["APLEUS66XXX"] / ["24937"]
lastUpdateDate / nextRenewalDate / corroborationLevelprovenance

Two dataset views: Ownership tree (the whole structure) and Path to ultimate parent (the chain, for compliance and KYC write-ups).

Uses

  • KYC and ultimate beneficial ownership — the parent chain is the answer to "who ultimately controls this counterparty", and pathToUltimateParent is the audit trail.
  • Sales and account mapping — one subtreeSize tells you whether a lead is a standalone company or one node of a 200-entity group, and countriesInTree tells you where.
  • Supplier and sanctions screening — walk down from a group to find the subsidiaries you actually contract with, with the jurisdiction of each.
  • Entity resolution — a name resolves to an LEI, and every other LEI that matched the same name is reported, so near-duplicates surface instead of hiding.

Input example

{
"companies": ["Apple Inc.", "Siemens AG", "HWUPKR0MPOU8FGXBT394"],
"direction": "both",
"maxDepth": 3,
"maxChildrenPerNode": 50
}

maxDepth costs one request per node per level, so deep trees on large groups get expensive. If a limit cuts the tree off, treeTruncated is set and subtreeSize becomes a lower bound rather than a count.

How it handles the things that catch naive clients

GLEIF uses HTTP 404 to say "there is no such relationship". Apple Inc.'s /direct-parent returns 404 with "Related resource not found" — because Apple is the ultimate parent. The same endpoint on one of its subsidiaries returns 200 and points back to Apple Inc. A client that treats 404 as an error reports a failure for every top-level company, which is exactly the layer most users are asking about. This Actor treats that specific 404 as a valid answer and everything else as a failure.

CheckWhat it catches
Name not resolvedA name that matches no LEI is reported as a resolution failure, never as "this company has no relationships". If none of the companies resolves, the run is refused with the closest candidates (no rows, so no per-row charge); if some resolve, the rest are named in the warnings.
Ambiguous nameEvery matching LEI is listed in the summary, with a warning that the first was used.
Ownership cycleThird-party data does contain cycles. The walk carries a path guard and stops with an explanation instead of looping until the run times out.
Truncated treeHitting maxDepth or maxChildrenPerNode sets treeTruncated, and the summary says which node was cut.
Stale registrationAn entity whose registrationStatus is not ISSUED is named in the warnings, because its relationship data may be out of date.
Request failureA non-404 error is raised rather than returned as an empty tree.

Notes on the data

  • Relationship completeness depends on self-reporting. GLEIF does not compel entities to file parent or child relationships, so "no subsidiaries" can mean "no subsidiaries reported". Do not read an empty tree as proof of a flat group structure.
  • subtreeSize counts the entities this run actually retrieved. With treeTruncated set it is a lower bound; subtreeComplete says, row by row, whether every node below was expanded and fully retrieved.
  • directChildrenCount is the number of direct subsidiaries GLEIF reports, which can be larger than the rows retrieved when maxChildrenPerNode cuts a list. It is null on ancestor rows and on nodes that were not expanded (beyond maxDepth, or direction: "up"): those were not looked up, which is different from having zero subsidiaries.
  • Addresses are the legal and headquarters addresses as registered, which for many entities is a registered-agent address rather than an operating site.