GET https://api.gleif.org/api/v1/lei-records/{LEI} — no authentication required; accept application/vnd.api+json
Parse response.data.attributes.entity.legalName.name, entity.jurisdiction, and entity.status (values include 'ACTIVE', 'INACTIVE', 'ANNULLED')
Follow response.data.relationships.directParent.links.related URL (format: https://api.gleif.org/api/v1/lei-records/{LEI}/direct-parent-relationship) to retrieve the direct parent relationship record
From the relationship record, read relationships.startNode.data.id (child LEI) and relationships.endNode.data.id (parent LEI); fetch the parent's lei-record for its legal name
Traverse further up the hierarchy using the ultimate-parent-relationship endpoint: GET https://api.gleif.org/api/v1/lei-records/{LEI}/ultimate-parent-relationship
Use GET https://api.gleif.org/api/v1/lei-records?filter[entity.legalName]={name}&filter[entity.status]=ACTIVE to search by name when LEI is unknown
Known gotchas
GLEIF API responses use JSON:API format; data lives under data.attributes, not at top level — using a standard JSON parser without JSON:API awareness causes field-not-found errors
Relationship records may be absent (GLEIF returns 404 on the relationship endpoint) if the entity has not reported ownership data; this is common for smaller or non-financial entities
LEI status 'LAPSED' means the annual validation has expired and the data may be stale; check data.attributes.registration.lastUpdateDate before relying on entity details
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp