LEI Lookup
Pricing
$4.00 / 1,000 entity records
LEI Lookup
Look up Legal Entity Identifier (LEI) records by LEI, by name or by registration status, in one fixed row per entity. Sole proprietors' details are withheld. Pay per entity: $0.004, no start fee. Data from the Global LEI Index (CC0). Not affiliated with or endorsed by GLEIF.
Pricing
$4.00 / 1,000 entity records
Rating
0.0
(0)
Developer
Russell Yapp
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
LEI Lookup: Legal Entity Identifier records from the Global LEI Index (CC0)
You get Legal Entity Identifier (LEI) records from the Global LEI Index, one fixed row per entity, built to hold no personal data.
| lei | legalName | registrationStatus | entityStatus | jurisdiction | legalForm | legalAddress | nextRenewalDate |
|---|---|---|---|---|---|---|---|
| 2138002P5RNKC5W2JZ46 | TESCO PLC | ISSUED | ACTIVE | GB | B6ES | {"country": "GB", "region": "GB-HRT", "city": "WELWYN GARDEN CITY"} | 2027-01-10T00:00:00Z |
A default run looks up one LEI and costs $0.004, with no start fee. Add up to 1,000 LEIs to the leis list to look up more, at $0.004 for each one found; to search by name or status instead, see Modes.
Run it with the default input.
35-second demo on YouTube: https://youtu.be/vV4ro9fiNV4
What you get
One row per entity, the same fields in every mode. A missing value is null (or [] for lists), never an absent key.
| Field | Type | Meaning |
|---|---|---|
lei | string | The 20-character LEI |
legalName | string or null | Legal name. null when withheld |
otherNames | array of strings | Other and transliterated names. [] when withheld |
category | string or null | Entity category, e.g. GENERAL, FUND, SOLE_PROPRIETOR |
subCategory | string or null | Entity sub-category |
legalForm | string or null | Legal form code (ISO 20275 ELF code) |
jurisdiction | string or null | Legal jurisdiction |
entityStatus | string or null | ACTIVE or INACTIVE |
registrationStatus | string or null | LEI registration status, e.g. ISSUED, LAPSED, MERGED |
corroborationLevel | string or null | How well the registration data is corroborated |
initialRegistrationDate | string or null | When the LEI was first registered |
lastUpdateDate | string or null | When the record was last updated |
nextRenewalDate | string or null | When the LEI is next due for renewal |
managingLou | string or null | LEI of the issuer that manages this LEI |
registeredAt | string or null | Code of the business register the entity is registered in |
registeredAs | string or null | The entity's number in that register. null when withheld |
legalAddress | object or null | {country, region, city} only. null when withheld |
headquartersAddress | object or null | {country, region, city} only. null when withheld |
successorLei | string or null | LEI of the successor entity, if any |
expirationReason | string or null | Why the entity's record expired, if it did |
bic | array of strings | BIC codes linked to the LEI |
conformityFlag | string or null | The record's conformity flag |
matchType | string | lei, name, similar or status: how the row was found |
soleProprietor | boolean | true when the entity's category is SOLE_PROPRIETOR or its legal form is a sole-trader form |
withheld | array of strings | Fields withheld because the entity is a person (see Privacy). [] otherwise |
recordUrl | string | The official API record for this LEI |
goldenCopyDate | string or null | Publish date of the daily Golden Copy the row was read from |
Modes
By LEI
{"mode": "lei","leis": ["2138002P5RNKC5W2JZ46", "5493001KJTIIGC8Y1R12"]}
- 1 to 1,000 LEIs per run, read 200 at a time. Duplicates are looked up once.
- Each LEI is checked as ISO 17442 (20 characters, valid check digits) before any request. A bad one is refused on its own, listed in
RUN_SUMMARY.refused, and costs nothing; the rest are looked up. - Rows come back in input order. An LEI the source does not know gives no row and no charge, and is listed in
RUN_SUMMARY.notFound.
By name
{"mode": "name","name": "Tesco PLC","country": "GB","status": "ISSUED","maxItems": 10}
name: 2 to 255 characters. It matches the words in a legal name, not the exact string. Characters other than letters, digits,&,.,'and-are turned into spaces.country(optional): two-letter ISO 3166 code of the legal address.status(optional): defaults toISSUED;ANYfor all.maxItems: default 10, at most 200.- If nothing matches, similar names are tried and the rows are marked
matchType: "similar", filtered by the samestatusandcountry. OtherwisematchTypeisname. - People are left out and counted in
RUN_SUMMARY.withheldPersons, so fewer rows thanmaxItemscan come back.
By registration status
{"mode": "status","status": "LAPSED","country": "GB","category": "FUND","maxItems": 25}
statusandcountryare both required, so a run cannot page the whole world.statusis one ofISSUED,LAPSED,ANNULLED,PENDING_TRANSFER,PENDING_ARCHIVAL,DUPLICATE,MERGED,RETIRED.category(optional):GENERAL,BRANCH,FUND,RESIDENT_GOVERNMENT_ENTITYorINTERNATIONAL_ORGANIZATION. Sole proprietors are never listed.maxItems: default 100, at most 10,000. The source does not page past 10,000 results; if that limit is reached,RUN_SUMMARY.depthCappedistrue.- Rows are sorted by LEI, so the same input on the same data gives the same order. People are left out and counted in
RUN_SUMMARY.withheldPersons.
Privacy: people are withheld
A sole proprietor is a person trading under their own name: a record with category SOLE_PROPRIETOR, or one registered under a sole-trader legal form (98 ISO 20275 codes, such as an eingetragener Kaufmann, an eenmanszaak or an entreprise individuelle), even if its category says GENERAL. The same goes for legal arrangements named after a person: settlements; family, will, discretionary and life-interest trusts; and "estate of". Organisations whose names merely include "Trust" (charities, trust companies) are not caught by this rule.
- lei mode: the row keeps the LEI, the statuses and the dates, so you can still check that the LEI is valid and live.
legalName,otherNames,registeredAs,legalAddressandheadquartersAddressarenull(or[]) and are listed inwithheld. These rows are returned and charged like any other. - name and status modes: these entities are left out of the results and counted in
RUN_SUMMARY.withheldPersons. - Addresses for everyone are country, region and city only. No street, number or postcode is ever read.
Pricing
Pay per event.
| Event | Charged | Price |
|---|---|---|
entity | Each row returned | $0.004, flat |
There is no start fee. LEIs not found, LEIs refused as invalid and searches with no results cost nothing. A run looking up 1,000 LEIs that are all found costs $4.00. Cap spend with maxItems and with Apify's maximum-charge setting on the run; if your limit is reached the run stops reading and the summary reports chargeLimitReached.
Run summary
Every run writes a RUN_SUMMARY record to its key-value store, and the run's status message says in one line what happened. Main fields:
| Field | Meaning |
|---|---|
status | ok, or refused (input rejected, reason says why; the run fails and nothing is read or charged) |
mode, maxItems | The mode run; maxItems in name and status modes |
pushed, found | Rows returned |
withheldPersons | lei mode: rows returned with personal details withheld. Name and status modes: people left out |
requested, notFound, refused, unavailable | lei mode only: LEIs given; LEIs the source does not know; invalid LEIs with the reason; LEIs not read because of an error or a stop |
alreadyDelivered | Rows skipped because a restarted run's dataset already held them (not charged again) |
matchType | Name mode: name or similar |
incomplete | Name and status modes: true if the search stopped before it could finish |
depthCapped | Status mode: true if the 10,000-result limit was reached |
retryAfter | null, or {seconds, until, leis} after a rate-limit refusal: retry after until. leis lists the LEIs still to look up (lei mode) |
stoppedBy | null, refused, deadline or spending-limit |
payPerEvent, chargeLimitReached | Charging state |
api | Request statistics |
goldenCopyDate | Golden Copy date of the data read |
Data and licence
- Data is from the Global LEI Index published by GLEIF through its official API, under CC0 per GLEIF's LEI Data Terms of Use. No attribution is required; the source is credited here as a courtesy.
- This Actor is not affiliated with, or endorsed by, GLEIF or any LEI issuer.
- The data is the daily Golden Copy. Each row's
goldenCopyDatesays which one it was read from. recordUrlis the official API record for the LEI.- Not included: parent and child relationships, ISINs and history.
- Official source only. No proxies are used.
Limits
- lei mode: 1 to 1,000 LEIs per run.
- name mode: up to 200 results.
- status mode: up to 10,000 results (the source's depth limit), and
countryis required. - Pacing: at most one request every 1.5 seconds.
- A rate-limit refusal (HTTP 429 or 503) stops the run's requests at once; there is no retry loop. Rows already read are returned and charged. What was not read is listed in
RUN_SUMMARY.retryAfter(andunavailablein lei mode) with no charge, and the run itself ends normally, so a script or agent can read the summary and retry afteruntil. - The run stops requesting after 10 minutes and reports what it could not read.
- The input takes no URLs, headers or query strings: the Actor builds every request itself.