GLEIF API
The GLEIF API is the official keyless interface to the global LEI system. It turns an inconsistent company name into a canonical 20-character LEI, exposes the entity’s local registry identifier and country, and maps its parent and child structure at the accounting-consolidation level.
Free and keyless. Data is CC0 1.0, effectively public domain, and free for any use including commercial. The one rule: do not imply GLEIF endorsement. Official docs: GLEIF API v1.
npx skills add Nolpak14/getregdata -g -y
Teaches your agent the endpoints, the auth pattern and the failure modes below - so it runs the check correctly rather than guessing. Read SKILL.md
What you get, for free
- LEI record
- The 20-character LEI, official legal name, legal form, legal address and entity status of ACTIVE or INACTIVE.
- Local registry ID
- entity.registeredAs - the entity’s identifier in its home registry, such as a Companies House number, an HRB or a KRS. This is the join key into national sources and the real payoff of the API.
- Registration health
- registration.status of ISSUED, LAPSED or RETIRED plus the next renewal date. A LAPSED LEI signals the entity stopped maintaining it.
- Corporate structure
- Direct parent, ultimate parent, direct and ultimate children, and managed funds - at the accounting-consolidation level.
Getting an API key
- None. No key and no registration.
- Send a descriptive User-Agent as a courtesy.
- Stay under roughly 60 requests per minute; above that the API returns 429.
# name -> candidate LEIs (bracket params are URL-encoded: %5B = [ , %5D = ]) curl -H 'User-Agent: getregdata-skill' \ "https://api.gleif.org/api/v1/lei-records?filter%5Bentity.legalName%5D=Apple&page%5Bsize%5D=5" # LEI -> full record curl -H 'User-Agent: getregdata-skill' \ "https://api.gleif.org/api/v1/lei-records/HWUPKR0MPOU8FGXBT394"
Responses are JSON:API (application/vnd.api+json), so payloads are nested under data and attributes.
Endpoints
| Purpose | Call |
|---|---|
| Fuzzy name autocomplete | GET /api/v1/fuzzycompletions?field=entity.legalName&q={name} |
| Filtered search | GET /api/v1/lei-records?filter[entity.legalName]={name} |
| Look up by LEI | GET /api/v1/lei-records/{lei} |
| Direct parent | GET /api/v1/lei-records/{lei}/direct-parent |
| Ultimate parent | GET /api/v1/lei-records/{lei}/ultimate-parent |
| Children and managed funds | GET /api/v1/lei-records/{lei}/direct-children |
Running a KYB check end to end
- 1 Resolve the name
Use fuzzy autocomplete or a filtered search, confirm country and legal form, and take the LEI.
- 2 Read the canonical record
Check entity.status is ACTIVE and registration.status is ISSUED rather than LAPSED or RETIRED. Capture entity.registeredAs and the legal address country.
- 3 Place it in its group
Fetch ultimate-parent and direct-children. A 404 on a parent endpoint is normal and means no parent was reported.
- 4 Hand off to the national source
Use registeredAs plus country to query the right registry directly, instead of re-searching by name.
What bites people
A 404 on a parent endpoint is not an error
It means the entity reported no parent - either it is the top of its group, or it filed a reporting exception. Handle 404 as "no parent" rather than as a failed call.
Parent and child are consolidation, not control
GLEIF relationships reflect accounting consolidation, not economic control or beneficial ownership. Presenting an ultimate parent as the beneficial owner is wrong - a UBO can sit entirely outside the consolidation tree.
LEI coverage is partial by design
Many entities, especially small or private ones, have never been issued an LEI. Absence from GLEIF is not evidence a company does not exist; fall back to the national registry.
A LAPSED LEI does not mean a dead company
It means the entity stopped renewing. The company may be trading normally. Verify against the live national registry before relying on a lapsed record’s name or address.
registeredAs is the field worth the call
It is the entity’s number in its home registry, which lets you go straight to the right national record instead of name-matching again. If it is empty, fall back to legal name plus country.
The jurisdictions with no free equivalent
The UK is the outlier. Most European registers publish through portals built for people, not a general-purpose API - so the next jurisdiction you need probably has no free option. These read the official source live and return the same shape of structured record.
Is the GLEIF API free?
Yes, entirely. No key, no registration, and the data is CC0 1.0 - effectively public domain and free for commercial use. The only condition is not implying GLEIF endorses you.
What is an LEI?
A Legal Entity Identifier: a 20-character code that identifies a legal entity globally. It is the cleanest way to resolve an inconsistently spelled name to one authoritative entity across borders.
Does GLEIF show beneficial owners?
No. Its parent and child relationships are accounting-consolidation level, which is a different question from control or beneficial ownership. A UBO can sit outside the consolidation tree entirely.
Why does my company have no LEI?
LEIs are issued on request, largely driven by financial-market reporting obligations. Small and private entities frequently have none. That says nothing about whether the company exists.