Gleif Lei Scraper avatar

Gleif Lei Scraper

Pricing

from $8.00 / 1,000 results

Go to Apify Store
Gleif Lei Scraper

Gleif Lei Scraper

3.4 million companies worldwide from GLEIF's official Legal Entity Identifier registry - legal name, addresses, jurisdiction, registration number, and real ownership links. When a company shows no parent, this is the only scraper that tells you why instead of leaving it blank.

Pricing

from $8.00 / 1,000 results

Rating

0.0

(0)

Developer

Norm Data

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Share

Norm Data

🏢 GLEIF LEI Scraper

Pull the global Legal Entity Identifier (LEI) registry straight from GLEIF's own official data, no login: 3.4 million real legal entities with legal name, addresses, jurisdiction, national registration number, registration status, and real ownership links, including the actual reason a parent relationship is absent, not just a blank field.

🎯 Who uses it?

🛂 KYC/AML & compliance teams

Validate a counterparty's legal identity, jurisdiction, and registration status before onboarding.

🗺️ Corporate ownership researchers

Trace a group's real subsidiary tree, or find a subsidiary's real ultimate parent, and know why when there isn't one.

⚠️ Risk & credit monitors

Track LEIs that have lapsed as an early compliance signal.

🗂️ Data & entity-resolution teams

Build a clean, joinable company master file keyed on real national registration numbers.

✨ What it does

Reads GLEIF's own official data directly, no key, no login.

  • Registry: pull every real entity in one or more countries, or the whole registry, filtered by entity status and registration status, each country getting its own fair share of the row cap.
  • Search: full-text search across real legal entity names.
  • Lookup: enrich a list of known LEI codes with their full real record.
  • Subsidiaries: given a LEI, the real companies it directly owns.
  • Parents: given a LEI, its real direct and ultimate parent, and when there isn't one, the real documented reason (e.g. a public company with no single controlling owner).

Missing source values are returned as null, never invented.

🏆 Why this scraper

  • No practical result ceiling. Pull an entire country, however large, in one clean run, with no gaps and no manual splitting into smaller requests.
  • The real reason a parent is missing, not just a blank field. When a company has no reported parent, this Actor tells you why, instead of leaving you to guess whether it's independent, undisclosed, or simply not checked.
  • Reliable under real load. Built and tested for sustained, concurrent pulls with no slowdown.
  • Bidirectional ownership in one Actor. Subsidiaries and parents are both first-class modes, not bolted onto a single generic mode.

⚖️ How it compares

Checked directly against the closest real competitor on Apify (their own declared input and output):

CapabilityThis actorClosest competitor
Practical result ceiling on a large country or querynone hit in testingrequires manually splitting large requests
Real reason for a missing parent relationshipyesnot exposed
Registry / Search / Lookup / Subsidiaries / Parents modesall 5all 5
SourceOfficial GLEIF dataOfficial GLEIF data

📦 What data you get

EntityUseful fields
IdentityLEI, legal name, and record URL.
ClassificationEntity category, entity status, legal form code, and jurisdiction.
RegistrationReal national registration number and registration authority, a join key to local registries.
AddressesSeparate legal and headquarters addresses, plus whether they differ.
LEI healthRegistration status, lapsed flag, and next renewal date.
Data qualityManaging LOU, validation sources, and conformity flag, GLEIF's own quality metadata.
RelationshipsRelated LEI and relationship type in Subsidiaries/Parents mode, plus the real reason a parent relationship is absent when one applies.

💡 Use cases

🇩🇪 Every active company in a country

{ "mode": "registry", "countries": ["DE"], "entityStatus": "ACTIVE" }

🔤 Search by company name

{ "mode": "search", "searchQuery": "Tesla" }

🆔 Look up known LEI codes

{ "mode": "lookup", "leiCodes": ["HWUPKR0MPOU8FGXBT394"] }

🌳 Real subsidiaries or parents of a company

{ "mode": "subsidiaries", "relationshipLeiCodes": ["HWUPKR0MPOU8FGXBT394"] }

⚙️ How the input is organised

The input form is split into a top-level mode picker plus one section per mode:

SectionWhat it's for
Mode + row capPick Registry, Search, Lookup, Subsidiaries, or Parents, plus the row cap for the run.
Registry modeCountries, entity status, and registration status.
Search modeThe company name to search.
Lookup modeThe exact LEI codes to enrich.
Subsidiaries / Parents modeThe LEI codes to look up real ownership links for.

Only the fields for the mode you pick are used; the rest are ignored.

Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.

💰 Pricing

Pay-per-event: a one-time 0.003 when the run starts, plus a price per result saved to your dataset. The price depends on your Apify plan tier:

Your Apify planPrice per result
Free0.0133
Bronze0.0112
Silver0.0099
Gold / Platinum / Diamond0.008

Approximate total cost (includes the 0.003 start fee):

Results collectedFreeBronzeSilverGold+
100$1.33$1.12$0.99$0.80
1,000$13.30$11.20$9.90$8.00
10,000$133.00$112.00$99.00$80.00

New Apify accounts start with $5 in free credit.

🚀 Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Gleif Lei Scraper.
  3. Fill in the input (or keep the prefilled example), set the maximum number of results, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python, and schedule it with Apify's built-in Scheduler.

🤖 Use with AI agents (MCP)

Give an AI agent live access to the Gleif Lei Scraper through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/gleif-lei-scraper"

Then prompt it in plain language to run the scraper and read back the results.

🔧 Troubleshooting

An entity shows no parent. Check reporting_exception_reason: GLEIF gives the real reason, e.g. NATURAL_PERSONS means it's owned by individuals rather than a corporate parent.

A LEI code returned nothing. LEIs are 20 characters. Check the code, or find it with Search mode by company name.

With several countries, each has fewer rows than I expected. Each country gets its own fair share of the row cap. Raise Maximum results.

❓ FAQ

QuestionAnswer
What is an LEI?A Legal Entity Identifier: a global 20-character ID for companies that take part in financial transactions.
Can I map a corporate group?Yes, Subsidiaries mode for what a LEI owns, Parents mode for who owns it.
How many entities are covered?About 3.4 million worldwide.
Do I need an API key?No.

🛡️ Limits & responsible use

This Actor reads only GLEIF's own publicly documented data. It never signs in and never accesses anything gated behind an account.

reporting_exception_reason surfaces the real reason GLEIF itself gives when an entity reports no parent: NATURAL_PERSONS means it's owned by individual people rather than a single corporate parent (common for public companies), and other real reasons include the parent being non-consolidating, legally restricted from disclosure, or genuinely unknown; it is never a guess. bic and successor_lei are usually null because GLEIF only sets them when they genuinely apply, most entities have no BIC code and have never merged into a successor.

Read live from GLEIF on every run. It is not cached.

Is this an official GLEIF tool? No. Independent, not affiliated with GLEIF. It reads only the publicly documented data.

📧 Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com

🧪 Local development

bun install
bun test # offline: normalization (real fixtures)
bun run src/main.ts # reads storage/key_value_stores/default/INPUT.json