GLEIF LEI Lookup & Validator API – KYB Company Registry
Pricing
from $1.00 / 1,000 entity founds
GLEIF LEI Lookup & Validator API – KYB Company Registry
GLEIF API lookup for the global LEI registry: search by company name, validate LEI lists in bulk, filter by country, category, status or last update. Legal name, addresses, LEI status, renewal date, BIC, direct and ultimate parent. Daily change monitoring for KYB. No API key. From $1 per 1,000.
Pricing
from $1.00 / 1,000 entity founds
Rating
0.0
(0)
Developer
Giordano Horacio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
GLEIF LEI Lookup & Validator API – KYB Company Registry Scraper
Validate LEIs in bulk and look up companies in the global Legal Entity Identifier registry (GLEIF) through the official GLEIF API, the official open register of 3 million legal entities worldwide, by company name, list of LEIs, country, category, entity status, LEI registration status or last update date. One flat row per entity: legal name and other names, legal and headquarters address, jurisdiction, legal form, registration authority and registered number, BIC, LEI status (issued, lapsed, retired…), renewal date, last update, and optionally the direct and ultimate parent from GLEIF relationship data.
Built for KYB and compliance teams, banks and fintechs onboarding counterparties, fund administrators, procurement and credit analysts, and data teams that need to validate thousands of LEIs or monitor a market for changes every day.
Why this one
- Official GLEIF API, no key, no account. Golden Copy data, refreshed daily; every row carries
goldenCopyDate. - Batch validation. Paste thousands of LEIs; they are fetched 200 per request. LEIs that do not exist come back in one error row so your pipeline sees them, without being charged.
- Change monitoring built in.
updatedAfteruses GLEIF's ownregistration.lastUpdateDate, so a daily schedule with yesterday's date and a country (or query) returns only entities whose LEI record changed: new registrations, lapses, renewals, address or name updates. - Red flags at a glance.
registrationStatus=LAPSEDmeans the entity stopped renewing its LEI;entityStatus=INACTIVEmeans it was merged or dissolved. - Corporate structure on demand.
includeParentsadds the direct and ultimate parent (LEI and legal name) from GLEIF Level 2 data.
Pricing
Pay per entity returned, no subscription:
| Event | Price |
|---|---|
Entity found (entity) | $1.00 per 1,000 entities |
Entity with direct and ultimate parent (entity-with-parents) | $1.50 per 1,000 entities |
Each entity is charged once, in one event or the other. Error rows, LEIs not found, empty runs and run starts are never charged. Apify's free plan ($5 monthly credit) covers 5,000 lookups per month.
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | Full-text search over legal and other names, e.g. siemens, banco do brasil. | |
leis | array | Exact LEIs to look up (20 characters), any number. | |
country | string | ISO-2 country of the legal address, e.g. BR, DE, US. | |
category | string | any | GENERAL, FUND, BRANCH, SOLE_PROPRIETOR, RESIDENT_GOVERNMENT_ENTITY, INTERNATIONAL_ORGANIZATION. |
entityStatus | string | any | ACTIVE or INACTIVE. |
registrationStatus | array | [] | ISSUED, LAPSED, RETIRED, ANNULLED, MERGED, DUPLICATE, PENDING_TRANSFER, PENDING_ARCHIVAL, CANCELLED, TRANSFERRED. |
updatedAfter | string | YYYY-MM-DD. Only records updated on or after this date. | |
includeParents | boolean | false | Fetch direct and ultimate parent (two extra requests per entity). |
maxItems | integer | 100 | Stop after this many entities. |
minResults | integer | Monitoring only: fail the run if fewer entities are returned. |
At least one filter is required.
Validate a counterparty list with parents:
{ "leis": ["5299000J2N45DDNE4Y28", "529900T8BM49AURSDO55", "W38RGI023J3WT1HWRP32"], "includeParents": true }
Daily monitor: every Brazilian fund whose LEI record changed since yesterday:
{ "country": "BR", "category": "FUND", "updatedAfter": "2026-10-25", "maxItems": 5000 }
Lapsed LEIs in Portugal (entities that stopped renewing):
{ "country": "PT", "registrationStatus": ["LAPSED"], "maxItems": 1000 }
Output
{"lei": "529900T8BM49AURSDO55","legalName": "Ubisecure Oy","otherNames": [],"entityStatus": "ACTIVE","category": "GENERAL","subCategory": null,"legalFormId": "DKUW","jurisdiction": "FI","registeredAs": "2399234-6","registrationAuthorityId": "RA000188","legalAddress": "Vaisalantie 6","legalCity": "ESPOO","legalRegion": "FI-18","legalCountry": "FI","legalPostalCode": "02130","hqAddress": "Vaisalantie 6","hqCity": "ESPOO","hqRegion": "FI-18","hqCountry": "FI","hqPostalCode": "02130","bic": [],"creationDate": null,"expirationDate": null,"expirationReason": null,"successorLei": null,"registrationStatus": "ISSUED","initialRegistrationDate": "2014-06-12T00:00:00Z","lastUpdateDate": "2026-06-09T15:12:35Z","nextRenewalDate": "2027-06-28T18:34:06Z","managingLou": "5299000J2N45DDNE4Y28","corroborationLevel": "FULLY_CORROBORATED","directParentLei": "213800N7JPQ8TFAN3F37","directParentName": "UBISECURE HOLDINGS LIMITED","ultimateParentLei": "213800N7JPQ8TFAN3F37","ultimateParentName": "UBISECURE HOLDINGS LIMITED","url": "https://search.gleif.org/#/record/529900T8BM49AURSDO55","goldenCopyDate": "2026-10-26T08:00:00Z","scrapedAt": "2026-10-26T15:02:11.000Z"}
Parent fields are null unless includeParents is on or when GLEIF holds no parent record (reporting exception or top of the group). Missing data is null, never invented. Error rows look like { "error": true, "errorType": "LEI_NOT_FOUND" | "NO_RESULTS" | "INVALID_INPUT", "message": "..." }.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/opentenders~gleif-lei-scraper/run-sync-get-dataset-items?format=json" \-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"leis":["5299000J2N45DDNE4Y28"],"includeParents":true}'
Works with the Apify API, clients, MCP server, Make, Zapier, n8n and Google Sheets integrations.
Limitations
- Legal entities only; GLEIF contains no personal data.
- Legal form and registration authority are returned as GLEIF codes (
legalFormId,registrationAuthorityId); the code lists are published by GLEIF. - Parents exist only where the child reports them to GLEIF (Level 2 data); many entities report an exception instead.
- Requests run two at a time with 200 records each, so 10,000 entities take about a minute; with parents, allow a few minutes per thousand.
FAQ
Is this allowed? Yes. GLEIF publishes LEI data as open data free of charge through its public API, without registration.
How do I check whether a LEI is still valid? Look at registrationStatus (ISSUED = valid) and nextRenewalDate. LAPSED means the registration was not renewed.
Can I search by other identifiers (BIC, ISIN)? Not yet; use query with the company name. Open an issue if you need it.
Something broke? Open an issue with the run ID; the actor fails with the exact GLEIF response when the API changes.