GLEIF LEI Lookup & Corporate Ownership for AI Agents avatar

GLEIF LEI Lookup & Corporate Ownership for AI Agents

Pricing

from $1.00 / 1,000 results

Go to Apify Store
GLEIF LEI Lookup & Corporate Ownership for AI Agents

GLEIF LEI Lookup & Corporate Ownership for AI Agents

Look up Legal Entity Identifiers (LEI) and corporate ownership from GLEIF for AI agents & LLMs. Get the LEI code, legal name, address, status, legal form, jurisdiction and parent/child relationships. MCP-callable KYB, compliance & entity-resolution tool.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

19 hours ago

Last modified

Features

Limited permissions

Share

Apify Actor Maintenance Data Format MCP Ready Pagination

Look up Legal Entity Identifiers (LEI) and corporate ownership from the official GLEIF database — no login, no coding. This high-throughput GLEIF scraper lets you scrape GLEIF by company name, full text, country or LEI code and returns clean, structured records: LEI code, legal name, entity status, legal form, jurisdiction, legal & headquarters address, business-registry ID, BIC/SWIFT codes, registration dates and the full direct & ultimate parent / child ownership tree. It answers the "which company is this, and who owns it?" question that every KYB, due-diligence and entity-resolution workflow needs.

One record per entity, export to JSON, CSV, Excel, or API — ready for a spreadsheet, a database, an LLM context window or an AI-agent tool response.

Built for compliance and KYB/AML teams, risk and onboarding analysts, fintech and payments engineers, corporate-intelligence researchers, and AI agents that need authoritative, ownership-aware legal-entity data. Fully unlocked for 1,000+ results pagination with support for both batch extraction and warm Standby mode / MCP agent tool calls.


⚡ At a glance

Metric / FeatureSpecification
Target DatabaseGlobal Legal Entity Identifier Foundation (GLEIF)
Catalog CoverageOver 2.5 million active Legal Entity Identifiers worldwide across 200+ jurisdictions
Extraction ProtocolDirect official JSON API integration (api.gleif.org) — keyless & high-speed
Ownership TreeDirect parent, ultimate parent (LEI + Legal Name), and total subsidiary child count
Pagination Scale1,000+ records unlocked — pages sequentially in 200-item chunks
Execution ModesBatch dataset generation & warm Standby Mode for instant MCP / HTTP responses
Throughput / Speed~100 entities in 15–25 seconds; ~1,000 entities in 2–3 minutes
Recommended Memory512 MB – 1024 MB (pure HTTP, zero browser overhead)
Output FormatsJSON, CSV, Excel (XLSX), XML, HTML
Deduplication100% unique records deduplicated by 20-character ISO 17442 LEI code

🔎 Why scrape GLEIF?

The Global Legal Entity Identifier Foundation (GLEIF) maintains the single global source of truth for the Legal Entity Identifier — the 20-character ISO 17442 code that uniquely identifies a legally distinct organization anywhere in the world. Over 2.5 million entities are registered, from global banks and listed corporations to funds, subsidiaries and small companies. The data is published under CC0 and backed by local registration authorities, making it the most authoritative, machine-readable company-identity source available for free.

The real value of GLEIF data is not just the LEI — it is the relationship graph. GLEIF records who the direct parent and ultimate parent of an entity are, and how many subsidiaries it controls. That ownership tree is exactly what analysts need for Know-Your-Business (KYB), anti-money-laundering (AML), beneficial-ownership and counterparty-risk checks, and it is precisely the part most free tools skip.

Collecting this by hand from the GLEIF website is slow and painful: you search one name at a time, click into each record, copy the address and status, then chase parent and child links across separate pages. A GLEIF scraper turns that into a single run that returns hundreds or thousands of enriched, de-duplicated entities at once.

Manual Verification vs. Automated GLEIF Extraction

FactorManual GLEIF LookupGLEIF LEI Scraper
Speed2–3 minutes per entity~100 entities in 20 seconds
Scale15–20 companies per day1,000+ companies per run
Ownership TreeManual navigation through multiple tabsDirect & ultimate parents linked automatically
Subsidiary CountMust count child records manuallyExact childrenCount provided in JSON
Cross-ReferencesScattered across different panelsBIC/SWIFT, RA ID, and local registry numbers extracted
AutomationNone (manual repetitive searches)Programmatic REST API, Webhooks & MCP tools

High-Value Reasons to Extract GLEIF Data

  • KYB & Client Onboarding: Verify corporate entities in real time and retrieve authoritative legal names, registered addresses, and jurisdiction codes.
  • AML & Beneficial Ownership Mapping: Trace corporate ownership chains from operating subsidiaries up to ultimate holding companies to satisfy regulatory scrutiny.
  • Global Entity Resolution: Disambiguate similar or localized company names into a single immutable 20-character ISO standard identifier.
  • Supplier & Counterparty Due Diligence: Screen suppliers for inactive or lapsed LEI registration statuses before executing high-value contracts.
  • Payment Operations & Routing: Match institutional counterparties to validated BIC/SWIFT codes and national corporate register IDs.
  • AI Agent Context & Tool Calling: Supply LLMs (Claude, GPT, Gemini) with grounded legal entity records via Model Context Protocol (MCP).

