# LEI Lookup — Legal Entity Identifier, Parent Company & Address (`intelscrape/lei-lookup`) Actor

LEI Lookup: search the global GLEIF database of 2.9M+ Legal Entity Identifiers by company name or LEI and get legal name, status, legal and HQ address, jurisdiction, registry number, BIC, renewal dates, plus direct and ultimate parent companies. Bulk KYB. Official source. No API key.

- **URL**: https://apify.com/intelscrape/lei-lookup.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Business, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## LEI Lookup — Legal Entity Identifier, Parent Company & Address

![LEI Lookup — Legal Entity Identifier, Parent Company & Address](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/lei-lookup-banner.png)

🇨🇳 **LEI 查询**：在 GLEIF 全球法人机构识别编码数据库（290 万+ 实体）中按公司名称或 LEI 搜索，返回法定名称、状态、注册地址和总部地址、司法辖区、注册号、BIC、续期日期，以及直接母公司和最终母公司。批量 KYB，官方来源，无需 API 密钥。

🇸🇬 **Carian LEI**: cari pangkalan data GLEIF global (2.9 juta+ entiti) mengikut nama syarikat atau LEI dan dapatkan nama sah, status, alamat, bidang kuasa, nombor pendaftaran, BIC dan syarikat induk langsung serta muktamad. Sumber rasmi.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%242%20per%201K%20records-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20record-green) ![source](https://img.shields.io/badge/source-GLEIF%20official-brightgreen) ![coverage](https://img.shields.io/badge/coverage-global-orange)

**Bulk Legal Entity Identifier lookup with official addresses, registry numbers and parent-company hierarchy from GLEIF.**

> **Honest coverage & billing:** Full-text name search is broad; review matches or use LEIs. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is LEI Lookup?

The Legal Entity Identifier is the global ID for companies that trade financial instruments, borrow, or report to regulators. The GLEIF database behind it is free, official and global, and it includes something few free sources have: who owns whom. **LEI Lookup** searches it in bulk by name or LEI and returns clean records with addresses, registry numbers and the direct and ultimate parent company, ready for KYB, onboarding and corporate-tree research.

### What does it do?

- **Search** by legal name (full-text, any language) or by exact 20-character LEI
- **Filters**: legal-address country and active entities only; exact name matches ranked first
- **Entity data**: legal name, other and transliterated names, entity status, legal form, category, jurisdiction
- **Identifiers**: LEI, local registry number (registeredAs) and registry ID, BIC codes, MIC
- **Addresses**: legal and headquarters address
- **LEI registration**: issued or lapsed, initial registration, last update, next renewal, corroboration level
- **Parent companies (on by default)**: direct and ultimate parent with LEI, name and country, reporting exceptions (e.g. natural persons) and number of direct subsidiaries

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **KYB and onboarding** for banks, fintechs and brokers
- **Counterparty data** for trading and regulatory reporting (EMIR, MiFID II)
- **Corporate tree research**: who is the ultimate parent
- **Data enrichment**: add official registry numbers and addresses to CRM accounts
- **Vendor due diligence** across countries
- **Pair with Sanctions Screening** for a full KYB check

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~lei-lookup/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["Apple Inc.", "HSBC Holdings", "5493000IBP32UQZ0KL24"], "maxResultsPerQuery": 10}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/lei-lookup").call(run_input={"queries": ["Apple Inc.", "HSBC Holdings", "5493000IBP32UQZ0KL24"], "maxResultsPerQuery": 10})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/lei-lookup with the default input and summarise the results."*

### Input examples

**Names and an LEI (default)**

```json
{
  "queries": ["Apple Inc.", "HSBC Holdings", "5493000IBP32UQZ0KL24"],
  "maxResultsPerQuery": 10
}
```

**German entities named Siemens**

```json
{
  "queries": ["Siemens"],
  "country": "DE",
  "maxResultsPerQuery": 100
}
```

### Output fields

| Field | Description |
|---|---|
| `lei / legalName / otherNames / query` | Identity |
| `entityStatus / registrationStatus / category / legalFormId` | Status and form |
| `jurisdiction / registeredAs / registryId` | Local registry data |
| `legalAddress / headquartersAddress / country` | Addresses |
| `createdOn / initialRegistration / lastUpdate / nextRenewal / corroborationLevel` | Dates and quality |
| `bic / mic / successor` | Other identifiers |
| `directParent / ultimateParent / *Exception / directChildrenCount` | Ownership (when enabled) |
| `gleifUrl` | Official record page |

#### Sample output

```json
{
  "lei": "HWUPKR0MPOU8FGXBT394",
  "legalName": "Apple Inc.",
  "entityStatus": "ACTIVE",
  "registrationStatus": "ISSUED",
  "jurisdiction": "US-CA",
  "registeredAs": "806592",
  "country": "US",
  "directParent": null,
  "directParentException": "NATURAL_PERSONS",
  "directChildrenCount": 8
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **LEI record** | per entity record | $0.002 |
| **Parent companies** | per record with ownership added (on by default; turn off to skip) | $0.002 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 21 records with parents | $0.089 |
| 5,000 LEIs with parents | $20.005 |
| 5,000 LEIs, records only | $10.005 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### Tips for best results

- Searching by LEI is exact and cheapest: one record per query.
- Set maxResultsPerQuery to 1 to take only the best name match.
- Use country to disambiguate common names.
- A reporting exception of NATURAL_PERSONS means the company is owned by individuals, not another entity.

### FAQ

#### Does every company have an LEI?

No. LEIs are held by entities that trade financial instruments or must report to regulators; about 2.9 million worldwide.

#### How fresh is the data?

GLEIF publishes a new golden copy several times a day; the API reflects it.

#### What does LAPSED mean?

The LEI was not renewed. The entity can still exist.

#### Are shareholders included?

Only accounting-consolidation parents reported to GLEIF, not individual shareholders.

#### Do I need a key?

No.

#### Are not-found names charged?

No.

### Honest limits

- Full-text name search is broad; review matches or use LEIs.
- Ownership data covers consolidation parents only.
- GLEIF rate limits apply; the actor paces requests.
- Entities without an LEI are not in this database.

### Related IntelScrape bots

- [France Company Search](https://apify.com/intelscrape/france-company-search): SIREN, directors & revenue
- [Norway Company Search](https://apify.com/intelscrape/norway-company-search): Brønnøysund register with CEO & board
- [Sanctions Screening](https://apify.com/intelscrape/sanctions-screening): OFAC SDN name matching
- [WHOIS Domain Lookup](https://apify.com/intelscrape/whois-domain-lookup): registrar, dates & owner data
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

## `queries` (type: `array`):

Legal names (any language) or 20-character LEI codes, one per line.

## `country` (type: `string`):

Optional: only entities with a legal address in this country, e.g. US, GB, DE.

## `activeOnly` (type: `boolean`):

Skip inactive (merged, dissolved) entities in name searches.

## `maxResultsPerQuery` (type: `integer`):

Name searches can match many entities; exact name matches are returned first.

## `includeParents` (type: `boolean`):

Add the direct and ultimate parent (LEI, name, country), reporting exceptions and number of direct subsidiaries. Charged per record.

## `proxyConfiguration` (type: `object`):

Not needed normally. The actor switches to Apify Proxy automatically if the source starts rate-limiting.

## Actor input object example

```json
{
  "queries": [
    "Apple Inc.",
    "HSBC Holdings",
    "5493000IBP32UQZ0KL24"
  ],
  "country": "",
  "activeOnly": true,
  "maxResultsPerQuery": 10,
  "includeParents": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "queries": [
        "Apple Inc.",
        "HSBC Holdings",
        "5493000IBP32UQZ0KL24"
    ],
    "includeParents": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/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 = {
    "queries": [
        "Apple Inc.",
        "HSBC Holdings",
        "5493000IBP32UQZ0KL24",
    ],
    "includeParents": True,
}

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

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "Apple Inc.",
    "HSBC Holdings",
    "5493000IBP32UQZ0KL24"
  ],
  "includeParents": true
}' |
apify call intelscrape/lei-lookup --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/lei-lookup"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/MrqaipQLkQNT8vUcb/builds/PTD68FFybWVEJjj3s/openapi.json
