AbsoluteJS

@absolutejs/dataset-gleif

@absolutejs/dataset-gleifv0.0.3betaCommerce & Growth

GLEIF (Global LEI) DatasetSource adapter for @absolutejs/discover — resolve a company to its official legal entity (LEI, jurisdiction, country) from open CC0 registry data.

#Installation

BASH
bun add @absolutejs/dataset-gleif

#Capabilities

Overview

A @absolutejs/discover DatasetSource over GLEIF — the Global Legal Entity Identifier registry, published as open CC0 data.

What it does — and doesn't

GLEIF is legal entities, not people, so this adapter implements findCompany only. It canonicalizes a name to its official legal entity and returns the LEI (registryId) — the key to follow up for parent/subsidiary relationships in the GLEIF graph — plus the registered country.

Honest limits: GLEIF carries no domains, so matching is by name and is inherently ambiguous — a fulltext "Stripe" can surface an unrelated "Stripe B.V.". Treat a hit as "a legal entity by this name", not a certainty. It also has no industry, headcount, or contacts — pair it with @absolutejs/discover (people) and @absolutejs/enrich (emails). Defaults to ACTIVE entities only.

Offline snapshot — no rate limits, no network

For high-volume or offline use, build a local SQLite index from GLEIF's full Golden Copy dump (2.7M entities) and point the adapter at it:

Download the Golden Copy (LEI2, CSV or .zip) from

(it's CC0). Their bulk host WAF-blocks many data-center IPs, so fetch it from a browser / allowed network — this tool does not download it for you.

Show 4 more

Build the snapshot:

Use it:

findCompany resolves from the snapshot — instant, offline, zero rate limits — falling back to the live API only on a miss. Re-run the generator to refresh (GLEIF republishes 3×/day). Snapshot reads use bun:sqlite (loaded lazily; live-only use needs nothing).

Apache-2.0. Pure importer of public CC0 data — the self-collected, self-healing dataset is deliberately not part of any adapter.

Outcomes

What you can build

Build on the supported package contract

Use @absolutejs/dataset-gleif through its supported public entry points.

Hardening checklist

Production guidance

Make every external boundary explicitPin the deployed @absolutejs/dataset-gleif version, replace example or memory-backed dependencies with durable implementations, bound external calls, protect credentials, and emit enough evidence to retry or recover safely.

Follow in order

Troubleshooting path

1
Trace from the first failed boundary
Reproduce the smallest canonical @absolutejs/dataset-gleif example, confirm the supported entry point and version in the API explorer, then inspect the first boundary that did not produce its documented result.

#@absolutejs/dataset-gleif quick start

Partial snippet

# @absolutejs/dataset-gleif

TS
import { gleifSource } from "@absolutejs/dataset-gleif";
import { discoverContacts } from "@absolutejs/discover";

const gleif = gleifSource();

await gleif.findCompany({ name: "Stripe, Inc." });
// → { name: "STRIPE, INC.", country: "US", registryId: "<LEI>", source: "gleif" }

// Or hand it to discover as a seed source consulted before LLM/web:
await discoverContacts({ company: "Acme" }, { sources: [gleif], extract });

#Offline snapshot — no rate limits, no network

Partial snippet

For high-volume or offline use, build a local SQLite index from GLEIF's full Golden Copy dump (2.7M entities) and point the adapter at it:

SH
bunx gleif-snapshot golden-copy.zip gleif-snapshot.sqlite
   # or: bun run node_modules/@absolutejs/dataset-gleif/dist/snapshot.js <file> [out]

#Offline snapshot — no rate limits, no network 2

Partial snippet

For high-volume or offline use, build a local SQLite index from GLEIF's full Golden Copy dump (2.7M entities) and point the adapter at it:

TS
gleifSource({ snapshotPath: "gleif-snapshot.sqlite" });

#Package commands

Scripts declared by this package manifest.

bun run buildrm -rf dist && bun build src/index.ts --outdir dist --target=bun --external @absolutejs/discover && bun build scripts/snapshot.ts --outdir dist --target=bun --external @absolutejs/discover && tsc --emitDeclarationOnly --project tsconfig.json
bun run typechecktsc --noEmit