✨ Key Features & Capabilities

  • ✅ Flexible Search Modes: Search by company name using broad full-text search (matches addresses and aliases) or precise legal name matching.
  • ✅ Jurisdiction & Country Filters: Filter by ISO 2-letter country codes with 40+ presets or supply custom jurisdiction identifiers.
  • ✅ Active Status Filtering: Restrict datasets to currently issued and active LEI registrations, filtering out lapsed or dissolved entities.
  • ✅ Direct LEI List Resolution: Paste an array of 20-character LEI codes to look up exact entities in bulk with zero search ambiguity.
  • ✅ 1,000+ Deep Pagination Unlocked: Pages through the official GLEIF catalog in 200-record chunks without arbitrary ceiling limits.
  • ✅ Complete Ownership Trees: Concurrent asynchronous enrichment resolves direct parent LEI/Name, ultimate parent LEI/Name, and subsidiary child counts.
  • ✅ Comprehensive Identity Metadata: Captures entity category, legal form (ELF codes), headquarters and legal addresses, and registration dates.
  • ✅ BIC/SWIFT & Registry Identifiers: Links entities to global financial SWIFT codes and domestic registration authority identifiers (e.g., HRB, Companies House).
  • ✅ Dual Execution Architecture: Supports standard asynchronous batch runs and zero-cold-start Standby Mode for instant agent tool-calling.

🎯 Primary Use Cases

1. Compliance, AML & KYB Teams

Automate institutional client verification during onboarding. Determine corporate structure, verify active legal standing, and identify parent entities across cross-border holding structures.

2. Fintech & B2B Payments Engineers

Enrich domestic and international payment transactions by validating counterparty identities, resolving routing BIC/SWIFT numbers, and standardizing database entity keys.

3. Corporate Intelligence & Forensic Investigators

Map complex corporate hierarchies, uncover cross-border shell structures, and investigate multi-tiered business conglomerates.

4. Supply Chain Risk Managers

Monitor vendor portfolios against GLEIF renewal dates. Flag suppliers with lapsed LEI registrations indicating potential insolvency or regulatory delinquency.

5. AI Agents & Autonomous Workflows

Equip autonomous agents with an authoritative corporate fact-checking tool. Using MCP or Standby HTTP, agents can query entity ownership and jurisdiction on the fly.


📥 Input Parameters

Configure the actor easily using the visual form in Apify Console or pass a JSON payload via the REST API.

FieldTypeDefaultDescription
queryString"Deutsche Bank"Company or organization name to look up. Leave empty to retrieve a diverse worldwide sample of landmark entities.
searchFieldSelect"fulltext"Matching mode: "fulltext" (broad match across name and address) or "legalName" (strict legal name matching).
countrySelect""ISO 2-letter country code (e.g. "US", "DE", "GB"). Leave empty for worldwide results.
countryCodeStringnullOptional 2-letter ISO code for countries not listed in the preset dropdown. Overrides country.
activeOnlyBooleanfalseWhen true, returns only entities with active, currently issued LEI registrations.
includeOwnershipBooleantrueEnriches every entity with direct parent, ultimate parent, and subsidiary counts via concurrent API lookups.
leisArray[]Optional list of exact 20-character LEI codes to resolve directly without text searching.
maxItemsInteger100Maximum number of legal entities to return. Set to 0 for unlimited extraction (1,000+ items unlocked).
proxyConfigurationObject{"useApifyProxy": false}Proxy settings. Not required for GLEIF as the API is keyless and public.

Input Examples

Example 1: Standard Name Search with Ownership (Prefill)
{
"query": "Deutsche Bank",
"searchField": "fulltext",
"includeOwnership": true,
"maxItems": 100
}
Example 2: Deep 1,000+ Country-Level Extraction (Germany Active Banks)
{
"query": "Bank",
"country": "DE",
"activeOnly": true,
"includeOwnership": false,
"maxItems": 1000
}
Example 3: Bulk Direct LEI Code Resolution
{
"leis": [
"7LTWFZYICNSX8D621K86",
"HWUPKR0MPOU8FGXBT394",
"213800YHAR3DBH4BPS22"
],
"includeOwnership": true
}

📤 Output Dataset & Field Coverage

The actor outputs clean, flat JSON objects where each record corresponds to a verified Legal Entity Identifier.

Field Specification & Coverage Indicators

