Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

764 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

OpenCheck

Customer due diligence risk checks powered by the Legal Entity Identifier (LEI), open data and open standards - including the Beneficial Ownership Data Standard (BODS).

Try the demo at https://opencheck.world/

What is OpenCheck?

You paste in a Legal Entity Identifier. OpenCheck queries GLEIF first, derives every cross-source identifier it can (UK Companies House number, Norwegian organisation number, Irish company registration number, Finnish Y-tunnus, Latvian registration number, Lithuanian entity code, Estonian registry code, Czech IČO, Polish KRS number, Austrian Firmenbuchnummer, Slovak IČO, French SIREN, Dutch KvK number, Swedish organisation number, Swiss UID, Canadian corporation number, Belgian enterprise number, Danish CVR number, Croatian MBS, Maltese registration number, Brazilian CNPJ, New Zealand company number, Australian ACN/ABN, OpenCorporates ID, Wikidata Q-ID, and more), and uses those bridges to fan out across 36 national and international corporate data sources.

Everything maps into BODS v0.4. Cross-source links and risk signals are computed deterministically, and the whole bundle is one click away from a downloadable export (JSON / JSONL / XML / ZIP, plus Senzing JSON entity records for entity resolution, FollowTheMoney entities for OpenSanctions / OpenAleph investigative workflows, a BigQuery property-graph package queryable with GQL, Google AML AI input tables, and BODS RDF as TriG for linked-data and SPARQL workflows).

The risk-signal layer mirrors the EU AMLA draft customer due diligence regulatory technical standards conditions for "complex corporate structures" — trust/arrangement, non-EU jurisdiction, nominee, ≥3 ownership layers, plus the composite threshold rule and an advisory mirror of the subjective obfuscation condition.

Status

Latest: Phase 92 — TED: live "has this entity won EU public contracts?"

A new ted_eu source answers the question the retired OpenTender bulk pipeline couldn't: one anonymous query to the TED Search API v3 on eForms organisation identifiers (LEI + the national registration numbers OpenCheck already derives from GLEIF), then per-notice winner confirmation from the eForms XML — each award notice labelled won / tendered with values, dates and contract references. Coverage is the eForms era (≈2024 onwards) and the card says so; TED's licence (Commission Decision 2011/833/EU) permits commercial reuse, unlike OpenTender's NC-SA. The LEI fill rate in notices is zero today (0 of 5,031 sampled identifiers) — it's queried anyway, so the lookup self-upgrades as eForms LEI adoption grows. Commit 4094020.

Previous: Phase 91 — IndexNow: pushing the month's changed entity pages to search engines

The monthly GLEIF refresh now ends by pushing every changed or newly issued LEI's entity page to IndexNow-participating engines (Bing, Seznam, Naver, Yandex …) in 10,000-URL batches — typically 100–300k URLs a month, mapped through the same slug logic as the pages themselves so submitted URLs always equal the canonical URLs. Ownership is proved by a /indexnow/{key}.txt echo route; without the key configured, everything no-ops. Google is unaffected — its discovery stays sitemap/lastmod via Search Console. Commit bfe8407.

Full development history

Quick start

The backend ships with cache-first dispatch: in stub mode (no API keys, no OPENCHECK_ALLOW_LIVE) every adapter returns deterministic placeholder data. Live mode is opt-in per source via env vars.

Docker

cp .env.example .env
docker compose up --build

Local (without Docker)

Backend:

cd backend
uv sync
uv run uvicorn opencheck.app:app --reload --port 8000

Frontend:

cd frontend
npm install
npm run dev

The BOVS icons and country-flag SVGs are committed under frontend/public/, so the dev server needs no extra build step.

Documentation

Page Contents
How it works Step-by-step lookup flow, per-adapter detail, Open Ownership BODS bundles, API surface, project structure
Sources Full adapter table — active sources plus inactive bulk-only adapters, license, entry point, description
Risk signals All signal codes: source-derived, AMLA CDD RTS, FATF jurisdiction, state-controlled/SOE, cross-source name match, ICIJ Offshore Leaks
Subsidiary network Lazy GLEIF Level-2 reveal — direct + ultimate children mapped to BODS, graph (small) or table + export (large)
Configuration Environment variables, Render deployment, running the test suite
Development history All phases

Licensing

OpenCheck's own code is MIT-licensed. Data retrieved from third-party sources is licensed under each source's own terms — see ATTRIBUTIONS.md. Downloaded exports include a LICENSES.md listing every source that contributed data, with re-use guidance for the most-restrictive licence in the bundle; the RDF export additionally stamps each statement with its source's canonical licence URI (bods:license), so the licensing information is machine-readable and travels with the data itself.

The frontend renders ownership graphs with Cytoscape.js (MIT). It re-uses the Beneficial Ownership Visualisation System design tokens (CC BY 4.0) and the BOVS entity/person icons and country-flag SVGs from Open Ownership's visualisation library (Apache 2.0) — both © Open Ownership. The committed assets live under frontend/public/bods-dagre-images/, a directory name retained from their original source.

Roadmap

  • A "complex offshore" demo subject that fires every AMLA chip simultaneously.
  • BODS RDF / SPARQL backbone via Oxigraph — load the assembled BODS bundle into a triple store, expose /sparql for the published Open Ownership red-flag queries.

Open issues and discussion live in the GitHub repo.

Related projects

About

Customer due diligence checks powered by the Legal Entity Identifier, open corporate data and open standards including the Beneficial Ownership Data Standard

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages