schema reference

A strictly typed schema you can build on

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.

Entity document

fieldtypedescription
idkeywordStable entity UUID
entity_nametextPrimary resolved name
entity_typekeywordperson · organisation · vessel · aircraft
aliasestext[]Alternate names and transliterations across 50+ languages
tagskeyword[]List categories: sanction · enforcement · pep · probity
countrieskeyword[]Associated country codes
nationalitykeyword[]Nationalities (persons)
resolution_statuskeywordmaster · singleton · pending — how the resolution layer classified the record
has_photobooleanWhether source imagery exists for the entity
indexed_atdateWhen this document last changed

Nested records

birth_information[]

fieldtypedescription
year / month / dayintegerPartial dates preserved exactly as published
full_datedatePresent only when the source gave a complete date
original_stringkeywordThe source's own text, unmodified

identifiers[]

fieldtypedescription
typekeywordpassport · imo_number · registration_number and others, as published
valuekeywordExact-matchable identifier value
countrykeywordIssuing country when stated
issue_date / expiry_datedateWhen stated by the source

sanctions_listings[]

fieldtypedescription
issuing_authoritykeywordThe designating body, e.g. OFAC, EU Council
programkeywordDesignation program, e.g. UKRAINE-EO13661
regime_nametextHuman-readable regime name
sanction_typekeyworde.g. asset freeze, travel ban
reason / legal_basistextStated grounds for designation
listing_date / designation_date / expiration_datedateLifecycle dates as published
is_activebooleantrue currently designated · false delisted

pep_positions[]

fieldtypedescription
positiontextOffice held, e.g. "President of the Russian Federation"
pep_classkeyword1 · 1-SOE · 2 · 3 · 4
statuskeywordactive sitting · inactive former
countrieskeyword[]Where the office is held
start_date / end_datedateTenure when stated

relationships[] · sources[] · addresses[]

fieldtypedescription
relationships[].target_name / target_idtext / keywordLinked entity, resolvable by id
relationships[].relationship_typekeyworde.g. "Owned or Controlled By", "Family member of"
sources[].source_idkeywordFeed key — the stable feed key carried on every record
sources[].publisher / region / urltext / keywordPublishing authority, region and origin link
addresses[].full_address / city / country / regiontext / keywordAddresses 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.