# GLEIF LEI Lookup — 18 Fields, Name or LEI, No API Key (`themineworks/gleif-lei-lookup`) Actor

Look up Legal Entity Identifiers (LEI) and registered company data from GLEIF by name or LEI: legal name, form, jurisdiction, addresses, status, renewal dates, BIC. For KYB, AML, entity resolution. No API key. Works in Claude, ChatGPT and any MCP agent.

- **URL**: https://apify.com/themineworks/gleif-lei-lookup.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Business, Lead generation, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 lei records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🏛️ GLEIF LEI Lookup: Legal Entity & Company Data (KYB)

### Overview

GLEIF LEI Lookup resolves Legal Entity Identifiers and registered company legal data from the official GLEIF database. Look up by company name or by LEI code and get back legal name, prior names, legal form, jurisdiction, registered and headquarters addresses, operating status, registration lifecycle (initial registration, last update, next renewal), managing LOU, and BIC codes where available. Built for KYB, AML and compliance, customer onboarding, and entity resolution across a messy vendor or counterparty master.

The LEI is the global standard for identifying legal entities in financial transactions and is mandatory for reporting under MiFID II, EMIR, Dodd-Frank, and more. GLEIF publishes the full reference database openly, but its API returns JSON:API with deeply nested entity and registration objects. This actor flattens it into one clean record per entity.

Reliability posture: blocked, empty, or failed lookups are never charged. `no_match` and `not_found` results are pushed to the dataset for visibility but billed nothing, only a delivered entity record is charged.

✅ No API key | ✅ Official GLEIF reference data | ✅ BIC to LEI mapping | ✅ Pay only per record delivered | ✅ MCP-ready for AI agents

### Features

Search by legal name or by exact 20-character LEI code, or mix both in one run.
Full legal identity: legal name, prior names, legal form code, entity category, and operating status.
Both the registered legal address and the headquarters address on every record.
Registration lifecycle: initial registration date, last update, next renewal date (spot lapsed LEIs immediately).
BIC codes and managing LOU (Local Operating Unit) attached where GLEIF has mapped them.

### How it works

The actor calls the GLEIF API (`api.gleif.org/api/v1/lei-records`) for each legal name (fuzzy-matched, top N per name) and each direct LEI you supply. The nested JSON:API response is flattened into one record per entity with all identity, address, registration, and BIC fields in flat form.

Names with no match return a `{"status": "no_match"}` record; unknown LEIs return `{"status": "not_found"}`. Neither is charged. A final summary record reports counts by outcome.

### 🧾 Input configuration

```json
{
  "legalNames": ["Siemens AG", "Tesla, Inc."],
  "leis": ["HWUPKR0MPOU8FGXBT394"],
  "matchesPerName": 3
}
```

### 📤 Output format

```json
{
  "lei": "HWUPKR0MPOU8FGXBT394",
  "legal_name": "Apple Inc.",
  "other_names": ["Apple Computer, Inc."],
  "legal_form_code": "H1UM",
  "category": "GENERAL",
  "status": "ACTIVE",
  "jurisdiction": "US-CA",
  "legal_address": "C/O C T Corporation System, 330 N. Brand Blvd, Suite 700, Glendale, US-CA, US, 91203",
  "legal_country": "US",
  "hq_address": "One Apple Park Way, Cupertino, US-CA, US, 95014",
  "hq_country": "US",
  "registration_status": "ISSUED",
  "initial_registration_date": "2012-06-06",
  "last_update_date": "2026-03-03",
  "next_renewal_date": "2027-03-08",
  "managing_lou": "5493001KJTIIGC8Y1R12",
  "bic": ["APLEUS66XXX"],
  "scraped_at": "2026-06-11T13:00:00.000Z"
}
```

Every entity record contains these fields:

| Field | Description |
| --- | --- |
| 🆔 `lei` | 20-character Legal Entity Identifier |
| 🏢 `legal_name` | Registered legal name |
| 🗂️ `other_names[]` | Prior or alternative legal names |
| 🏷️ `legal_form_code` | ELF code for the legal form |
| 📋 `category` | Entity category (GENERAL, BRANCH, FUND) |
| 🚦 `status` | Operating status (ACTIVE, INACTIVE) |
| 🗺️ `jurisdiction` | ISO country and subdivision code |
| 🏠 `legal_address` | Full registered legal address |
| 🌐 `legal_country` | Country of legal address |
| 🏢 `hq_address` | Full headquarters address |
| 🌍 `hq_country` | Country of headquarters |
| 📄 `registration_status` | Registration status (ISSUED, LAPSED, RETIRED) |
| 📅 `initial_registration_date` | Date the LEI was first issued |
| 🔄 `last_update_date` | Date of last update |
| ⏳ `next_renewal_date` | Next renewal due date |
| 🏛️ `managing_lou` | Managing Local Operating Unit LEI |
| 💳 `bic[]` | Bank Identifier Codes mapped to the entity |
| 🕒 `scraped_at` | ISO timestamp of capture |

