Developers
The same engine. Your stack.
Versioned API v1 for catalogs and score history, x402 for agent pay-per-call, plus enterprise workspace endpoints — one deterministic monthly engine underneath.
Programmatic access to the live Global Financial System readout is keyed.
Live - this month's run
Global Financial System readout from the monthly engine - same scores as the homepage instrument.
{
"entity_name": "Global Financial System",
"slug": "global-financial-system",
"nii_score": 1.870559149295314,
"phase": "Stable",
"regime": "Stable — Stable",
"fai": 1.870559149295314,
"fai_regime": "Green",
"trend": null,
"cascade_active": false,
"confidence": null,
"run_date": "2026-07-01",
"field_notes": {
"phase": "Unified regime from classifyPhaseWithThresholds (engine 0–5 NII → client 0–100): Stable <40, Elevated <60, Severe <80, Crisis <90, Collapse ≥90. Same vocabulary as public badges. Legacy thermodynamic names (Pre-Crisis, Plateau) may appear only on historical rows — always reclassify from NII when present.",
"regime": "Display score band from classifyRegime on NII × 20 (0–100): Stable <40, Elevated 40–60, Severe 60–80, Crisis 80–90, Collapse 90+. Identical ladder to phase when both derive from NII."
}
}Slug: global-financial-system
niiNet Insecurity Index · engine 0–5 on score runs; client display ×20 → 0–100
phaseThermodynamic phase label on the run
field_notesExplains phase vs regime semantics on score payloads
run_dateMonthly engine run timestamp (ISO 8601)
cascade_activeCross-domain propagation flag
domain_scoresSix-domain breakdown per run
entityFull catalog row with slug and entity_type
Engine
One sealed formula on the live Index and every backtest — formulaic result, not narrative. Scoring is deterministic under sealed physics. Zero AI touching the engine: AI may structure evidence and read the face; it does not write the number.
Auth
Data-room probe: none. API v1: x-api-key or institutional session. x402: payment header on X Layer.
Rate limits
Data-room probe: 120/min per IP. API v1: 300/min per key or session.
Errors
JSON body with a single error string, e.g. {"error":"Unauthorized"}.
{
"error": "Unauthorized"
}Versioning
data-room.v1 and API v1 are stable. Breaking changes ship as a new schema/version — never in place.
Data-room probe
No key
Public diligence attestation — inventory, live credibility, claim ceiling.
- GET /api/public/data-room — same counts as /diligence
- Live gate + SHA-256 pin for counsel packets
- HEAD + ETag for cheap monitors
- Excludes recipe, series IDs, and entity history
API v1
x-api-key or session
Full catalog, history, and domain breakdown.
- Filterable entity catalog
- Paginated monthly score history
- Six-domain scores per run
- Latest run bundled on entity detail
- Entropy source registry and observation series
x402
Pay-per-call · X Layer
V5-Locked Risk Context — tiered machine-metered reads with sealed physics attestation.
- GET /api/v1/risk/{entity}?depth=probe|clock|full — primary SKU
- GET /api/v1/x402/pre-settle — free pre-settlement stamp (physics hash bind)
- GET /.well-known/x402-attestation.json — attestation spec for third-party merchants
- GET /api/v1/pulse — legacy daily band (includes attestation)
- Tiers: 0.5 / 5 / 8 USDG on eip155:196
- HTTP 402 unpaid probe with tiered accepts[]
- Idempotent pulse_calls ledger on settle
- No API key or seat required for agents
Enterprise workspace
Institutional agreement
Portal, watchlists, and deliverables on top of the same engine.
- Org-scoped watchlists
- Weekly signals and flagship reports
- Briefing generation and PDF export
- API key issuance and rotation
01 · Monthly engine
Deterministic scoring
Six domains, one formula. Same inputs, same output. Zero AI touching the engine — it never scores.
Output
NII
Regime · domains · FAI · cascade
02 · REST API
Programmatic layer
Versioned JSON over HTTPS. Auth via x-api-key or institutional session.
- GET
/api/v1/entitiesEntity catalog - filter by entity_type and priority flag.
- GET
/api/v1/entities/{id}Entity metadata plus latest_score_run (nii, phase, cascade, run_date).
- GET
/api/v1/entities/{id}/scoresPaginated score history - page and page_size up to 100.
- GET
/api/v1/entities/{id}/domain-scoresSix domain scores for the latest run on that entity.
- GET
/api/v1/entropy-sourcesIngested entropy source registry — cadence, last_updated, and staleness status.
- GET
/api/v1/entropy-sources/{source_id}/seriesRead-only indicator_observations for a source — optional from/to (YYYY-MM-DD).
Entity reads and catalog access require x-api-key or an institutional session.
03 · Your desk
Your infrastructure
Embed regime structure where decisions are made - without rip-and-replace.
Risk and limits
Regime bands in your stack
Routing and OMS
Entity-level phase inputs
Watchlists
Scoped entities, monthly refresh
Research desk
Domain history and signals
No demo tier. The API returns the same scores published on the public benchmark.
One engine · one API contract · your stack
Entity types in production
Global systems · Nation-states · Transit corridors · Sectors · Organizations
API v1 response shape
Entity detail returns the latest monthly run - NII, phase, cascade, and full metadata for downstream systems.
{
"entity": {
"slug": "global-financial-system",
"name": "Global Financial System",
"entity_type": "global"
},
"latest_score_run": {
"nii": 3.41,
"phase": "Collapse",
"cascade_active": true,
"run_date": "2026-06-01T00:00:00.000Z",
"model_version": "mvl-governed"
},
"field_notes": {
"phase": "Unified regime from classifyPhaseWithThresholds (engine 0–5 NII → client 0–100): Stable <40, Elevated <60, Severe <80, Crisis <90, Collapse ≥90. Same vocabulary as public badges. Legacy thermodynamic names (Pre-Crisis, Plateau) may appear only on historical rows — always reclassify from NII when present.",
"regime": "Display score band from classifyRegime on NII × 20 (0–100): Stable <40, Elevated 40–60, Severe 60–80, Crisis 80–90, Collapse 90+. Identical ladder to phase when both derive from NII."
}
}API v1
Authenticated catalog and history. Include x-api-key or an institutional session cookie. Keys issued under enterprise agreements.
- GET
/api/v1/entitiesEntity catalog - filter by entity_type and priority flag. - GET
/api/v1/entities/{id}Entity metadata plus latest_score_run (nii, phase, cascade, run_date). - GET
/api/v1/entities/{id}/scoresPaginated score history - page and page_size up to 100. - GET
/api/v1/entities/{id}/domain-scoresSix domain scores for the latest run on that entity. - GET
/api/v1/entropy-sourcesIngested entropy source registry — cadence, last_updated, and staleness status. - GET
/api/v1/entropy-sources/{source_id}/seriesRead-only indicator_observations for a source — optional from/to (YYYY-MM-DD).
{
"error": "Unauthorized"
}Regime Gate (x402)
Primary machine door
Our Index hit Crisis mode by March 2008 — 6 months before Lehman.
Regime gate before size — sealed structural stress with proof, not trade signals.
- GET
/api/v1/risk/{slug}?depth=probe|clock|fullOne handler · three depths · 1001 searchable slugs · honest listing_context on proxy faces.
Pricing (locked)
- probe0.5 USDGDaily stress + V5 attestation (Check)
- clock5 USDGWatch/Act clock + gap bands
- full8 USDGClock + OKX BTC derivatives stress
Strike zone: Base / Avalanche probe at $0.25 USDC on unpaid probe when dual-rail is enabled — enter polling loops beside mall comps; clock and full stay premium.
Hero six (verify first)
- Global Financial System Call —
/api/v1/risk/global-financial-system - Bitcoin Call —
/api/v1/risk/bitcoin - Solana Call —
/api/v1/risk/solana - Ethereum Call —
/api/v1/risk/ethereum - —
/api/v1/risk/taiwan - —
/api/v1/risk/hormuz
Unpaid probe (expect 402)
curl -sS -i "https://www.entropyindex.com/api/v1/risk/bitcoin?depth=probe"
curl -sS -i "https://www.entropyindex.com/api/v1/risk/global-financial-system?depth=clock"
Agent loop (probe → clock)
// Regime Gate — pre-settle stamp then probe loop with tarzan tier crumbs
const slug = "bitcoin";
const probeUrl = `https://www.entropyindex.com/api/v1/risk/${slug}?depth=probe`;
async function payFetch(url, preSettleStamp) {
let res = await fetch(url);
if (res.status === 402) {
const terms = await res.json();
const paymentHeader = await signX402Exact(terms.accepts[0]); // OKX x402 SDK
res = await fetch(url, {
headers: {
"payment-signature": paymentHeader,
...(preSettleStamp ? { "X-EI-Pre-Settle": JSON.stringify(preSettleStamp) } : {}),
},
});
}
return res.json();
}
// 0) Free pre-settlement stamp (optional but pioneer-recommended)
const stamp = await fetch(`https://www.entropyindex.com/api/v1/x402/pre-settle?entity=${slug}&depth=probe`).then((r) => r.json());
// 1) Poll Check ($0.25 Base / $0.50 X Layer)
const probe = await payFetch(probeUrl, stamp);
// 2) Tarzan — server fires upgradeNow when pulse/band hot
const next = probe.tier_crumbs?.upgrades.find((u) => u.upgradeNow)
?? probe.tier_crumbs?.upgrades[0];
if (next) {
const clock = await payFetch(next.url);
// 3) Optional full tier on hero slugs when clock says upgradeNow
const fullNext = clock.tier_crumbs?.upgrades.find((u) => u.upgradeNow);
if (fullNext) await payFetch(fullNext.url);
}
// 4) Citation flywheel — drop into trade log
console.log(probe.citation?.oneLine);Machine discovery
/llms.txt— agent-readable index/.well-known/x402.json— x402 catalog stub/.well-known/regime-gate-mcp.json— MCP tool schema (get_regime_clock)/api/v1/x402/status— honest readiness + catalog counts
Full catalog: /x402 — 1001/1001 registration-ready faces. OKX brief: /okx — frozen 193-batch A2MCP paste.
x402
Live · X Layer
Live structural stress snapshot from the Index — agents settle per call on X Layer, with a ledgered receipt of what the instrument said and when.
x402 is pay-per-call on X Layer; entity catalog and score history use x-api-key or an institutional session - two auth models on API v1.
Production route. Unpaid calls return 402 with settlement instructions; paid calls settle synchronously and write a ledger receipt. Agents: /llms.txt and /.well-known/x402.json.
Agents settle per call. Offices license the Index.
- GET
/api/v1/pulseMetered · settled on X Layer. Settlement amount is configured per environment (currently 0.50 USDG atomic units on eip155:196) — a metering unit for agents, not a retail product price.
Probe unpaid (expect 402)
No API key. An unpaid GET returns payment instructions — the agent-commerce handshake.
curl -sS -i "https://www.entropyindex.com/api/v1/pulse"
Auth and payment flow
- Unpaid probe:
GET /api/v1/pulsewith no payment header. Server returns402 Payment Requiredwith a JSON body (x402Version,resource,accepts[]) and aPAYMENT-REQUIREDheader (base64url-encoded copy of the same instructions). - Sign payment: Build an x402 v2
exactpayment on networkeip155:196for0.50 USDG(500000atomic units, 6 decimals) to thepayToaddress inaccepts[0]. Asset contract:0x4ae46a509f6b1d9056937ba4500cb143933d2dc8. - Paid request: Retry
GET /api/v1/pulsewith the signed payload in a payment header. Accepted names:Payment,payment,payment-signature, orx-payment(base64url PaymentPayload). OKX facilitator verifies and settles synchronously; on success the handler returns200JSON and may attach aPAYMENT-RESPONSEsettlement receipt header. Paid traffic is upserted intopulse_callsby payment id.
Example 200 response
pulse is a daily stress band (easing, stable, elevated, critical) - not the thermodynamic phase label on entity score runs. nii_anchor is read from the latest monthly_scores row (example below: July 2026 canonical nii_score 3.37); level is the global monthly NII scalar (engine 0–5; display ×20 → 0–100), distinct from per-entity phase on keyed entity reads (see field_notes). Driver buckets in this example are illustrative; nii_anchor matches the live ledger month.
{
"as_of": "2026-07-07T12:00:00.000Z",
"data_through": "2026-07-06",
"pulse": "elevated",
"drift": 12.5,
"drivers": [
"event_pressure",
"attention"
],
"domain_detail": {
"event_pressure": 60,
"cyber_activity": 60,
"macro_spillover": 50,
"attention": 60
},
"nii_anchor": {
"level": 3.37,
"as_of": "2026-07-01",
"next_update": "2026-08-01T08:00:00.000Z"
},
"stale_sources": [],
"note": "Risk context, not trade signals.",
"attestation": {
"edition": "v5-locked-1.19.0",
"physics_base": "v5-strong-1.0.0",
"physics_hash": "4cdadbc69e551295aad8f10f52cb96b1679c3506f748394597bb85eaf9056689",
"engine_path": "v5_locked_pit"
},
"tier_crumbs": {
"currentDepth": "probe",
"upgrades": [
{
"depth": "clock",
"url": "https://www.entropyindex.com/api/v1/risk/global-financial-system?depth=clock",
"priceUsdg": "5",
"trigger": "pulse_elevated",
"reason": "Daily pulse elevated — upgrade to clock before notional increase.",
"upgradeNow": true
}
],
"ladder": [
{
"depth": "probe",
"url": "https://www.entropyindex.com/api/v1/risk/global-financial-system?depth=probe",
"priceUsdg": "0.5",
"role": "Poll loop — daily stress band + physics hash"
},
{
"depth": "clock",
"url": "https://www.entropyindex.com/api/v1/risk/global-financial-system?depth=clock",
"priceUsdg": "5",
"role": "Pre-size gate — Watch/Act + attestation"
},
{
"depth": "full",
"url": "https://www.entropyindex.com/api/v1/risk/global-financial-system?depth=full",
"priceUsdg": "8",
"role": "Clock + OKX BTC derivatives fusion"
}
]
},
"citation": {
"oneLine": "Global Financial System (probe) as of 2026-07-07 — physics 4cdadbc69e55… Pulse elevated. Our Index registered Crisis by March 2008 — 6 months before Lehman.",
"entity": "Global Financial System",
"depth": "probe",
"asOf": "2026-07-07T12:00:00.000Z",
"physicsHash": "4cdadbc69e551295aad8f10f52cb96b1679c3506f748394597bb85eaf9056689",
"attestationEdition": "v5-locked-1.19.0",
"proofLead": "Our Index registered Crisis by March 2008 — 6 months before Lehman.",
"note": "Risk context, not trade signals."
}
}Error responses
402 Payment Required - no valid payment header, or payment verification failed. Body carries x402 payment instructions (retry after signing).
{
"x402Version": 2,
"resource": {
"url": "https://www.entropyindex.com/api/v1/pulse",
"description": "Entropy Index Risk Pulse snapshot",
"mimeType": "application/json"
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:196",
"asset": "0x4ae46a509f6b1d9056937ba4500cb143933d2dc8",
"amount": "500000",
"payTo": "0x742d35cc6634c0532925a3b844bc9e4438f44e00",
"maxTimeoutSeconds": 300,
"extra": {
"decimals": 6,
"name": "USDG",
"version": "2"
}
}
]
}503 Service Unavailable - payment rail misconfigured (missing or malformed pay-to address, facilitator credentials unavailable, or settlement did not complete synchronously).
{
"error": "Payment service unavailable"
}Marketplace listing brief: /okx — A2MCP registration copy, named resources, and the live 402 probe.
Cache: Successful responses are cached for 15 minutes (Cache-Control: public, s-maxage=900, stale-while-revalidate=1800). Agents should not poll faster than the cache window unless payment economics allow it.
Phase terminology - flagged
The public API returns a phase field on entity reads (e.g. "Collapse"). Terminology review is pending framework sign-off. Surfaces that render phase labels publicly:
- Public API · Keyed entity reads - phase field on score payloads (see field_notes on responses)
- Benchmark · Homepage instrument / LiveIndexHero (GFS thermodynamic phase)
- Entity profiles · /country/{slug} public teaser - display regime badge only; institutional full view shows thermodynamic phase
- Homepage scanner · HeroGlobalScanner lenses (live display regime for countries); GFS lens shows thermodynamic phase
- Mandate pages · Hero proof panel - MandateHeroProofPanel (GFS thermodynamic phase)
- Case studies · /case-studies/* - SealedCaseStudyRichView, FeaturedCaseCard
- Country explorer · /countries - phaseIndicator from display regime (classifyRegime on NII x 20), not score_runs.phase
- Readout exports · NiiExportScoreBlock, PrimaryReadoutHero (institutional readout - thermodynamic phase)
Enterprise endpoints
Watchlists, org alerts, weekly signal PDFs, and briefing generation live behind institutional workspace auth - same scores, delivered through portal routes after agreement. Request access for the full integration map.