Enterprise REST API

Institutional-grade
LEI intelligence at scale

Programmatic access to 3 M+ GLEIF legal entities — LEI lookup, fuzzy name resolution, corporate group traversal, 10-jurisdiction sanctions screening, and compliance gap reports, all via a single authenticated REST API with sub-5 ms cached responses.

3M+
Legal Entities
<5ms
Cached Response
Daily
GLEIF Refresh
10
Sanctions Lists
99.9%
Uptime SLA

Everything your compliance stack needs

Six capabilities, one API key, zero infrastructure to manage.

🔍

LEI Lookup

Resolve any 20-character LEI to its full GLEIF record: legal name, registered address, entity status, jurisdiction, and registration details — in a single GET request.

MiFID II Art.26EMIR Art.9SFTR
🧩

Fuzzy Name Search

Resolve dirty counterparty names — abbreviations, transliterations, and misspellings — to canonical LEIs using trigram-similarity matching across the full GLEIF corpus.

🌳

Ownership Structure

Traverse the full corporate ownership tree for any LEI: direct and ultimate parents, all subsidiaries, and the complete hierarchy. OFAC 50% and EU AMLR 25% thresholds supported.

OFAC 50% RuleEU AMLR Art.52 (25%)FATF Rec.10Basel IV CCR
🛡️

Sanctions Screening

Screen any LEI against 10 sanctions lists: OFAC, EU, UN, UK, Australia, Switzerland, Canada, and more simultaneously. Includes OFAC 50% rule and EU AMLR 25% threshold.

OFAC EnforcementUK Sanctions Act 2018EU Reg.269/2014EU AMLR 2027
🌐

Jurisdiction & Beneficial Ownership Risk

Country-level OFAC sanctions program flagging (comprehensive embargoes and sectoral determinations), alongside FATF and EU high-risk jurisdiction lists. For UK-registered entities, an independent cross-check against Companies House's statutory PSC register validates GLEIF-reported ownership against the UK's own official beneficial ownership record.

OFAC Country ProgramsFATF Rec.10UK PSC RegisterMLR 2017
📋

Gap Reports & LEI Status

Submit a portfolio and receive a PDF gap report identifying missing LEIs, lapsed registrations, and sanctions hits. Lapsed LEI monitoring alerts you when a counterparty's LEI expires.

MiFID II "no LEI no trade"EMIR reportingDORA Art.28
🔔

Portfolio Monitoring & Webhooks

Subscribe to GLEIF change events and sanctions status changes for your portfolio. HMAC-signed payloads. Real-time alerts when a counterparty is designated or their LEI lapses.

FATF Continuous KYCFCA SYSC 6.3DORA Art.30
🗂️

Immutable Audit Trail

Every screen is timestamped and logged. Generate a regulator-ready PDF audit report for any screening result — one click. Satisfies examiner expectations across FCA, SEC, and ECB supervisory reviews.

FCA SYSC 6.3OFAC FrameworkEU AMLR Art.21

Core endpoints

RESTful, JSON, versioned. Full specification at leisearch.pro/docs.

GET /lei/{lei} Single LEI record lookup
GET /search?q={name} Fuzzy entity name search
GET /group/{lei} Full corporate group tree
POST /batch Async batch resolution (up to 10K)
GET /screen/lei/{lei} Single-LEI sanctions screen
POST /screen/portfolio Batch sanctions screen (up to 500)
POST /gap-report PDF compliance gap report
POST /webhooks/subscriptions Subscribe to LEI change events
GET /portfolio/lei-status Check GLEIF registration status of all portfolio LEIs (lapsed detection) Pro+
GET /screen/lei/{lei}?ownership_threshold=25 Sanctions screen at EU AMLR 25% beneficial ownership threshold
GET /lei/{lei}/risk-context Ownership transparency, jurisdiction risk (FATF/EU/OFAC country programs), and UK PSC beneficial-ownership cross-check for a single entity Professional+
POST /auth/register Self-serve free API key registration
POST /cdd/onboard Full CDD workflow — LEI validation, sanctions screen, ownership trace, FATF jurisdiction risk (FATF Rec.10 / EU AMLR Art.20 / MiFID II Art.26)
POST /dora/ict-register DORA Article 28 ICT third-party register — add, list, update, export (PDF / JSON) contracted ICT providers Professional+
GET /casp List authorised MiCA crypto-asset service providers (ESMA register, updated weekly)
GET /casp/check/{lei} Quick boolean check — is this LEI an authorised MiCA CASP?
GET /casp/{lei} Full MiCA authorisation record — services, passported countries, authorising NCA
POST /monitoring/{lei} Opt an entity into ongoing AML/PEP/adverse-media and KYB/UBO re-screening, with an optional custom re-screen frequency per capability (FATF Continuous KYC) Pro+
GET /monitoring List every entity currently under compliance monitoring for your account Pro+
DELETE /monitoring/{lei} Stop ongoing compliance monitoring for an entity Pro+
POST /monitoring/{lei}/rescreen Recheck a monitored entity right now, bypassing the normal re-screen freshness window Pro+
GET /monitoring/{lei}/history Full screening audit trail for a monitored entity Pro+
GET /monitoring/{lei}/last-screened Quick per-capability summary of when a monitored entity was last checked Pro+

Two lines to your first result

Pass your key in the X-Api-Key header on every request.

