find_missing

Product · v0 · Class A · also known as company_state

find_missing

What OpenCorporates doesn't do: confirm a company's LEI is genuinely reconciled against Spain's BORME or Hungary's Cégjegyzék (both real, verified registries in our 23-jurisdiction list — most aggregators stop at the big five), and watch a whole portfolio for the moment any entity's status actually changes, instead of re-pulling a snapshot yourself on a schedule.

Checks whether an entity that already has a real LEI (Legal Entity Identifier) has a high-confidence match in the national commercial registry its own declared jurisdiction would expect — 23 real national registries covered (full list), including UK Companies House, Spain BORME, France SIRENE, and Germany's decentralized Handelsregister (148 individual court registries). Never claims illegality, fraud or a shell entity — only "no high-confidence match", always with the expectation rule that explains why a match was expected in the first place.

Real example

Request:

POST https://api.nkodatalabs.com/v0/find_missing
x-api-key: <your key>
content-type: application/json

{"identifier_type": "lei", "identifier": "2138002P5RNKC5W2JZ46", "jurisdiction": "GB"}

Response (real, live TESCO PLC lookup):

{
  "entity_seen_in": [
    {"registry": "GLEIF (global LEI index)", "id": "2138002P5RNKC5W2JZ46", "matched_on": "lei", "confidence": 1.0},
    {"registry": "UK Companies House", "id": "00445790", "matched_on": "gleif.registration.validatedAt", "confidence": 0.95}
  ],
  "expected_in": [
    {"registry": "UK Companies House", "reason": "Every company incorporated in England/Wales, Scotland or Northern Ireland must register with Companies House."}
  ],
  "not_found_in": [],
  "candidates": [],
  "verdict": "CONSISTENT",
  "method_version": "nko-find-missing-v0.1-2026-08-31",
  "evidence_refs": ["GLEIF API https://api.gleif.org/api/v1/lei-records (live query)", "entity_legal_name='TESCO PLC'"],
  "verdict_block": {
    "verdict": "CONSISTENT",
    "confidence": 0.95,
    "declared_state": "Entity declares a legal address in GB.",
    "observed_state": "Found in: GLEIF (global LEI index), UK Companies House.",
    "delta": {"expected_registries": 1, "confirmed_registries": 1},
    "sensor_agreement": {
      "status": "not_applicable_single_source",
      "note": "Only GLEIF is queried live today - no second independent registry (VAT, procurement, regulator, domain) is cross-checked yet."
    },
    "recommended_next_action": "None - result is decisive."
  }
}

confidence reuses the same fixed real weights the method already assigns by match type (GLEIF's own record = 1.0, a cross-referenced national-registry match = 0.95, an absence assertion = 0.6) — declared match-type weights, not a per-instance statistical measurement, documented as such rather than presented as more precise than they are.

Ambiguous names (e.g. "Banco Santander", which has 25+ real LEIs) never get a verdict picked blindly — the API returns a candidates[] list instead, and asks you to disambiguate with a specific LEI.

Try it without a key

No signup, no key — 5 calls/day per IP, meant for trying the method before you commit to an email:

curl -X POST https://api.nkodatalabs.com/v0/find_missing \
  -H "content-type: application/json" \
  -d '{"identifier_type": "name", "identifier": "Tesco PLC", "jurisdiction": "GB"}'

Same full response as a keyed call, plus a trial: {"remaining_today": N, "get_key_url": "..."} field. The 6th call the same day from the same IP returns 429 with a link to get a free key.

Get a free key (50 calls/day)

Self-service, no approval — POST /v0/keys with your email returns a key instantly. A key raises the daily limit from 5 (anonymous) to 50/day, shared between this endpoint and /v0/company_state.

Python client

pip install nko
import nko
nko.find_missing("name", "Tesco PLC", jurisdiction="GB", api_key="your_key")

Limits

Free, v0, no availability guarantee. Without a key: 5 calls/day per IP. With a free key: 50 calls/day, shared between /v0/find_missing and /v0/company_state — further calls return 429 until next UTC day. A revoked key returns 403; an unknown key returns 401.

Need more than 50/day?

One credit pack, no subscription: 2,500 calls for €19 (€0.0076/call), never expires. Uses the key from the section above (saved in this browser) — request one first if you haven't.

For reference: typical standalone KYB business-verification lookups run ~$2 per check elsewhere (Didit, 2026) — ours is a narrower registry-expectation check, not a full KYB bundle (no UBO/AML), priced accordingly.

Sources & attribution

The only live source queried is GLEIF (Global Legal Entity Identifier Foundation) — public, no authentication required. GLEIF record data references the national registration authorities it validates against: UK Companies House, Spain's Registro Mercantil (BORME), and France's Sirene (INSEE). Those three registries are used under a "review" legal status internally (mandatory attribution, not GREEN/unrestricted) — this product only echoes registry identifiers already published by GLEIF itself, it does not scrape or redistribute the national registries directly.

Re-identification notice: combining a global LEI with a specific national registration number links two otherwise-separate public identifiers for the same entity. Both are already public individually; this product makes the cross-reference explicit rather than novel information. No personal data about individuals is processed — LEI records describe legal entities, not people.