The Mine Works
Company KYB Resolver: LEI, EU VAT, and SEC CIK Lookup in One API Call
← All posts
tutorial June 23, 2026 · 3 min read

Company KYB Resolver: LEI, EU VAT, and SEC CIK Lookup in One API Call

Resolve a company name to its Legal Entity Identifier (LEI), EU VAT registration status, and SEC EDGAR CIK in a single call. No API key required. Built for KYB onboarding and counterparty verification.

Try the scraper

The actor referenced in this article. Pay only for results delivered.

View the scraper →

Know Your Business verification typically requires querying three different registries: GLEIF for the Legal Entity Identifier, a national VAT database for EU status, and SEC EDGAR for US-listed entities. Our Company KYB Resolver does all three in a single actor run and returns a merged record.

What you get per company

  • company_name — input name
  • lei — Legal Entity Identifier (20-character alphanumeric code)
  • lei_status — ISSUED, LAPSED, or PENDING
  • lei_registration_date — date LEI was first issued
  • gleif_entity_status — ACTIVE or INACTIVE per GLEIF
  • legal_address — registered address from GLEIF
  • jurisdiction — country of registration
  • eu_vat_number — EU VAT registration number (if found via VIES)
  • eu_vat_valid — true/false (VIES validation result)
  • eu_vat_country — VAT issuing country
  • sec_cik — SEC EDGAR Central Index Key
  • sec_company_name — company name as registered with SEC
  • sec_entity_type — corporation, LLC, etc.
  • sec_sic — SIC industry code
  • sources — which registries returned data
  • scraped_at — ISO timestamp

Python example

import requests, time

run = requests.post(
    "https://api.apify.com/v2/acts/themineworks~company-identity-resolver/runs",
    headers={"Authorization": f"Bearer {APIFY_TOKEN}"},
    json={
        "companies": [
            "Apple Inc",
            "ASML Holding",
            "SAP SE"
        ]
    }
)

run_id = run.json()["data"]["id"]

while True:
    r = requests.get(
        f"https://api.apify.com/v2/actor-runs/{run_id}",
        headers={"Authorization": f"Bearer {APIFY_TOKEN}"}
    ).json()
    if r["data"]["status"] in ("SUCCEEDED", "FAILED"):
        break
    time.sleep(5)

entities = requests.get(
    f"https://api.apify.com/v2/actor-runs/{run_id}/dataset/items",
    headers={"Authorization": f"Bearer {APIFY_TOKEN}"}
).json()

for e in entities:
    print(e["company_name"])
    print(f"  LEI: {e.get('lei','not found')} ({e.get('lei_status','—')})")
    print(f"  VAT: {e.get('eu_vat_number','not found')} valid={e.get('eu_vat_valid')}")
    print(f"  CIK: {e.get('sec_cik','not found')}")

Enrich a counterparty list

import pandas as pd

df = pd.read_csv("counterparties.csv")   # must have 'company_name' column
companies = df["company_name"].dropna().tolist()

run = requests.post(
    "https://api.apify.com/v2/acts/themineworks~company-identity-resolver/runs",
    headers={"Authorization": f"Bearer {APIFY_TOKEN}"},
    json={"companies": companies}
)
# ... poll and fetch, then merge on company_name

# Flag high-risk: no LEI and no VAT registration
results_df = pd.DataFrame(entities)
unverified = results_df[
    results_df["lei"].isna() &
    results_df["eu_vat_number"].isna() &
    results_df["sec_cik"].isna()
]
print(f"{len(unverified)} companies returned no registry match")

What each registry covers

RegistryWhat it verifiesCoverage
GLEIF (LEI)Legal entity existence and jurisdiction2.5M+ entities globally
EU VIES (VAT)Active EU VAT registrationAll 27 EU member states
SEC EDGAR (CIK)US registered issuerUS-listed companies and filers

A company may appear in one, two, or all three depending on its jurisdiction and regulatory status.

Use cases

Onboarding and KYB. Before onboarding a new business customer, vendor, or partner, resolve their name against all three registries to confirm they are a legally registered entity with traceable identity.

Supplier due diligence. Run your supplier list through the resolver to identify suppliers that lack any verifiable registry presence — a material supply chain risk signal.

Trade finance. Verify counterparty identity before issuing letters of credit or financing trade transactions. An active LEI is increasingly required by correspondent banks under SWIFT standards.

Fintech compliance. Embed entity resolution in your business account opening flow to automate the first layer of KYB before manual review.

Accounts payable fraud prevention. Verify that new vendor registrations in your ERP match a legitimate registered entity before approving for payment.

Pricing

$0.005 per company lookup. Companies that return no match from any registry are still charged (the lookup was performed).

Available on Apify.

Related Actor

Explore the scraper referenced in this article — see inputs, outputs, and pricing, then run it on Apify.