GLEIF LEI Monitor: Lapsed LEI & Entity Change Watch
Pricing
from $20.00 / 1,000 lei change event delivereds
GLEIF LEI Monitor: Lapsed LEI & Entity Change Watch
LEI monitoring for regulatory-reporting, treasury and onboarding teams: watch counterparty LEIs and get events when an LEI lapses, is retired or annulled, the entity goes inactive, the legal name or address changes, or parent relationships change. Free official GLEIF API, no key.
Pricing
from $20.00 / 1,000 lei change event delivereds
Rating
0.0
(0)
Developer
Daniel Witney
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
LEI monitoring for regulatory-reporting, treasury and counterparty-onboarding teams. Watch your counterparties' LEIs and get a typed event when an LEI lapses, is retired or annulled, the entity becomes inactive, the legal name or address changes, or its Level-2 parent / child relationships change — from the free official GLEIF API / Golden Copy, no key. Useful for keeping counterparty LEIs current for transaction reporting (e.g. EMIR / MiFIR) and KYC refresh. Not a bulk LEI dump, not an OFAC mashup.
Quick start (no key): replace the example LEIs with your counterparties' → set Source mode = live → save as a Task and schedule it daily or weekly. The first live run records a baseline (no charge); later runs deliver an event only when a watched LEI changes. Clicking Start with the defaults runs a free health check only.
Who this is for
- Regulatory-reporting teams (EMIR / MiFIR / SFTR) that need counterparty LEIs to stay valid.
- Treasury and trading operations at lenders, funds and corporates holding counterparty LEI books.
- KYC / onboarding teams that want to know when a counterparty's legal name, address or parent changes.
Typical workflow
- Export your counterparties' 20-character LEIs.
- Run once with
sourceMode: "live"(no key) — this records a baseline of each LEI's registration status, entity status, name, address and parents (no charge, no events). - Save as a Task and schedule daily or weekly (Golden Copy refreshes a few times a day; LEI changes are sparse).
- Each later run compares against the stored baseline and delivers
LEI_LAPSED,LEI_RETIRED,ENTITY_INACTIVE,LEGAL_NAME_CHANGED,PARENT_CHANGED, … only for LEIs on your list. Route them to your reporting or KYC queue via Apify integrations.
First run vs later runs
Run 1 (live) is a baseline: it stores each LEI's current state and emits no events. Run 2 onwards compares against that baseline, so keep the same Task (its key-value store holds the checkpoint).
Run it live now (no API key)
{"leis": ["5493001KJTIIGC8Y1R12","549300RMUDWPHCUQNE66"],"sourceMode": "live","signalGroups": ["registration","entity","identity","relationships"],"requestPaceMs": 1100,"maxRunSeconds": 300}
Example output (SAMPLE)
SAMPLE — illustrative values in the real output shape; LEI
00000000000000000000/EXAMPLE CAPITAL S.A.are placeholders, not a real LEI record.
{"lei": "00000000000000000000","legal_name": "EXAMPLE CAPITAL S.A.","event_type": "LEI_LAPSED","event_subtype": "ISSUED->LAPSED","changed_fields": ["registration.status"],"previous_value": "ISSUED","new_value": "LAPSED","as_of": "2026-09-17T08:00:00Z","summary": "LEI 00000000000000000000 registration status ISSUED→LAPSED on GLEIF Golden Copy.","source_url": "https://api.gleif.org/api/v1/lei-records/00000000000000000000","event_uid": "<md5>","registration_status": "LAPSED","entity_status": "ACTIVE","billable": true}
What you get per $0.02 event: one deduplicated status, identity or relationship change for one LEI on your watchlist (one dataset row like the sample above). Baselines, quiet runs, duplicates and invalid LEIs are never charged.
Honest coverage (read before buying)
| Included (free GLEIF API / Golden Copy) | Not included |
|---|---|
| Registration status, entity status, legal name, legal + HQ address | Paid LEI issuer portal extracts |
| Ultimate + direct parent LEIs; first page of direct children | Full deep ownership graphs beyond first children page |
Official as_of from Golden Copy publish timestamp | Sub-hour streaming (Golden Copy refreshes a few times/day) |
| Watchlist of your LEIs only | Dump of all ~3.4M LEIs |
Rate limits (official): ~60 requests / minute / user. Default requestPaceMs=1100. Relationship mode uses up to ~4 HTTP calls per LEI (record + ultimate-parent + direct-parent + optional children). Large books need longer maxRunSeconds or chunked schedules.
Cadence: LEI changes are sparser than daily gazettes — schedule daily or weekly, not sub-hour streaming.
Value proposition
- LEI watchlist × Golden Copy / API snapshot diff →
LEI_LAPSED,LEI_ISSUED,LEI_RETIRED,LEI_ANNULLED,ENTITY_INACTIVE,ENTITY_REACTIVATED,LEGAL_NAME_CHANGED,ADDRESS_CHANGED,PARENT_CHANGED,CHILD_ADDED. - Official free public HTTP only. No paid LEI issuer API. Not OFAC screening.
- Pay only for unique delivered change events. First observation stores a baseline (no charge). Quiet days ≈ $0.
- Durable KVS checkpoint +
event_uiddedupe.
PRODUCTION USE (required for real monitoring)
Store default ≠ product. Schema defaults use
sourceMode=fixtureso Apify Store daily auto-tests leave a non-empty health dataset without calling GLEIF. That fixture path only writes a non-billableRUN_STATUS/FIXTURE_HEALTHrow. It is not LEI portfolio monitoring.
For production monitoring you must:
- Set
sourceMode=live - Provide your
leiswatchlist - Schedule runs with fair-use pacing (
requestPaceMs≥ 1100 recommended) - Optionally set
includeChildren=falseto save requests if you only need status/name/parent
Official references:
- GLEIF API
- GLEIF Golden Copy
- Endpoint:
https://api.gleif.org/api/v1/lei-records/{LEI}
Apify Store daily auto-test / default input
| Field | Default |
|---|---|
leis | Bloomberg sample LEIs |
signalGroups | registration, entity, identity, relationships |
sourceMode | fixture |
emitFixtureDemoEvents | false |
maxRunSeconds | 55 |
requestPaceMs | 1100 |
On that path the Actor SUCCEEDS quickly, pushes exactly one RUN_STATUS / FIXTURE_HEALTH row (billable: false), and does not charge lei-change-event-delivered.
Input (summary)
| Field | Notes |
|---|---|
leis | Watchlist (required, 20-char LEI) |
signalGroups | registration, entity, identity, relationships |
sourceMode | fixture (default) or live |
emitFixtureDemoEvents | Default false |
includeChildren | Default true (extra HTTP when relationships on) |
maxChildrenPageSize | Default 50 (max 200; first page only) |
maxRunSeconds / maxEvents | Budgets |
resumeFromCheckpoint | Default true |
requestPaceMs | Default 1100 (~60/min) |
Production example
{"leis": ["5493001KJTIIGC8Y1R12", "549300RMUDWPHCUQNE66"],"signalGroups": ["registration", "entity", "identity", "relationships"],"sourceMode": "live","includeChildren": true,"maxRunSeconds": 600,"requestPaceMs": 1100,"resumeFromCheckpoint": true}
Output
Change events (billable under PPE)
Typed rows include: lei, legal_name, event_type, event_subtype, changed_fields, previous_value, new_value, as_of, evidence, summary, source_url, event_uid, registration_status, entity_status, billable: true.
RUN_STATUS (never billed)
Every successful run pushes one health row (FIXTURE_HEALTH | MONITOR_IDLE | CATCHUP_COMPLETE | HEALTH_OK).
Pricing
Pay-per-event: lei-change-event-delivered at $0.02 per delivered unique change event ($20 / 1,000). Single tier (see docs/monetization.md and ADR 0010). Health / baseline / duplicate / fixture rows are never charged.
Local development
cd actors/gleif-lei-portfolio-watchnpm installnpm testnpm run buildapify run -p
Attribution
Data originates from the Global Legal Entity Identifier Foundation (GLEIF) free public API / Golden Copy. Not an official GLEIF product. Not a paid LEI issuer service. Not OFAC.