FieldTypeCoverageDescription
leiString🟢 High (100%)20-character ISO 17442 Legal Entity Identifier.
legalNameString🟢 High (100%)Official registered legal name in native UTF-8.
entityStatusString🟢 High (100%)Operational status: "ACTIVE" or "INACTIVE".
registrationStatusString🟢 High (100%)Registration lifecycle: "ISSUED", "LAPSED", "RETIRED", etc.
legalFormString🟢 High (~98%)Entity Legal Form (ELF) code (e.g. "6QQB", "9999").
categoryString🟢 High (100%)Classification: "GENERAL", "FUND", "BRANCH", etc.
jurisdictionString🟢 High (100%)Legal jurisdiction of incorporation (e.g. "DE", "US-DE").
📍 Registered & Headquarters Addresses
FieldTypeCoverageDescription
legalAddressString🟢 High (100%)Complete street address of legal registration.
legalCityString🟢 High (100%)Registered legal city.
legalCountryString🟢 High (100%)ISO 2-letter country code for legal address.
hqAddressString🟢 High (~96%)Physical headquarters street address.
hqCountryString🟢 High (~96%)ISO 2-letter country code for headquarters.
🌳 Corporate Ownership Tree
FieldTypeCoverageDescription
directParentLeiString🟡 Conditional (~15%)LEI of immediate corporate parent. null for standalone entities.
directParentNameString🟡 Conditional (~15%)Legal name of immediate corporate parent.
ultimateParentLeiString🟡 Conditional (~12%)LEI of ultimate corporate parent holding company.
ultimateParentNameString🟡 Conditional (~12%)Legal name of ultimate corporate parent holding company.
childrenCountString🟢 High (100%)Number of direct operating subsidiaries reported to GLEIF.
🏛️ Regulatory & Banking References
FieldTypeCoverageDescription
registeredAsString🟡 Conditional (~82%)Domestic commercial register ID (e.g. HRB number).
registrationAuthorityIdString🟡 Conditional (~83%)RA identifier code from GLEIF authority master.
bicArray🟡 Conditional (~8%)Associated SWIFT / BIC codes for financial entities.
initialRegistrationDateString🟢 High (100%)First LEI assignment date (YYYY-MM-DD).
lastUpdateDateString🟢 High (100%)Most recent GLEIF record modification date.
nextRenewalDateString🟢 High (100%)Annual renewal deadline.
gleifUrlString🟢 High (100%)Direct URL to web record on search.gleif.org.
scrapedAtString🟢 High (100%)ISO 8601 extraction timestamp.

Sample Output Record (Subsidiary Entity)

{
"lei": "213800YHAR3DBH4BPS22",
"legalName": "Акционерное общество «Altyn Bank»",
"entityStatus": "ACTIVE",
"registrationStatus": "ISSUED",
"legalForm": "9999",
"category": "GENERAL",
"jurisdiction": "KZ",
"legalAddress": "109B Abay Ave, Almaty, A05A1B9, KZ",
"legalCity": "Almaty",
"legalCountry": "KZ",
"hqAddress": "109B Abay Ave, Almaty, KZ-75, A05A1B9, KZ",
"hqCountry": "KZ",
"initialRegistrationDate": "2014-01-31",
"lastUpdateDate": "2025-11-24",
"nextRenewalDate": "2026-12-21",
"registeredAs": "980740000057",
"registrationAuthorityId": "RA000918",
"bic": ["ATYNKZKAXXX"],
"ultimateParentLei": null,
"ultimateParentName": null,
"directParentLei": "300300C1030211000384",
"directParentName": "中信银行股份有限公司",
"childrenCount": "0",
"gleifUrl": "https://search.gleif.org/#/record/213800YHAR3DBH4BPS22",
"scrapedAt": "2026-11-10T16:15:00.000Z"
}

🔁 Pagination, Scale & Performance

  • 1,000+ Deep Pagination: Results are requested in standard batches of 200 items per page (page[size]=200). Sequential pagination continues seamlessly until reaching the requested maxItems target.
  • Concurrent Ownership Lookups: When includeOwnership is enabled, the actor batches parent and child network requests with a concurrency factor of 8, completing 100 entity enrichments in under 30 seconds.
  • Memory Right-Sized: Operates purely via lightweight HTTP requests with zero browser emulation, consuming under 100 MB RAM and costing fractions of a cent per run.
  • Zero Duplicates: In-memory set checks prevent duplicate records from being saved even when multi-term default queries return overlapping entities.

💻 Programmatic Integration & AI Agent Tool Calling

Node.js (Apify SDK)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('haketa/gleif-lei').call({
query: 'Siemens',
searchField: 'legalName',
includeOwnership: true,
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Resolved ${items.length} Siemens legal entities with corporate parents.`);

Python (Apify Client)

import os
from apify_client import ApifyClient
client = ApifyClient(os.getenv('APIFY_TOKEN'))
run = client.actor('haketa/gleif-lei').call(run_input={
'query': 'BlackRock',
'activeOnly': True,
'includeOwnership': True,
'maxItems': 100,
})
for entity in client.dataset(run['defaultDatasetId']).list_items().items:
parent = entity.get('directParentName') or 'Independent / Top Level'
print(f"{entity['legalName']} ({entity['lei']}) -> Parent: {parent}")

Direct cURL Request

curl -X POST "https://api.apify.com/v2/acts/haketa~gleif-lei/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "Deutsche Bank",
"searchField": "fulltext",
"includeOwnership": true,
"maxItems": 100
}'

⚡ Standby Mode & Instant Zero-Cold-Start API

Beyond traditional batch runs, this actor supports Apify Standby Mode, allowing it to run as an always-warm HTTP API server. When deployed in Standby mode, the actor stays active and responds to incoming HTTP requests in milliseconds without container boot delays:

Standby Query Parameters

Send standard HTTP GET requests to your Standby container endpoint:

Query ParameterExample ValueDescription
query or nameDeutsche BankEntity or company name to search
searchFieldlegalNameMatching mode (fulltext or legalName)
countryDEISO 2-letter jurisdiction code
lei or leis7LTWFZYICNSX8D621K86Direct LEI identifier code(s)
activeOnlytrueRestrict to currently active registrations
includeOwnershiptrueFetch direct and ultimate parent entities
maxItems10Maximum records returned in payload

Standby HTTP Example

curl -X GET "https://gleif-lei.apify.actor?query=Siemens&includeOwnership=true&maxItems=5" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"
{
"ok": true,
"count": 5,
"results": [
{
"lei": "5299002DRAEQ03248U86",
"legalName": "SIEMENS AKTIENGESELLSCHAFT",
"entityStatus": "ACTIVE",
"jurisdiction": "DE",
"directParentName": null,
"ultimateParentName": null,
"childrenCount": "194"
}
]
}

GLEIF integrates with domestic business registers globally. Captured records link directly to local authority identifiers:

  • Germany: Commercial Register (Handelsregister HRB / HRA via RA000242).
  • United Kingdom: Companies House (RA000585).
  • United States: Delaware Division of Corporations, California Secretary of State, SEC CIK.
  • France: SIRENE / INPI (RA000193).
  • Singapore: ACRA (Accounting and Corporate Regulatory Authority via RA000511).
  • Switzerland: Central Business Name Index (ZEFIX via RA000569).

💡 Practical Pro-Tips

  • Exact Legal Name vs. Broad Search: Use searchField: "legalName" when you know the exact company name (e.g., "Apple Inc.") to avoid capturing unrelated companies located on Apple Street.
  • Speed Optimization: When pulling bulk registries (> 500 records) where only status and address are needed, set includeOwnership: false to complete runs in seconds.
  • Screening Lapsed Registrations: Filter by registrationStatus != "ISSUED" to quickly identify companies that have failed to complete their annual regulatory renewal.
  • Connecting to LLMs via MCP: Add https://mcp.apify.com/?actor=haketa/gleif-lei to your Claude Desktop or Cursor MCP configuration to give your AI assistants instant KYB intelligence.

❓ Frequently Asked Questions (FAQ)

Do I need a GLEIF account or API token?

No. GLEIF data is open, public, and governed by CC0 licensing. No accounts, API tokens, or payment details are required.

Why are parent fields null for many companies?

In GLEIF, standalone independent companies have no reporting parent entity. Parent fields only populate when an entity belongs to a corporate group and reports its direct or ultimate holding company.

Can I lookup companies by their 20-character LEI directly?

Yes. Provide one or more codes in the leis input array to bypass text search and look up exact matching records.

How frequently is GLEIF data refreshed?

This actor queries the live GLEIF API directly on every run, delivering real-time registration and ownership statuses.


📋 Changelog

v1.2 (2026-11)

  • Unlocked 1,000+ Deep Pagination: Removed pagination clamps during default/sample runs so explicit requests above 100 items return full datasets.
  • Dynamic Term Allocation: Worldwide sample runs dynamically paginate through terms to satisfy requested maxItems.
  • Fast Standby & MCP Response: Streamlined parameter parsing and sub-second response times for LLM tool-calling.
  • Optimized Prefill Execution: Default sample runs execute cleanly in under 30 seconds.

v1.1 (2026-07)

  • Concurrent Ownership Resolution: Added batch parallel enrichment for direct parent, ultimate parent, and child counts.
  • Standby Mode Support: Added warm HTTP API server for zero-cold-start agent integration.

v1.0 (2026-07)

  • Initial release featuring full-text and legal name search, ISO country filtering, LEI code resolution, and multi-format exports.
⌂ 换网址