Company Registry Intelligence - GLEIF LEI + Wikidata avatar

Company Registry Intelligence - GLEIF LEI + Wikidata

Pricing

from $10.00 / 1,000 company record extracteds

Go to Apify Store
Company Registry Intelligence - GLEIF LEI + Wikidata

Company Registry Intelligence - GLEIF LEI + Wikidata

Resolve a company legal name or LEI to hard registry facts from the open GLEIF LEI API - legal name, jurisdiction, legal form, registration authority, addresses, status and last legal event - enriched with Wikidata website, country, HQ and industry. No API key.

Pricing

from $10.00 / 1,000 company record extracteds

Rating

0.0

(0)

Developer

Oaida Adrian

Oaida Adrian

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Company Registry Intelligence — GLEIF LEI + Wikidata

Resolve a company legal name (or a known LEI code) to hard, citable registry facts: legal name and other names, LEI, jurisdiction, legal form, registration authority and registration number, registered + headquarters address, entity and registration status, corroboration level, the last recorded legal event, and successor entity — enriched with Wikidata statements (official website, country, headquarters, industry, inception, employees, stock exchange).

Built for KYC/onboarding research, vendor due-diligence, CRM and data-warehouse enrichment, counterparty screening and agentic pipelines that need identifiers and registry facts rather than a marketing page.

Why this Actor

Firmographic charts (Crunchbase-style) are gated, rate-limited and hostile to automation. The GLEIF LEI registry is the global, open, machine-readable alternative: it is the authoritative source for the Legal Entity Identifier used in payments, securities and regulatory reporting, it needs no API key, and it exposes precisely the facts a diligence workflow has to cite. Wikidata then fills the human-readable layer (website, HQ, industry) under a CC0 licence.

Both sources were feasibility-probed from Apify datacenter IPs before this Actor was built — no proxy, no credentials:

Probe targetResult
api.gleif.org — filter[entity.legalName]200, real LEI records
api.gleif.org — record by LEI200
api.gleif.org — fuzzycompletions200
www.wikidata.org/w/api.php — search + entities200
(searchapi.io, Crunchbase, G2, Quora)Cloudflare / 502 — retired, not used here

What it does

  1. Resolves each legal name against the GLEIF registry (filter[entity.legalName], exact), with an automatic full-text fallback when the exact filter returns nothing.
  2. Fetches LEI codes directly, skipping the search step entirely.
  3. Applies optional jurisdiction / category / active-only filters.
  4. Maps each LEI record into a flat, spreadsheet- and warehouse-friendly row (addresses flattened, dates ISO-8601, the most recent legal event hoisted to lastLegalEvent).
  5. Enriches the top N records from Wikidata: official website, country, headquarters, industry, legal form, stock exchange, inception date, employee count — with QIDs and resolved English labels.
  6. Reports near-miss legal names (fuzzycompletions) under the run's SUMMARY key-value record when a name resolves to nothing.

Input

{
"legalNames": ["Stripe", "Siemens AG"],
"leis": [],
"maxResultsPerQuery": 5,
"matchMode": "legalName",
"fallbackToFulltext": true,
"enrichWithWikidata": true
}
OptionTypeDescription
legalNamesstring[]Company legal names to resolve (default ["Stripe"]). Matching is exact on entity.legalName, with a full-text fallback.
leisstring[]Exact 20-character LEI codes to fetch directly (default []). Bypasses search.
maxResultsPerQueryintegerMax LEI records output per name/LEI (default 5, max 50).
matchModestringlegalName (default, exact) or fulltext (wider, noisier).
fallbackToFulltextbooleanRetry a zero-result exact match as full-text (default true).
jurisdictionsstring[]Keep only entities matching any of these jurisdiction/country/region codes, e.g. ["US-DE","RO"] (default [] = all).
entityCategoriesstring[]Keep only these GLEIF categories, e.g. ["GENERAL","BRANCH"] (default [] = all).
activeOnlybooleanKeep only ACTIVE entities (default false).
enrichWithWikidatabooleanAdd the Wikidata block (default true).
wikidataMaxRecordsintegerCap on enriched records — each enrichment costs two Wikidata calls (default 25, max 200).

Output — one item per LEI record

FieldDescription
leiLegal Entity Identifier (20 chars)
legalName, legalNameLanguageRegistered legal name and its language
otherNamesOther registered names (incl. transliterations)
entityStatusACTIVE, INACTIVE, MERGED, RETIRED, ANNULLED
registrationStatusLEI registration status (ISSUED, LAPSED, …)
jurisdictionLegal jurisdiction code, e.g. US-DE, RO, BE
entityCategory, entitySubCategoryGENERAL, BRANCH, SOLE_PROPRIETOR, FUND, …
legalFormCode, legalFormOtherELF legal-form code / free text
registeredAtAuthority, registeredAsRegistration authority id + company number as registered
countryCountry of the legal address
legalAddress, headquartersAddress{lines, addressNumber, city, region, country, postalCode, language}
initialRegistrationDate, lastUpdateDate, nextRenewalDateLEI lifecycle dates
managingLou, corroborationLevel, conformityFlag, validatedAsWho issues and corroborates the record
lastLegalEvent{type, status, effectiveDate, recordedDate, groupType} — most recent legal event
successorEntityLei, successorEntityNameSuccessor after a merger, when recorded
bic, mic, ocidBank / market / OCID identifiers when present
matchedOnlegalName, fulltext or lei — how the record was found
queryThe input value that produced this record
gleifApiUrlCanonical API URL of the source record
wikidata{qid, label, description, website, country, headquarters, industry, legalForm, stockExchange, instanceOf, inception, employees} or null
scrapedAtExtraction timestamp (UTC ISO-8601)

