Everything Kortex serves is reachable through five registry-driven surfaces; not just the screens we chose to build. Every response resolves its source, licence and commercial status live; excluded sources are held, not served; commercial accounts fail closed on non-cleared sources by default. Below: what each surface is for, one real record, and the call that returns it. All five need an API key; the Globe and research pages show much of the same estate anonymously.
Every servable dataset (625 tables) retrievable directly, with rights on the envelope. If a table's source isn't in the register, the surface fails closed rather than serving unattributed data.
{"table": "oe417_events", "row_count": 1, "commercial_status": "cleared", "licence": "US Public Domain",
"rows": [{"year": 2015, "event_type": "Severe Weather - Winter", "nerc_region": "SERC",
"area": "Tennessee", "began_at": "2015-01-11T17:00:00", ...}]}
Catalogued series families: wholesale prices (87M observations, 56 markets), 9,122 FRED series (rates, spreads, FX), carbon, commodities, generation, demand. Each catalogue entry states grain, dimensions, evidence class and rights.
{"key": "fx_rates_daily", "grain": "currency-day", "evidence_class": "source_reported",
"commercial_status": "cleared", "retrieve": "/v2/series/fx_rates_daily", ...}
Governance, economic complexity, infrastructure delivery history, decarbonisation, HDI, project performance; the "is this jurisdiction investable" layer, kept deliberately as supporting context around infrastructure decisions.
{"iso3": "VNM", "indicators": {"hdi": {"present": true, "value": {"hdi_value": 0.766,
"hdi_class": "high"}, "evidence_class": "source_reported", "commercial_status": "cleared"}, ...}}
One generator or substation, every context Kortex holds: compound hazard, wildfire/storm/seismic, water stress, carbon exposure, stranding indicators, conflict, air quality, cooling relationships, observed capacity factors; each section carrying its own source, vintage and evidence class. Sections the asset lacks say so.
{"sections": {"physical-hazard": {"present": true, "evidence_class": "source_reported",
"rows": [...]}, "observed-capacity-factor": {"present": true, ...},
"conflict-context": {"present": false}}, "note": "absence is disclosed ... never interpolated"}
GLEIF identity and parent chains, operating subsidiaries, attributed fleet with modelled revenue (served beside filed SEC financials, never blended), offshore-record matches, primary-list sanctions screening, divestiture watch, US wholesale counterparties (FERC EQR); keyed on the LEI.
{"root": "549300T5RZ1HA5HZ3109", "stats": {"subs_total": 32, "root_ctrl_mw": 136572},
"edges": [{"type": "SUBSIDIARY_OF", "kind": "registry"}, {"type": "OPERATED_BY", "kind": "stitched"}],
"evidence": {"OPERATED_BY/OWNED_BY": "stitched; ... precision published in validation study 7"}}
The whole estate serves, not a curated slice: every servable dataset is retrievable through the governed catalogue (/v2/tables) with per-dataset licence and live rights status; and it refreshes continuously: fire detections 6-hourly, market prices 4-hourly, EIA demand 2-hourly, FX and carbon daily, GLEIF entities daily-to-monthly, with the source register self-auditing weekly. Rights-pending datasets are built in and gated, never silently omitted.
One real node and its first-hop neighbourhood; a 9.5 GW gas plant in Dubai. Every edge is typed and carries its fidelity: how the connection was established, from authoritative topology down to spatial inference. This record, its neighbours, and every field's source are what the API returns.
A real record: generator oim_gen_592115432 and its typed edges. Each edge carries method, confidence and audit status; each field carries source, method and as-of date.