### 💼 Common use cases

**KYB and onboarding**
Resolve a counterparty name to its authoritative LEI and capture its registered legal identity and address.
Verify jurisdiction and operating status before opening an account.

**AML and compliance**
Confirm a legal entity is `ACTIVE` and has a current (not lapsed) LEI registration.
Cross-check the BIC in your payment file against the mapped LEI record.

**Entity resolution**
Deduplicate and canonicalize company records across a messy customer or vendor master using LEI as the key.
Cluster on `managing_lou` and `jurisdiction` for hierarchy discovery.

**Regulatory reporting and renewal monitoring**
Enrich transaction records with valid LEIs for MiFID II, EMIR, and Dodd-Frank reporting.
Flag counterparties whose LEI is approaching or past its `next_renewal_date`.

### 🚀 Getting started

1. Open the actor and paste Company names into the Company names field (one per line).
2. Optionally paste exact 20-character LEI codes into the LEI codes field.
3. Set Matches per name (default 5) to control how many candidate records return per name search.
4. Click Save & Start.
5. Download as JSON, CSV, or Excel, or pull via API or MCP.

### FAQ

**Do I need an API key?**
No. GLEIF's reference database is fully open.

**What is an LEI?**
A 20-character ISO 17442 code that uniquely identifies a legal entity in financial markets. It is the global standard for counterparty identification.

**Can I search by name?**
Yes. Pass `legalNames` and the actor returns the best-matching LEI records for each. Adjust `matchesPerName` to control breadth.

**How do I detect a lapsed LEI?**
Check `registration_status` and `next_renewal_date`. A `LAPSED` status or a past renewal date means the entity has not kept its LEI current.

**How am I charged?**
Pay per LEI record at $0.005 per record actually delivered. No-match and not-found results are never charged. There is no free tier.

### Use in Claude, ChatGPT & any MCP agent

```
https://mcp.apify.com/?tools=themineworks/gleif-lei-lookup
```

Or call it programmatically with the Apify client:

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('themineworks/gleif-lei-lookup').call({
  legalNames: ['Apple Inc.', 'Siemens AG'],
  matchesPerName: 3,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### 🛠️ Complete your KYB and compliance pipeline

LEI is one anchor. Add filings, VAT, and reputation signals:

- **[SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings)**: full filing history for any US issuer.
- **[EU VAT VIES Checker](https://apify.com/themineworks/eu-vat-vies)**: validate EU VAT numbers against the official VIES service.
- **[Trustpilot Business Search](https://apify.com/themineworks/trustpilot-business-search)**: consumer reputation signal for the entity's brand.

Typical flow: resolve counterparty LEIs with this actor, pull US filings via SEC EDGAR, and validate EU tax IDs on the same customer master.

Found a bug or have a feature request? Open an issue on the actor's Apify Console page or reach out through the Apify profile.

# Actor input Schema

## `legalNames` (type: `array`):

Company legal names to look up (e.g. Apple Inc., Siemens AG). Each returns the best-matching LEI records.

## `leis` (type: `array`):

Exact 20-character LEI codes to look up directly (e.g. HWUPKR0MPOU8FGXBT394).

## `matchesPerName` (type: `integer`):

How many matching LEI records to return per company name searched.

## Actor input object example

```json
{
  "legalNames": [
    "Apple Inc."
  ],
  "matchesPerName": 3
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "legalNames": [
        "Apple Inc."
    ],
    "matchesPerName": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/gleif-lei-lookup").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "legalNames": ["Apple Inc."],
    "matchesPerName": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/gleif-lei-lookup").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "legalNames": [
    "Apple Inc."
  ],
  "matchesPerName": 3
}' |
apify call themineworks/gleif-lei-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=themineworks/gleif-lei-lookup",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/bTJeCVIW0HB3bhyVa/builds/EZsXgp78q3KaRnDDE/openapi.json
