Legal Entity & LEI API
Legal Entity & LEI API
/lei/v1/lookup1 creditOne LEI → the full verified legal-entity record (Level-1 who-is-who): legal name, addresses, jurisdiction, legal form, registration status + honesty note, authority ids, renewal dates, BIC/ISIN-adjacent identifiers.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| lei | required | — | The 20-character Legal Entity Identifier (ISO 17442). Spaces/dashes are ignored; case-insensitive. Format + MOD-97-10 checksum are validated offline first — a malformed LEI returns a clean error with the reason, never an upstream call. |
| resolve_codes = false | optional | — | If true, also resolve the legal-form ELF code and registration-authority code to their human-readable names (2 extra cached GLEIF calls; silently skipped if unavailable). |
| history = false | optional | — | If true, append the record's field-modification audit trail (what changed, when, old/new value) — GLEIF Level-1 history. |
/lei/v1/search1 creditCompany name → ranked candidate entities with match_confidence for disambiguation (same-name entities across countries/legal-forms). Filters: country, status, jurisdiction, entity_status.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| name | required | — | Company/entity name to search for. Matching is word-based on the GLEIF data pool; results are ranked by `match_confidence` (an explicit string-similarity heuristic) so same-name entities in different countries/forms are easy to disambiguate. |
| scope = auto | optional | auto · fulltext · name | Which name surface to search. `auto` (default) queries BOTH the fulltext and the legal-name surface and merges by LEI — GLEIF's fulltext relevance alone can bury an exact legal-name match below the page cut. `fulltext` also matches former and transliterated names; `name` is strict legal-name matching. |
| country | optional | — | Filter by the entity's legal-address country (ISO-3166 alpha-2, e.g. US, DE). |
| status | optional | — | Filter by registration status (case-insensitive). Common values: ISSUED, LAPSED, RETIRED, ANNULLED, MERGED, DUPLICATE, PENDING_TRANSFER, PENDING_ARCHIVAL. NOTE: LAPSED only means the record's re-certification is overdue — not that the company is gone. |
| entity_status | optional | — | Filter by entity status: ACTIVE or INACTIVE (INACTIVE = the legal entity itself ceased to exist; different axis than `status`). |
| jurisdiction | optional | — | Filter by legal jurisdiction (ISO-3166 code, may include region subdivisions like US-DE for Delaware). |
| limit = 20 | optional | 1–200 | Max results to return (1-200; GLEIF page cap is 200). |
| page = 1 | optional | 1–10000 | Result page number (1-based). |
| min_confidence | optional | 0–1 | Drop candidates whose match_confidence is below this 0-1 threshold. |
| typo = true | optional | — | When the name has NO exact matches, attempt typo-recovery: probe GLEIF autocompletions with bounded misspelling-candidates and re-run the search on the best correction (did_you_mean). Recovers common typos (gogle→Google, deutsche bnk→Deutsche Bank); best-effort, never blocks an exact-match query. Set false to skip. |
/lei/v1/autocomplete1 creditType-ahead suggestions for a partial company name (GLEIF autocompletions surface) — each suggestion carries its LEI for direct lookup.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| name | required | — | Partial name (min 2 chars) to complete. |
/lei/v1/relationships2 creditsOne LEI → Level-2 corporate hierarchy: direct & ultimate parent (entity OR the entity's declared reporting-exception with reason+meaning OR no_data), children list + total counts. detail=true adds the auditable relationship provenance.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| lei | required | — | The 20-character Legal Entity Identifier (ISO 17442). Spaces/dashes are ignored; case-insensitive. Format + MOD-97-10 checksum are validated offline first — a malformed LEI returns a clean error with the reason, never an upstream call. |
| children_limit = 50 | optional | 0–200 | Max direct/ultimate children to list (0-200). The TOTAL count is always returned in children_total regardless of this cap. |
| detail = false | optional | — | If true, include the raw relationship-record provenance for each parent link (valid_from, accounting periods, corroboration level/documents) — the auditable Level-2 trail. |
/lei/v1/map1 creditIdentifier mapping: ISIN / BIC / MIC / QCC / S&P-Global-ID → LEI record(s), or reverse LEI → all its ISINs.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| type | required | isin · bic · mic · qcc · spglobal · lei_to_isin | Which identifier system to map. isin/bic/mic/qcc/spglobal map TO LEI records; lei_to_isin maps an LEI to its issued ISINs. |
| value | required | — | The identifier to map: an ISIN (e.g. US0378331005), BIC (e.g. DEUTDEFFXXX), MIC, QCC, S&P Global ID — or the LEI itself for type=lei_to_isin. |
| limit = 10 | optional | 1–200 | Max results to return (1-200; GLEIF page cap is 200). |
/lei/v1/reference1 creditGLEIF reference collections: ISO-20275 legal forms, registration authorities, LEI issuers (LOUs), jurisdictions, countries, regions, field catalog — list or fetch one by code.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| kind | required | legal-forms · registration-authorities · lei-issuers · jurisdictions · countries · regions · fields · mic | Which reference list to query. All are GLEIF live except 'mic', which is served from the embedded ISO 10383 registry snapshot. |
| code | optional | — | Optional: fetch ONE reference item by its code/id (e.g. ELF code '8888', RA code 'RA000602', LOU LEI). Omit to list. |
| limit = 50 | optional | 1–200 | Max results to return (1-200; GLEIF page cap is 200). |
| page = 1 | optional | 1–10000 | Result page number (1-based). |
/lei/v1/batch2 creditsUp to 50 mixed lookup/search items in one call. Lookups are collapsed into one upstream request per 50 LEIs (GLEIF rate-friendly); searches are spaced.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| items | required | — | Up to 50 items. Each is {type: lookup|search, ...}: lookup items carry `lei`; search items carry `name` (+ optional `country`). Lookups are collapsed into ONE upstream call per 50 LEIs (rate-friendly); searches run sequentially, spaced. A bad item yields its own error entry — it never fails the batch. |
curl -X POST https://api.reefapi.com/lei/v1/lookup \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"lei":"HWUPKR0MPOU8FGXBT394"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}