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.

Guides: Node.js · Python

Try it

Query Parameters

ParameterTypeRequiredDescription
valuestringYesThe 20-character LEI code to validate

LEI Structure

CharactersLengthDescription
1–44LOU prefix — identifies the issuing Local Operating Unit
5–1814Entity-specific alphanumeric identifier assigned by the LOU
19–202Check 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

FieldTypeDescription
validbooleanWhether the LEI has correct format and passes the mod-97 checksum
leistringNormalised (uppercase, no spaces) LEI code
louCodestringFirst 4 characters — LOU prefix
checkDigitsstringLast 2 characters — mod-97 check digits
foundboolean | nullWhether the entity was found in GLEIF. null if GLEIF API was unavailable.
entity.legalNamestringLegal name of the entity
entity.countrystringISO 3166-1 alpha-2 country code of the registered address
entity.entityStatusstringACTIVE or INACTIVE
entity.registrationStatusstringGLEIF registration status: ISSUED, LAPSED, MERGED, RETIRED, ANNULLED, and others
entity.categorystring | nullGENERAL, FUND, BRANCH, SUB-FUND
entity.initialRegistrationDatestringDate the LEI was first registered (YYYY-MM-DD)
entity.lastUpdatestringDate of the last data update (YYYY-MM-DD)
entity.nextRenewalstringDate when the LEI registration must be renewed (YYYY-MM-DD)
entity.managingLoustringLEI of the LOU that issued and manages this LEI
lou.namestringName of the Local Operating Unit
lou.countrystring | nullCountry of the LOU
dataSourcestring | nullgleif-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/lous

Returns the list of all accredited GLEIF Local Operating Units (LOUs) — organisations authorised to issue and manage LEI codes.

Response Fields

FieldTypeDescription
lousarrayList of all LOUs
lous[].louCodestring4-character LOU prefix used in LEI codes
lous[].leistringFull 20-character LEI of the LOU itself
lous[].namestringOfficial name of the LOU
lous[].countrystring | nullISO 3166-1 alpha-2 country code
lous[].statusstring | nullLOU accreditation status
totalintegerTotal 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
}