LEI Lookup avatar

LEI Lookup

Pricing

$4.00 / 1,000 entity records

Go to Apify Store
LEI Lookup

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

Russell Yapp

Maintained by Community

Actor 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.

leilegalNameregistrationStatusentityStatusjurisdictionlegalFormlegalAddressnextRenewalDate
2138002P5RNKC5W2JZ46TESCO PLCISSUEDACTIVEGBB6ES{"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.

FieldTypeMeaning
leistringThe 20-character LEI
legalNamestring or nullLegal name. null when withheld
otherNamesarray of stringsOther and transliterated names. [] when withheld
categorystring or nullEntity category, e.g. GENERAL, FUND, SOLE_PROPRIETOR
subCategorystring or nullEntity sub-category
legalFormstring or nullLegal form code (ISO 20275 ELF code)
jurisdictionstring or nullLegal jurisdiction
entityStatusstring or nullACTIVE or INACTIVE
registrationStatusstring or nullLEI registration status, e.g. ISSUED, LAPSED, MERGED
corroborationLevelstring or nullHow well the registration data is corroborated
initialRegistrationDatestring or nullWhen the LEI was first registered
lastUpdateDatestring or nullWhen the record was last updated
nextRenewalDatestring or nullWhen the LEI is next due for renewal
managingLoustring or nullLEI of the issuer that manages this LEI
registeredAtstring or nullCode of the business register the entity is registered in
registeredAsstring or nullThe entity's number in that register. null when withheld
legalAddressobject or null{country, region, city} only. null when withheld
headquartersAddressobject or null{country, region, city} only. null when withheld
successorLeistring or nullLEI of the successor entity, if any
expirationReasonstring or nullWhy the entity's record expired, if it did
bicarray of stringsBIC codes linked to the LEI
conformityFlagstring or nullThe record's conformity flag
matchTypestringlei, name, similar or status: how the row was found
soleProprietorbooleantrue when the entity's category is SOLE_PROPRIETOR or its legal form is a sole-trader form
withheldarray of stringsFields withheld because the entity is a person (see Privacy). [] otherwise
recordUrlstringThe official API record for this LEI
goldenCopyDatestring or nullPublish 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 to ISSUED; ANY for all.
  • maxItems: default 10, at most 200.
  • If nothing matches, similar names are tried and the rows are marked matchType: "similar", filtered by the same status and country. Otherwise matchType is name.
  • People are left out and counted in RUN_SUMMARY.withheldPersons, so fewer rows than maxItems can come back.

By registration status

{
"mode": "status",
"status": "LAPSED",
"country": "GB",
"category": "FUND",
"maxItems": 25
}
  • status and country are both required, so a run cannot page the whole world. status is one of ISSUED, LAPSED, ANNULLED, PENDING_TRANSFER, PENDING_ARCHIVAL, DUPLICATE, MERGED, RETIRED.
  • category (optional): GENERAL, BRANCH, FUND, RESIDENT_GOVERNMENT_ENTITY or INTERNATIONAL_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.depthCapped is true.
  • 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, legalAddress and headquartersAddress are null (or []) and are listed in withheld. 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.

EventChargedPrice
entityEach 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:

FieldMeaning
statusok, or refused (input rejected, reason says why; the run fails and nothing is read or charged)
mode, maxItemsThe mode run; maxItems in name and status modes
pushed, foundRows returned
withheldPersonslei mode: rows returned with personal details withheld. Name and status modes: people left out
requested, notFound, refused, unavailablelei 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
alreadyDeliveredRows skipped because a restarted run's dataset already held them (not charged again)
matchTypeName mode: name or similar
incompleteName and status modes: true if the search stopped before it could finish
depthCappedStatus mode: true if the 10,000-result limit was reached
retryAfternull, or {seconds, until, leis} after a rate-limit refusal: retry after until. leis lists the LEIs still to look up (lei mode)
stoppedBynull, refused, deadline or spending-limit
payPerEvent, chargeLimitReachedCharging state
apiRequest statistics
goldenCopyDateGolden 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 goldenCopyDate says which one it was read from.
  • recordUrl is 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 country is 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 (and unavailable in lei mode) with no charge, and the run itself ends normally, so a script or agent can read the summary and retry after until.
  • 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.