# GLEIF Direct Parent — one level up, no login (`pappy-dev/gleif-direct-parent`) Actor

Give this actor a company's LEI and it returns the direct (first-tier) parent via GLEIF's official Direct Parent endpoint: legal name, status, jurisdiction, HQ country/city, legal form. Top-of-hierarchy companies return 0 items, not an error. CC0 licensed, no login.

- **URL**: https://apify.com/pappy-dev/gleif-direct-parent.md
- **Developed by:** [Backyard Tools](https://apify.com/pappy-dev) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 direct parent record scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## GLEIF Direct Parent — one level up, no login

Give this actor a subsidiary's **Legal Entity Identifier (LEI)** and it returns that
company's **direct (first-tier) parent** — the immediate owner, not the top-of-group
ultimate parent. It calls GLEIF's own official `direct-parent` endpoint (the same public
Access Service behind gleif.org's search), so the parent/child link is GLEIF's, not a
scrape of a web page.

Open data, CC0 1.0 licensed: free to use commercially, no permission or attribution required
(source: GLEIF LEI Data Terms of Use). This actor is not affiliated with or endorsed by GLEIF —
it's an independent client of their public API.

### Direct vs. ultimate parent

Need the top-of-group ultimate parent instead? Use the companion actor **GLEIF Corporate
Family Tree**. This actor is the lighter, one-level version for when you only need the
immediate owner.

### Tested (2026-09-02)

| Subsidiary LEI | Direct parent found |
|---|---:|
| `2549008YU9EOMHFUA249` (Apple subsidiary) | Apple Inc. |
| `5493004QI6E3PJNCEB09` (Apple subsidiary) | Apple Inc. |
| `549300YX4S1LLSMK2627` (Apple subsidiary) | Apple Inc. |
| `HWUPKR0MPOU8FGXBT394` (Apple Inc. itself — top of hierarchy) | 0 (no parent) |

A LEI with no direct parent (top-of-hierarchy company) simply returns 0 items (no charge) —
it's not an error.

### Don't have the LEI yet?

Use the companion actor **GLEIF LEI Company Registry Lookup** to search a company by name and
get its LEI first, then feed that LEI into this actor.

### Input

```json
{
  "targets": ["2549008YU9EOMHFUA249"],
  "maxItems": 2000
}
```

Each target is a 20-character subsidiary LEI code.

### Output

One dataset item for the direct parent (0 items if the company is top-of-hierarchy):

| Field | |
|---|---|
| `lei` | the parent's own 20-character LEI |
| `legal_name` | parent's registered legal name |
| `entity_status` | `ACTIVE` / `INACTIVE` |
| `category` | e.g. `FUND`, `GENERAL` |
| `jurisdiction` | ISO country/region code of incorporation |
| `legal_form_id` | ISO 20275 legal form code |
| `hq_country` / `hq_city` | headquarters country and city (no street address — company-identifying fields only, no personal data) |
| `registration_status` | `ISSUED` / `LAPSED` / `RETIRED` / etc. |
| `managing_lou` | the Local Operating Unit (issuer) managing this LEI |
| `initial_registration_date` / `last_update_date` / `next_renewal_date` | LEI lifecycle dates |

No personal data: LEI records identify companies and funds, not individuals.

### Why this over GLEIF's own website

gleif.org shows one entity's relationships at a time, in a UI built for eyeballs, not
pipelines. This actor batches multiple subsidiary LEIs in one run and hands back structured
rows — for ownership-chain checks, KYB, or M\&A due diligence that needs just the immediate
parent without walking the whole tree.

### Use Cases

- **Ownership-chain verification** — confirm who directly owns a subsidiary before escalating to full UBO research
- **Vendor/counterparty due diligence** — check a supplier's immediate parent before onboarding
- **Group structure audits** — verify a subsidiary's reporting line matches internal records
- **Bulk parent lookups** — resolve the direct parent for many subsidiary LEIs in a single run

### Pricing

Pay per event: **$2.00 per 1,000 direct-parent records** collected. Nothing else.

# Actor input Schema

## `targets` (type: `array`):

調べたい子会社の LEI コード（20桁の Legal Entity Identifier）を指定（例: 2549008YU9EOMHFUA249 = Apple Inc. 傘下の一社）。LEI が不明な場合は gleif-lei-registry（会社名検索）で先に調べる。親会社が無い（頂点企業）LEI は 0 件を返す

## `maxItems` (type: `integer`):

1 run で取得する最大件数

## Actor input object example

```json
{
  "targets": [
    "2549008YU9EOMHFUA249"
  ],
  "maxItems": 2000
}
```

# Actor output Schema

## `items` (type: `string`):

取得した各件（type=item）と、選択した分析の結果（type=analysis）

## `overview` (type: `string`):

件数・平均評点・期間・ネガティブ比率（下側信頼限界つき）

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "targets": [
        "2549008YU9EOMHFUA249"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("pappy-dev/gleif-direct-parent").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "targets": ["2549008YU9EOMHFUA249"] }

# Run the Actor and wait for it to finish
run = client.actor("pappy-dev/gleif-direct-parent").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "targets": [
    "2549008YU9EOMHFUA249"
  ]
}' |
apify call pappy-dev/gleif-direct-parent --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,pappy-dev/gleif-direct-parent"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/t9khWJQ05rzvzeHMu/builds/wrkiphwLgTLAFE1VP/openapi.json
