# GLEIF LEI Scraper — Legal Entity Identifiers (`bovi/gleif-lei-scraper`) Actor

Scrape the GLEIF registry of Legal Entity Identifiers — every LEI mapped to its legal entity name, address, legal form and registration status. Filter by name, country, status or exact LEI. Official keyless API. KYC/counterparty enrichment. Pay per result.

- **URL**: https://apify.com/bovi/gleif-lei-scraper.md
- **Developed by:** [Vitalii Bondarev](https://apify.com/bovi) (community)
- **Categories:** Business, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.60 / 1,000 entities

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 Scraper — Legal Entity Identifiers

Look up Legal Entity Identifier (LEI) records straight from the official GLEIF registry. Every LEI comes back mapped to its legal entity's name, address, legal form and registration status — filterable by legal name, country, entity status or an exact LEI code. No login, no API key, nothing for you to supply.

#### What it does

This actor queries the official, keyless GLEIF JSON:API (`api.gleif.org/api/v1/lei-records` — the Global Legal Entity Identifier Foundation's own registry) and returns one flat, structured record per matching entity. Because the source is the authoritative registry itself (not a scraped third-party mirror), the data is as accurate and current as GLEIF's own records. Typical use: KYC (know-your-customer) checks, counterparty due diligence, supplier/vendor verification, or bulk-enriching a company list with its LEI and registration status.

#### Input

- **Legal name** — entity legal name to search for (e.g. `Apple`, `Deutsche Bank`).
- **Country (ISO-2)** — filter by legal-address country, ISO-3166 alpha-2 (e.g. `US`, `DE`).
- **Entity status** — filter by `ACTIVE` or `INACTIVE`; empty returns all statuses.
- **Exact LEI** — look up a single, specific 20-character LEI code directly.
- **Max results** — cap on how many entities to return (default 100, up to 50,000).
- **Proxy configuration** — Apify Proxy, RESIDENTIAL group prefilled; the run is billed to your own Apify account, nothing extra to configure.

All filters are optional and combinable — e.g. legal name + country narrows a common name down to entities in one jurisdiction.

#### Fields returned

Each dataset record includes: `lei` (the 20-character identifier), `legal_name`, `entity_status` (ACTIVE/INACTIVE), `legal_form_id` (ELF legal-form code), `jurisdiction`, `category`, `registered_as` (local business-registry identifier), legal address (`legal_city`, `legal_region`, `legal_country`, `legal_postal_code`), headquarters address (`hq_city`, `hq_country`), `registration_status` (ISSUED/LAPSED/etc.), `initial_registration_date`, `last_update_date`, `next_renewal_date`, `managing_lou` (the Local Operating Unit that issued the LEI), `bic` (associated SWIFT/BIC code(s), when GLEIF has them on file), and `record_url` (a direct link to the record on search.gleif.org).

#### Pricing

Pay-per-result — billed one `entity` event per returned record. See the Store pricing tab on this actor's page for the current per-result rate.

#### Notes

GLEIF is the international body behind the LEI standard (ISO 17442), used worldwide for financial-counterparty identification and regulatory reporting. Because this actor reads GLEIF's own free, official API rather than screen-scraping a paywalled or rate-limited source, there's no anti-bot friction and no third-party licensing question — it's a direct, zero-COGS pull from the authoritative registry, well suited to scheduled KYC/compliance enrichment runs.

# Actor input Schema

## `legalName` (type: `string`):

Entity legal name to search for (e.g. "Apple", "Deutsche Bank").

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

Filter by legal-address country, ISO-3166 alpha-2 (e.g. "US", "DE").

## `status` (type: `string`):

Filter by entity status: ACTIVE or INACTIVE. Empty = all.

## `lei` (type: `string`):

Look up a single exact 20-character LEI code.

## `maxItems` (type: `integer`):

Maximum number of entities to return.

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

Apify proxy used to reach the API. Residential is the reliable default; the run is billed to your account.

## Actor input object example

```json
{
  "legalName": "Apple",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Dataset of LEI records (lei, legal\_name, entity\_status, legal\_country, registration\_status, last\_update\_date, record\_url).

# 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 = {
    "legalName": "Apple",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("bovi/gleif-lei-scraper").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 = {
    "legalName": "Apple",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("bovi/gleif-lei-scraper").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 '{
  "legalName": "Apple",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call bovi/gleif-lei-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/ERSs84tz2F3suubuP/builds/MsDDsfmbm5rBRl0Vd/openapi.json
