Every entity is one document with typed, nested sub-records. Fields are only present when the issuing source publishes them — absence means the source said nothing, never a silent default.
| field | type | description |
|---|---|---|
id | keyword | Stable entity UUID |
entity_name | text | Primary resolved name |
entity_type | keyword | person · organisation · vessel · aircraft |
aliases | text[] | Alternate names and transliterations across 50+ languages |
tags | keyword[] | List categories: sanction · enforcement · pep · probity |
countries | keyword[] | Associated country codes |
nationality | keyword[] | Nationalities (persons) |
resolution_status | keyword | master · singleton · pending — how the resolution layer classified the record |
has_photo | boolean | Whether source imagery exists for the entity |
indexed_at | date | When this document last changed |
| field | type | description |
|---|---|---|
year / month / day | integer | Partial dates preserved exactly as published |
full_date | date | Present only when the source gave a complete date |
original_string | keyword | The source's own text, unmodified |
| field | type | description |
|---|---|---|
type | keyword | passport · imo_number · registration_number and others, as published |
value | keyword | Exact-matchable identifier value |
country | keyword | Issuing country when stated |
issue_date / expiry_date | date | When stated by the source |
| field | type | description |
|---|---|---|
issuing_authority | keyword | The designating body, e.g. OFAC, EU Council |
program | keyword | Designation program, e.g. UKRAINE-EO13661 |
regime_name | text | Human-readable regime name |
sanction_type | keyword | e.g. asset freeze, travel ban |
reason / legal_basis | text | Stated grounds for designation |
listing_date / designation_date / expiration_date | date | Lifecycle dates as published |
is_active | boolean | true currently designated · false delisted |
| field | type | description |
|---|---|---|
position | text | Office held, e.g. "President of the Russian Federation" |
pep_class | keyword | 1 · 1-SOE · 2 · 3 · 4 |
status | keyword | active sitting · inactive former |
countries | keyword[] | Where the office is held |
start_date / end_date | date | Tenure when stated |
| field | type | description |
|---|---|---|
relationships[].target_name / target_id | text / keyword | Linked entity, resolvable by id |
relationships[].relationship_type | keyword | e.g. "Owned or Controlled By", "Family member of" |
sources[].source_id | keyword | Feed key — the stable feed key carried on every record |
sources[].publisher / region / url | text / keyword | Publishing authority, region and origin link |
addresses[].full_address / city / country / region | text / keyword | Addresses as published |
Traceability: every nested record keeps its source attribution, so a compliance reviewer can walk from an API match to the exact feed — and from the feed to the issuing authority — without leaving the audit trail.