Worked example

Input:

{ "legalNames": ["Stripe"], "maxResultsPerQuery": 1, "enrichWithWikidata": true }

Output (trimmed):

{
"lei": "894500EDC64T52PGFL08",
"legalName": "STRIPE",
"entityStatus": "ACTIVE",
"registrationStatus": "ISSUED",
"jurisdiction": "BE",
"legalFormCode": "3W7E",
"registeredAtAuthority": "RA000025",
"registeredAs": "0888373015",
"country": "BE",
"legalAddress": {"lines": ["Fazantenlaan 2"], "city": "Hoeilaart", "region": "BE-VBR",
"country": "BE", "postalCode": "1560", "language": "nl"},
"initialRegistrationDate": "2018-03-21T13:04:33Z",
"corroborationLevel": "FULLY_CORROBORATED",
"conformityFlag": "CONFORMING",
"lastLegalEvent": {"type": "CHANGE_LEGAL_FORM", "status": "COMPLETED",
"recordedDate": "2024-03-05T13:32:11Z"},
"matchedOn": "legalName",
"gleifApiUrl": "https://api.gleif.org/api/v1/lei-records/894500EDC64T52PGFL08",
"wikidata": {"qid": "Q7624104", "label": "Stripe",
"description": "Irish-American payment technology company",
"website": "https://stripe.com/",
"country": {"qid": "Q30", "label": "United States"},
"inception": "2010-09-01"}
}

A 100-company diligence list costs about $1.00 in event fees.

Run it from your code or on a schedule

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("darknezz/company-registry-intelligence").call(
run_input={"legalNames": ["Stripe", "Siemens AG"], "maxResultsPerQuery": 5},
max_total_charge_usd=5.00,
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["legalName"], item["lei"], item["jurisdiction"])

REST equivalent:

curl -X POST "https://api.apify.com/v2/acts/darknezz~company-registry-intelligence/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"legalNames":["Stripe","Siemens AG"],"maxResultsPerQuery":5}'

Point an Apify Schedule at a new batch of counterparty names each night, or trigger it from your onboarding flow and write the rows straight into your CRM/warehouse. max_total_charge_usd (Console → Run options → Maximum cost per run) caps the spend; a batch of 500 names with maxResultsPerQuery=1 costs about $5.00.

Pricing

Pay per event: $0.01 per company record (company-extracted primary event), charged once per LEI record returned — regardless of how many API calls the enrichment needed. 100 companies ≈ $1.00; 10,000 companies ≈ $100. No charge for a query that resolves to nothing (near-miss suggestions are reported in SUMMARY instead).

FAQ

Do I need a GLEIF or Wikidata API key? No. Both are open, unauthenticated public APIs.

How fresh is the data? Whatever GLEIF's golden copy currently serves — every record carries lastUpdateDate and nextRenewalDate, and lastLegalEvent shows the most recent recorded change.

Why did an exact name return nothing? Legal names differ from trading names (Stripe vs STRIPE, Google LLC vs Alphabet Inc.). Keep fallbackToFulltext on, then check the SUMMARY key-value record — it lists near-miss legal names from GLEIF's fuzzy completion endpoint for every zero-result query.

Which entity do I get when a name is ambiguous? Up to maxResultsPerQuery records (default 5), each with jurisdiction, registeredAs and entityStatus so you can pick the right one. Use jurisdictions to narrow by country/state.

What exactly does the Wikidata block add? The public-facing layer: official website, country, headquarters, industry, legal form, stock exchange listings, inception date and employee count, each with QIDs and English labels.

Is a Wikidata miss a failure? No. wikidata: null just means no Wikidata item scored as a company (the matcher prefers items with a website plus a country plus a company-like description). Registry fields are always present.

Can it do fuzzy name matching? Not as a resolver — GLEIF's fuzzy endpoint returns name completions, not scored entity matches, so guessing a match would be dishonest. Near-misses are reported, never silently substituted.

How do I cut cost on a big list? Set maxResultsPerQuery: 1, turn off enrichWithWikidata (or lower wikidataMaxRecords) and filter hard with jurisdictions/entityCategories/activeOnly.

Is this Crunchbase data? No — and deliberately so. Crunchbase blocks datacenter traffic behind Cloudflare (probed directly), so this Actor is built on open registry data you can cite: GLEIF (LEI) and Wikidata (CC0).

Limitations

  • GLEIF covers entities that have (or had) an LEI. Private companies, sole traders and many early-stage startups have none — that is a registry fact, not an Actor defect, and SUMMARY.errors never hides it.
  • Wikidata is community-maintained. Website/HQ/industry come from statements that a human editor wrote; they can be stale or missing. Treat the registry block as authoritative and the Wikidata block as convenience enrichment.
  • Legal names are matched literally. Names in non-Latin scripts are matched via GLEIF's own transliterations; exotic aliases may need the full-text fallback or a direct LEI.
  • No financials, funding rounds or headcount beyond Wikidata's employees statement. This Actor reports registry identity, not company financials.