cURL
Python
JavaScript
# Look up Deutsche Bank by LEI
curl https://leisearch-api-n5auomxnkq-ew.a.run.app/lei/7LTWFZYICNSX8D621K86 \
  -H "X-Api-Key: lsi_YOUR_KEY_HERE"

# Screen a counterparty by name
curl "https://leisearch-api-n5auomxnkq-ew.a.run.app/search?q=Gazprombank&limit=5" \
  -H "X-Api-Key: lsi_YOUR_KEY_HERE"
import requests

headers = {"X-Api-Key": "lsi_YOUR_KEY_HERE"}
base    = "https://leisearch-api-n5auomxnkq-ew.a.run.app"

# Look up a single LEI
lei = requests.get(
    f"{base}/lei/7LTWFZYICNSX8D621K86",
    headers=headers
).json()
print(lei["legalName"])  # Deutsche Bank AG

# Sanctions screen a portfolio
hits = requests.post(
    f"{base}/screen/portfolio",
    headers=headers,
    json={"leis": ["7LTWFZYICNSX8D621K86", "..."]}
).json()
const KEY  = "lsi_YOUR_KEY_HERE";
const BASE = "https://leisearch-api-n5auomxnkq-ew.a.run.app";
const hdrs = { "X-Api-Key": KEY };

// Fuzzy name resolution
const res  = await fetch(`${BASE}/search?q=Gazprombank`, { headers: hdrs });
const data = await res.json();
console.log(data.results[0].legalName);

Simple, transparent pricing

No seat fees. No minimum terms. Cancel anytime.

Free
£0 / mo
Evaluation and prototyping.
  • 1 request / minute
  • Batch up to 10 entities
  • LEI lookup, search, group
  • Sanctions screening
  • Gap report PDF
  • Webhooks
  • SLA guarantee
Get Free API Key
Pro
£99 / mo
API access with portfolio monitoring.
  • 600 requests / minute
  • Batch up to 1,000 entities
  • All endpoints included
  • Portfolio dashboard — 100 monitored entities
  • Sanctions & PEP screening — 50/month
  • Gap report PDF
  • Webhooks — up to 10
  • 99.9% uptime SLA
Team
£999 / mo
Funds, banks & compliance platforms.
  • 3,000 requests / minute
  • Batch up to 5,000 entities
  • Unlimited portfolio
  • 10 user seats
  • Data connectors
  • Google Sheets, OneDrive, Salesforce
  • 99.9% uptime SLA
Enterprise
Custom
Dedicated infrastructure & custom SLAs.
  • 6,000+ requests / minute
  • Batch up to 10,000 entities
  • Unlimited seats
  • Dedicated DB replica
  • 24/7 support channel
  • Custom data feeds
  • Custom SLA agreement
Contact Sales

Frequently asked questions

How is the API key delivered after payment?
Immediately after Stripe confirms your payment, your API key is generated and displayed on screen — once only. Copy it and store it securely (a password manager, environment variable, or secrets manager). We do not store the raw key and cannot recover it.
Where does the LEI data come from?
All LEI records originate from the official GLEIF (Global Legal Entity Identifier Foundation) golden-copy dataset, updated daily. Sanctions data is sourced from OFAC, the EU, the UN Security Council, and UK OFSI — updated each day the publishing authority issues a new list.
What is the UK PSC cross-check, and how is it different from GLEIF ownership data?
GLEIF's Level 2 ownership data is self-reported by the entity itself. For UK-registered entities, LEISearch independently cross-references that self-reported data against Companies House's PSC (People with Significant Control) register — the UK's own statutory beneficial-ownership record — and returns a CONFIRMED, DISCREPANCY, GLEIF_ONLY, PSC_ONLY, or NEITHER verdict via GET /lei/{lei}/risk-context. Most DISCREPANCY results reflect the two sources reporting different levels of the same ownership chain rather than a genuine conflict, so we recommend treating it as a prompt for manual review. Available for GB-jurisdiction entities only.
Do you flag country-level OFAC sanctions programs, not just sanctioned entities?
Yes. Beyond screening individual entities against sanctions lists, GET /lei/{lei}/risk-context separately flags counterparties registered in a jurisdiction under an active OFAC country sanctions program — a comprehensive embargo (e.g. Cuba, Iran, North Korea) or a sectoral sanctions determination — alongside the existing FATF and EU high-risk jurisdiction flags.
Is my data retained or logged?
Each API call writes one pseudonymised row to our audit log: endpoint, HTTP status, response time, and a keyed hash (HMAC-SHA256) of your IP address (IPv6 addresses are first shortened to their /64 network). Raw IP addresses are never stored. We do not store the query content, entity names, or LEI codes you look up. Audit rows are kept for 12 months by default; an organisation owner can choose a longer period, up to 7 years.
Can I upgrade between plans?
Yes. You can subscribe to any paid tier directly from this page. Once subscribed, log in to your dashboard and click your avatar to open the Account & Billing panel — from there you can upgrade to a higher tier or manage your subscription via the Stripe Customer Portal. Upgrades take effect immediately.
What happens if I exceed my rate limit?
The API returns HTTP 429 with a Retry-After: 60 header. Every response includes X-RateLimit-Remaining and X-RateLimit-Reset so you can back off gracefully before hitting the limit.
Is there a sandbox or test environment?
The Free tier functions as a sandbox — the same production data with reduced rate limits. We do not run a separate staging environment. GLEIF LEIs are stable identifiers, so Free-tier testing accurately reflects Pro-tier behaviour.