GLEIF LEI Monitor: Lapsed LEI & Entity Change Watch avatar

GLEIF LEI Monitor: Lapsed LEI & Entity Change Watch

Pricing

from $20.00 / 1,000 lei change event delivereds

Go to Apify Store
GLEIF LEI Monitor: Lapsed LEI & Entity Change Watch

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

Daniel Witney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

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

  1. Export your counterparties' 20-character LEIs.
  2. 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).
  3. Save as a Task and schedule daily or weekly (Golden Copy refreshes a few times a day; LEI changes are sparse).
  4. 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 addressPaid LEI issuer portal extracts
Ultimate + direct parent LEIs; first page of direct childrenFull deep ownership graphs beyond first children page
Official as_of from Golden Copy publish timestampSub-hour streaming (Golden Copy refreshes a few times/day)
Watchlist of your LEIs onlyDump 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_uid dedupe.

PRODUCTION USE (required for real monitoring)

Store default ≠ product. Schema defaults use sourceMode=fixture so Apify Store daily auto-tests leave a non-empty health dataset without calling GLEIF. That fixture path only writes a non-billable RUN_STATUS / FIXTURE_HEALTH row. It is not LEI portfolio monitoring.

For production monitoring you must:

  1. Set sourceMode = live
  2. Provide your leis watchlist
  3. Schedule runs with fair-use pacing (requestPaceMs ≥ 1100 recommended)
  4. Optionally set includeChildren=false to save requests if you only need status/name/parent

Official references:

Apify Store daily auto-test / default input

FieldDefault
leisBloomberg sample LEIs
signalGroupsregistration, entity, identity, relationships
sourceModefixture
emitFixtureDemoEventsfalse
maxRunSeconds55
requestPaceMs1100

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)

FieldNotes
leisWatchlist (required, 20-char LEI)
signalGroupsregistration, entity, identity, relationships
sourceModefixture (default) or live
emitFixtureDemoEventsDefault false
includeChildrenDefault true (extra HTTP when relationships on)
maxChildrenPageSizeDefault 50 (max 200; first page only)
maxRunSeconds / maxEventsBudgets
resumeFromCheckpointDefault true
requestPaceMsDefault 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-watch
npm install
npm test
npm run build
apify 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.