LEI — Legal Entity Identifier
GET/v0/lei
Validates a Legal Entity Identifier (LEI) as defined by ISO 17442. Verifies the 20-character alphanumeric format and the mod-97 check digits, then enriches the response with entity data from the GLEIF API and LOU (Local Operating Unit) details from the local database.
Try it
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| value | string | Yes | The 20-character LEI code to validate |
LEI Structure
| Characters | Length | Description |
|---|---|---|
| 1–4 | 4 | LOU prefix — identifies the issuing Local Operating Unit |
| 5–18 | 14 | Entity-specific alphanumeric identifier assigned by the LOU |
| 19–20 | 2 | Check digits — mod-97 checksum (ISO 17442) |
Example Request
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.isvalid.dev/v0/lei?value=5493001KJTIIGC8Y1R12"
Response Fields
| Field | Type | Description |
|---|---|---|
| valid | boolean | Whether the LEI has correct format and passes the mod-97 checksum |
| lei | string | Normalised (uppercase, no spaces) LEI code |
| louCode | string | First 4 characters — LOU prefix |
| checkDigits | string | Last 2 characters — mod-97 check digits |
| found | boolean | null | Whether the entity was found in GLEIF. null if GLEIF API was unavailable. |
| entity.legalName | string | Legal name of the entity |
| entity.country | string | ISO 3166-1 alpha-2 country code of the registered address |
| entity.entityStatus | string | ACTIVE or INACTIVE |
| entity.registrationStatus | string | GLEIF registration status: ISSUED, LAPSED, MERGED, RETIRED, ANNULLED, and others |
| entity.category | string | null | GENERAL, FUND, BRANCH, SUB-FUND |
| entity.initialRegistrationDate | string | Date the LEI was first registered (YYYY-MM-DD) |
| entity.lastUpdate | string | Date of the last data update (YYYY-MM-DD) |
| entity.nextRenewal | string | Date when the LEI registration must be renewed (YYYY-MM-DD) |
| entity.managingLou | string | LEI of the LOU that issued and manages this LEI |
| lou.name | string | Name of the Local Operating Unit |
| lou.country | string | null | Country of the LOU |
| dataSource | string | null | gleif-api when entity data comes from GLEIF, gleif-db when from local database (Etap 2+), null when GLEIF unavailable |
Example Response — valid, entity found
{
"valid": true,
"lei": "5493001KJTIIGC8Y1R12",
"louCode": "5493",
"checkDigits": "12",
"found": true,
"dataSource": "gleif-api",
"entity": {
"legalName": "Deutsche Bank AG",
"country": "DE",
"entityStatus": "ACTIVE",
"registrationStatus": "ISSUED",
"category": "GENERAL",
"initialRegistrationDate": "2012-06-06",
"lastUpdate": "2024-01-15",
"nextRenewal": "2025-01-15",
"managingLou": "5493001KJTIIGC8Y1R12"
},
"lou": {
"lei": "5493001KJTIIGC8Y1R12",
"name": "SWIFT",
"country": "BE",
"status": "ACTIVE"
}
}Example Response — invalid checksum
{
"valid": false
}GET/v0/lei/search
Searches the local GLEIF database (~2.3 M records) for legal entities by name using trigram similarity. Supports optional filters and pagination.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | Yes | Name fragment to search for (min. 2 characters) |
| country | string | No | ISO 3166-1 alpha-2 country code to filter by |
| entityStatus | string | No | Filter by entity status: ACTIVE or INACTIVE |
| page | integer | No | Page number (default: 1) |
| limit | integer | No | Results per page (default: 20, max: 100) |
Example Request
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.isvalid.dev/v0/lei/search?q=Deutsche+Bank&country=DE&entityStatus=ACTIVE"
Response Fields
| Field | Type | Description |
|---|---|---|
| results | array | Array of matching LEI records |
| results[].lei | string | 20-character LEI code |
| results[].legalName | string | Legal name of the entity |
| results[].country | string | null | ISO 3166-1 alpha-2 country code |
| results[].entityStatus | string | null | ACTIVE or INACTIVE |
| results[].registrationStatus | string | null | GLEIF registration status (e.g. ISSUED, LAPSED) |
| results[].category | string | null | Entity category (e.g. GENERAL, FUND) |
| total | integer | Total number of matching records |
| page | integer | Current page number |
| limit | integer | Results per page |
Example Response
{
"results": [
{
"lei": "7LTWFZYICNSX8D621K86",
"legalName": "Deutsche Bank AG",
"country": "DE",
"entityStatus": "ACTIVE",
"registrationStatus": "ISSUED",
"category": "GENERAL"
}
],
"total": 1,
"page": 1,
"limit": 20
}GET/v0/lei/lous
Returns the list of all accredited GLEIF Local Operating Units (LOUs) — organisations authorised to issue and manage LEI codes.
Response Fields
| Field | Type | Description |
|---|---|---|
| lous | array | List of all LOUs |
| lous[].louCode | string | 4-character LOU prefix used in LEI codes |
| lous[].lei | string | Full 20-character LEI of the LOU itself |
| lous[].name | string | Official name of the LOU |
| lous[].country | string | null | ISO 3166-1 alpha-2 country code |
| lous[].status | string | null | LOU accreditation status |
| total | integer | Total number of LOUs |
Example Request
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://api.isvalid.dev/v0/lei/lous"
Example Response
{
"lous": [
{
"louCode": "5493",
"lei": "5493001KJTIIGC8Y1R12",
"name": "SWIFT",
"country": "BE",
"status": "ACTIVE"
},
{
"louCode": "EVKF",
"lei": "EVKFNPPSXPSSAYGMST24",
"name": "KDPW CCP S.A.",
"country": "PL",
"status": "ACTIVE"
}
],
"total": 2
}