Skip to content
Straits

API

The live picture, free. Depth, metered.

The current headline state is free to query with no key: verdicts, prices, counts, the Hormuz Index, and shallow history. CORS is open, and cache headers are set so a polite caller never overruns the upstream feed. Full history, the per-vessel manifest, and the other intelligence feeds are machine-payable per request. If you only need one endpoint, start with /status; it bundles every live indicator the homepage renders.

License: the indicators and metrics we compute (verdicts, day counts, derived ratios, normalized aggregates, baselines, synthesis prose, methodology) are released under CC0 1.0 (public domain). Use them however you like: republish, redistribute, remix, no attribution required (credit is appreciated). The upstream third-party datasets we ingest (AIS broadcasts via AISStream, EIA petroleum series, IMF PortWatch transit counts, OFAC SDN entries, and the supplementary feeds disclosed on the methodology page) each carry their own terms. We don’t relicense those; if you plan to redistribute raw upstream data, check the original publisher’s terms first.

Snapshot

One bundle, every live indicator. The recommended starting point.

/status

Canonical snapshot

30s edge cache

All-in-one bundle: verdict, live oil prices, IMF PortWatch daily transit count + throughput, AIS concurrent presence overlay, insurance multiple, trade impact, carrier suspensions, pipeline bypass, SPR, gas, and a per-section dataHealth chip. Powers the embed widget; recommended starting point for newsroom integrations.

curl https://straits.live/status

{
  "asOf": "2026-06-10T16:50:00Z",
  "status": "restricted",
  "verdict": { "status": "closed", "short": "No", "long": "…", "basis": "carriers" },
  "brent": 93.99, "wti": 91.04, "change24h": 4.25,
  "transits": { "count": 2, "baseline": 88, "throughputPct": 2, "asOfDate": "2026-06-07" },
  "insurance": { "multiple": 8, "vlccPremiumLow": 125000, "vlccPremiumHigh": 2500000 },
  "hormuzIndex": { "crisisPressure": { "value": 94 }, "escalationProbability": { "value": 68 } },
  "carrierSuspensions": [ … ],
  "dataHealth": { "ships": { "source": "live" }, "oil": { "source": "live" }, … }
}

Markets & risk

Prices, premiums, odds: what the market is doing right now.

/api/v1/oil

Brent and WTI time-series

Underlying feed every 10 minutes; 5-min edge cache

Rolling Brent and WTI prices from intraday continuous futures (Yahoo Finance chart data, EIA daily backstop). Companion to /data/oil.csv for programmatic consumers.

Querylimit (default 168 ≈ 7 days hourly, max 2000), since (ISO timestamp)

curl 'https://straits.live/api/v1/oil?limit=2'

{
  "asOf": "2026-06-10T17:23:00Z",
  "count": 2,
  "source": "Intraday Brent / WTI continuous futures …",
  "points": [
    { "t": 1781110302601, "iso": "2026-06-10T16:51:42Z", "brent": 93.99, "wti": 91.06 },
    { "t": 1781112144785, "iso": "2026-06-10T17:22:24Z", "brent": 94.12, "wti": 91.20 }
  ]
}

/api/v1/markets

Prediction-market odds

Underlying feed every 15 minutes

Top Hormuz / Iran-conflict / oil-shock contracts from Kalshi (api.elections.kalshi.com) and Polymarket (gamma-api.polymarket.com). Strict keyword filter to avoid sweeping in election or macro contracts.

Querylimit (default 20, max 50), venue (kalshi | polymarket)

curl 'https://straits.live/api/v1/markets?venue=polymarket&limit=1'

{
  "asOf": "2026-06-10T17:23:00Z",
  "count": 1,
  "markets": [
    { "id": "polymarket_665374", "venue": "polymarket",
      "title": "Will the U.S. invade Iran before 2027?",
      "probability": 0.175, "volumeUsd": 35039246.83,
      "closeAt": "2026-12-31T00:00:00Z",
      "sourceUrl": "https://polymarket.com/…" }
  ]
}

/api/v1/gas

US gas prices

Refreshed hourly; upstream publishes daily

Per-state regular-grade averages plus a national mean computed across the 50 states + DC.

Querystates (1 / true to include the per-state list; default omitted for payload size)

Throughput

Authoritative daily transit count from IMF PortWatch (chokepoint6 dataset), plus a comparative table across the five global energy chokepoints and two coarser fallback aggregates used when AIS is silent.

/api/v1/transits

IMF PortWatch daily transits

Underlying data publishes weekly (Tue 9 AM ET); re-fetched daily

The dashboard's authoritative throughput figure. Carries the per-type breakdown (tanker, cargo, container, dry bulk, general cargo, Ro-Ro), capacity in deadweight tonnage, the trailing 30-day rolling baseline median, and a separate pre-crisis baseline median (fixed window: the final pre-crisis year, 2025-02-28 to 2026-02-27) used as the stable peacetime anchor. Not a programmer? The same series is a readable day-by-day table at /how-many-ships-passed-through-the-strait-of-hormuz-today.

Queryhistory (1 / true to include chokepointTransitsHistory rows), limit (default 90, max 365)

curl https://straits.live/api/v1/transits

{
  "asOf": "2026-06-10T17:23:00Z",
  "methodology": "IMF PortWatch daily vessel transit count …",
  "latest": {
    "date": "2026-06-07",
    "nTotal": 2, "nTanker": 1, "nCargo": 1, "nContainer": 0,
    "capacity": 68817,
    "baselineMedian": 4,
    "preCrisisBaselineMedian": 88
  }
}

/api/v1/chokepoints

Five-chokepoint comparison

IMF PortWatch daily

Side-by-side daily counts for Hormuz, Bab el-Mandeb, Suez, the Cape of Good Hope, and Malacca, sorted Hormuz first, then by nTotal / preCrisisBaselineMedian ascending so the most-disrupted route rises to the top.

Queryhistory (1 / true to include per-chokepoint daily history[])

/api/v1/hormuz-snapshot

Hormuz fallback aggregate

Refreshed hourly

Sum of "ships in port" plus 24-hour arrivals and departures across the five Gulf ports adjacent to the strait. Coarser than AIS but survives AISStream outages. A live snapshot only, no daily history; for day-by-day transit counts use /api/v1/transits or the readable table at /how-many-ships-passed-through-the-strait-of-hormuz-today.

/api/v1/cape-snapshot

Cape of Good Hope reroute aggregate

Refreshed every 1–2 hours

Sum of arrivals, departures, and "ships in port" across four South African ports (Cape Town, Durban, Port Elizabeth, Saldanha Bay). Tracks rerouting pressure as tankers avoid the Gulf.

Live AIS & vessels

AISStream-derived overlay: live presence, port congestion, AIS-gap detection, the OFAC × AIS sanctioned-vessel join, and a fallback vessel manifest when AIS is silent. Persian Gulf bounding box.

/api/v1/ports

Port congestion

Computed every 30 minutes

Live counts at Fujairah, Sohar, Bandar Abbas, and Jebel Ali derived from AISStream positions inside a 10–12 km radius. Broken down by status (anchored, transiting) and vessel type.

/api/v1/stranded

Stranded-vessel time-series

Hourly buckets, written every 30 minutes

Anchored-vessel count inside the Persian Gulf bounding box, hourly. Powers the homepage sparkline.

Querylimit (default 168 = 7 days hourly, max 720), since (ISO)

/api/v1/transits-by-type

Transits by vessel type

Hourly buckets, written every 30 minutes

Hourly cross-tab of vessels in transit by vessel type (tanker, cargo, military, other). Pairs with /api/v1/stranded for a full picture of the strait's vessel mix over time. The response carries a methodology field covering how type is resolved and why the military count is a floor.

Querylimit (default 168 = 7 days hourly, max 720), since (ISO)

/api/v1/ais-gaps

Tankers gone dark (count)

Computed every 30 minutes

Free summary: the count of tankers gone dark inside the strait core area plus the 7-day baseline. Filters: type === tanker, totalSightings ≥ 50, last position in lat 24–28 / lng 55–58, last seen 3–24 hours ago. The per-vessel dark-fleet identities are in the premium vessel-intelligence API.

/api/v1/sanctioned-vessels

OFAC SDN cross-join (count)

Cross-join every 15 minutes; OFAC list refreshed weekly

Free summary: the count of vessels visible on AIS in the Persian Gulf window whose identity matches an OFAC SDN entry (IMO / normalised-name join; false positives possible). The per-vessel manifest with sanction programs, flag, and call sign is in the premium vessel-intelligence API.

/api/v1/vessels

Vessel manifest (counts)

Refreshed every 2 hours

Free summary: how many vessels the scraper has observed in the last 3 hours across the Gulf and Cape routes, broken down by corridor and ship type. The per-vessel manifest with identities is in the premium vessel-intelligence API. ?flagged=1 counts the OFAC-SDN-matched subset.

Queryflagged (1 / true for OFAC-matched only), region (hormuz | cape)

Macro & risk pricing

Curated weekly indicators that move slower than oil price but matter more for "is the strait open in any commercial sense?": war-risk insurance, world-oil-at-risk, and the Joint War Committee listed-areas circular.

/api/v1/insurance

War-risk insurance index

Curated weekly

Multiple over the peace-baseline VLCC premium, the current premium band in USD per voyage, and the list of P&I clubs and war-risk underwriters that have publicly withdrawn cover, imposed quotas, or refused renewals.

curl https://straits.live/api/v1/insurance

{
  "asOf": "2026-06-10T17:23:00Z",
  "methodology": "War-risk insurance multiple compares …",
  "insurance": {
    "multiple": 8,
    "vlccPremiumLow": 125000,
    "vlccPremiumHigh": 2500000,
    "withdrawnClubs": ["Gard", "Skuld", "North Standard", …],
    "sourceName": "Lloyd's Joint War Committee"
  }
}

/api/v1/trade-impact

World oil & LNG at risk

Curated weekly

EIA/IEA shares of global seaborne oil and LNG that transit the strait, a curated estimate of the daily economic cost, the most-affected importing economies, and the extra voyage days of the Cape reroute.

/api/v1/jwc

JWC Listed Areas

Re-checked weekly; on circular release otherwise

Marine war-risk high-risk-areas designations as published in the industry circular, plus a flag noting whether the latest revision mentions the Arabian Gulf. Drives war-risk premium loads at most London-market underwriters.

Carriers & bypass routes

Top container carriers' Strait of Hormuz posture and pipeline routes that move crude out of the Gulf without transiting the strait.

/api/v1/carriers

Carrier suspensions

Curated weekly

Top global container carriers (ranked by TEU capacity) and their current posture: suspended, rerouting, limited, or transiting. Includes vessels-trapped count, combined trapped-TEU capacity, and the per-carrier surcharge in USD per TEU. ≥5 carriers suspended or rerouting drives the dashboard's "effectively closed" verdict.

curl https://straits.live/api/v1/carriers

{
  "asOf": "2026-06-10T17:01:00Z",
  "count": 9,
  "carriers": [
    { "id": "msc", "carrier": "MSC", "rank": 1, "status": "rerouting",
      "surchargeUsdPerTeu": 1200, "vesselsTrapped": 15, "trappedTeu": 109000,
      "notes": "…", "sourceName": "MSC · Newsroom", "sourceUrl": "https://…" }
  ]
}

/api/v1/pipelines

Pipeline bypass

Curated weekly

Petroline (Saudi Arabia → Yanbu) and Habshan-Fujairah (UAE → Gulf of Oman) are the main lines that move crude out of the Gulf without transiting Hormuz. Each row carries nameplate capacity in BPD and current utilisation percent.

Iran financial stress

Open-market USD/IRR rate as a proxy for civilian-side pressure inside Iran.

/api/v1/iran-rate

Tehran open-market USD/IRR

Refreshed hourly

Sell/buy rates in both Toman (1 Toman = 10 Rial) and Rial, plus 24-hour and 7-day percentage deltas off the midRial.

Editorial briefs

Dated daily briefs: AI-assisted when an API key is configured, curated fallback otherwise.

/api/v1/briefs

Daily briefs archive

Written daily at 12:00 UTC

JSON archive of every brief written by the dailyBrief Cloud Function, keyed by UTC date. Each brief carries 3–6 bullets, a short summary, the day's Brent price plus 24-hour delta, and the day's transit count.

Querydate (YYYY-MM-DD for a single brief; 404 if missing), limit (default 30, max 120)

Real-time deltas

Lightweight polling endpoints for client-side updaters and "while-you-were-away" experiences.

/api/v1/tick

Lightweight tick

30s edge cache

Bare-minimum payload polled by the homepage ticker every 60 seconds: Brent price, 24-hour change, transit and stranded counts, plus a verifiedAt anchor.

/api/v1/since

"While you were away" deltas

60s edge cache

Compares the current state to a caller-provided anchor timestamp. Returns a material flag once any of: ≥24h elapsed, |Brent %| ≥ 1, ≥1 event, ≥1 carrier posture change, |transit delta| ≥ 3, or |stranded delta| ≥ 5.

Queryat (required ISO timestamp)

Inventories & reserves

The slow-moving counter-pressure to a fast-moving disruption.

/api/v1/spr

US Strategic Petroleum Reserve

Re-fetched daily 11:00 ET; EIA publishes weekly

Backed by EIA Weekly Petroleum Status Report. Carries the 4-week change so spike-vs-baseline reads correctly.

/api/v1/cushing

Cushing crude stocks

Re-fetched daily 11:30 ET; EIA publishes weekly

Cushing, Oklahoma is the WTI delivery hub. Inventory swings here track the North-American crude balance independent of the Gulf-Coast / SPR picture; pairs with the Brent–WTI spread to indicate whether disruption is global or American-specific.

Events

Indexed strikes, ship incidents, closures, and negotiations.

/api/v1/events

War and diplomacy timeline

Underlying feed every 15 minutes

Indexed strikes, ship incidents, closures, and negotiations. Mirrors the curated Firestore record so consumers see the same source attribution as the homepage timeline. Companion to /data/events.csv and /feed.xml.

Querysince (ISO), type (strike | ship_incident | closure | negotiation), limit (default 50, max 200)

curl 'https://straits.live/api/v1/events?type=strike&limit=2'

{
  "asOf": "2026-05-27T14:30:00Z",
  "events": [
    { "id": "ev_2026-05-26_…", "type": "strike", "severity": "high",
      "occurredAt": "2026-05-26T11:20:00Z",
      "title": "Strike reported on Bandar Abbas refinery",
      "sourceName": "Reuters", "sourceUrl": "https://…" }
  ]
}

Other formats.

For workflows that don’t want JSON: spreadsheet imports, RSS readers, copy-paste embed.

/data

Downloads catalogueEvery CSV/JSON download on one page with per-file licensing. Start here for spreadsheet or notebook work.

/data/status.csv

Status snapshot CSVOne-row snapshot of the current dashboard state: verdict, transits, AIS-dark count, Brent, insurance multiple, JWC, Tehran rate, carriers, and data-source health. Re-poll daily to build a history in your spreadsheet. Column order is stable; new columns are appended.

/data/transits.csv

Daily transits CSVFull IMF PortWatch daily transit history, the series the prediction-market reopening contracts resolve on (7-day average vs 60).

/data/hormuz-index.csv

Hormuz Index CSVCrisis Pressure + Escalation Forecast history at 5-minute cadence, last 7 days, with band labels. CC0.

/data/oil.csv

Oil prices CSVBrent + WTI history, suitable for spreadsheet ingest.

/data/events.csv

Events CSVIndexed war and diplomacy events with sourceUrl per row.

/feed.xml

Events RSSIndexed strikes, ship incidents, closures, and negotiations as RSS 2.0.

/status/feed.xml

Status flips RSSOne item per change in the operational verdict (open ↔ restricted ↔ closed). Designed for press-monitor ingestion.

/sanctioned-vessels/feed.xml

Sanctioned vessels RSSAIS-observed vessels currently matched against the OFAC SDN list, newest match first.

/briefs/feed.xml

Daily briefs RSSDated daily briefs on the Strait of Hormuz crisis. Each entry stays online unedited and is citable by date.

/embed

Embed widgetCopy-paste iframe with live status badge for journalists and bloggers.

Premium.

Machine-payable endpoints for AI agents and pipelines, priced per request and settled in USDC over the x402 protocol. No key, no account, no subscription: an unpaid request returns HTTP 402 with the price, your client signs the payment and retries. The free summary tier above stays free; these endpoints add the depth, full history, and per-vessel intelligence the summary withholds.

Roadmap: USDC on Base is the live settlement rail today. Payment in XRP and RLUSD over XRPL x402, the agentic-payments standard Ripple joined the x402 Foundation to back, is being wired in as a second rail.

/api/premium/vessels

Vessel intelligence

$0.02 per request

The live-AIS vessel manifest (MMSI-keyed, with a best-effort flag derived from the MMSI MID), the OFAC-sanctioned vessels currently in the Persian Gulf with program detail, per-vessel risk bands, latest raw AIS positions, the AIS-dark vessel list, and OFAC + UK sanctions reference-list sizes. Per-IMO multi-body sanction detail is in the single-vessel dossier.

/api/premium/history/{feed}

Full-resolution history

$0.01 per request

Feeds: stranded and ais-gaps (hourly, up to a full year; the free windows stop at 30 days and none), index-5min (both Hormuz indices at 5-minute cadence with the pre-rails weighted average, ?days= up to 30), and transits (complete daily PortWatch history, enriched per day with the trailing 7-day moving average, deviation from the pre-crisis baseline, and headroom to the reopening-resolution threshold — the analytics the free raw CSV omits). One contract for all four series.

/api/premium/snapshot

One-call snapshot

$0.02 per request

The entire dashboard state in a single response: verdict, oil, transits, insurance, carriers, pipelines, ports, events, prediction markets, both indices with component audit, and the full daily brief.

/api/premium/brief

Daily brief, structured

$0.01 per request

The AI-assisted situation brief as structured JSON: prose summary, bullets, and the day’s key figures, by date or latest, with archive access. The prose itself is free on /report; this is the stable machine contract.

/api/premium/vessel/{imo}

Single-vessel dossier

$0.02 per request

One vessel by IMO: the unified multi-body sanctions view (every body that lists it — US OFAC and the UK/FCDO list — with the UK row adding owner/operator, flag, tonnage, ship type, year built, and Date Designated), merged identity, per-vessel risk band, and dark-activity (AIS-gap) record. Resolves for IMOs listed by OFAC or the UK, or with a dark-activity record.

/api/premium/export

Bulk history export

$0.25 per request

Every requested series (index-5min, stranded, ais-gaps, transits) at full retained history in one archive, as JSON or multi-section CSV, with the transit series carrying the same per-day analytics (7-day MA, baseline deviation, reopening-threshold headroom) as the per-feed history call. ?feeds= to select, ?format=csv for the download. The read-heavy one-shot alternative to paging the per-feed history endpoint.

/api/premium/stream/session

Real-time stream session

$0.05 per request

POST to buy a short-lived signed token, then open a Server-Sent Events connection at /api/premium/stream?token= to receive ticks, Hormuz Index moves, and events live instead of polling. One payment buys one bounded streaming window.

/api/premium/webhooks

Threshold-alert webhooks

$0.50 per request

POST a target URL to receive a signed webhook whenever the verdict flips, a Hormuz Index band crosses up, or a monitored threshold breaches. One payment funds 30 days or 100 deliveries, whichever comes first.

/api/premium/hormuz/flags

Hormuz flag rollup

$0.01 per request

The flag states of the live-AIS Persian Gulf vessel population ranked by vessel count, each with a per-flag sanctioned tally, plus distinct-flag count and sanctioned share. Flags are derived best-effort from the MMSI MID (ITU-T M.585) and the payload is quality-gated on live AIS. Operators and inbound/outbound direction are omitted, not faked: no operator field is stored and per-vessel transit direction is not tracked.

/api/premium/hormuz/risk-screen

Shadow-fleet risk screen

$0.02 per request

The live-AIS Persian Gulf vessel population as one ranked, compliance-grade screen, worst-first. Every hull carries its risk band and the typed reasons behind it (ofac_sdn, ais_dark, foc_tanker, imo_spoofed) plus which sanctions bodies list it (US OFAC and/or UK/FCDO). A transparent rules engine, not ML, fusing OFAC + UK sanctions, live AIS, AIS-dark gaps, and spoofed-IMO detection that the flag rollup only aggregates and the single-vessel dossier resolves one IMO at a time. counts cover the whole population; the rows are the flagged hulls (high + moderate) by default, ?all=1 adds the cleared low band. Quality-gated on live AIS.

/api/premium/bunker

Bunker & marine-fuel prices

$0.02 per request

Current VLSFO, IFO380, and MGO delivered bunker prices ($/tonne) for Fujairah, benchmarked against Singapore and Rotterdam, plus the derived Fujairah premium over each hub. Fujairah is the world’s #2-3 bunkering hub, just outside the strait and the physical fueling alternative when transit is disrupted, so its spread over the global benchmarks is a physical-commodity read on Hormuz stress that the Brent and insurance signals do not capture. Current snapshot, refreshed every 6 hours.

/api/premium/risk-premium

War-risk premium nowcast

$0.05 per request

A live modeled war-risk insurance multiple (Nx over the peace baseline, on the standard 1x to 16x scale) for moving a tanker through the strait, recomputed every 5 minutes from throughput deviation (IMF PortWatch), the escalation forecast (Polymarket, Kalshi, Manifold, Brent-WTI spread), crude implied volatility (OVX), and event pressure (GDELT, PGSA). The insurance market’s own figure is deliberately kept out of the model, so the number is an independent read; the standing Lloyd’s Joint War Committee multiple is carried alongside as a static reference (it is set manually and rarely changes), not as a live comparator. Also returns a modeled VLCC war-premium band and a confidence that degrades when driver feeds are stale or escalation-market volume is thin. A modeled, AI-assisted situational-awareness indicator, not an insurance quote.

Who buys this

The meter is for workloads the free summary cannot serve on its own:

  • Compliance and sanctions screening. The vessel and single-vessel endpoints return the full manifest with OFAC matches and program detail, keyed by MMSI and IMO, so a screening pipeline can clear or flag a hull without scraping a maritime tracking site or the OFAC list itself.
  • Backtesting and quant research. Full-resolution history and the bulk export return a year of 5-minute index, stranded, AIS-gap, and transit series in one archive, ready to load into a model instead of paging a rate-limited feed for a week.
  • Agent and ops automation. Threshold webhooks, the SSE stream, and the MCP connector let an agent act on a verdict flip or an index band crossing the moment it happens, rather than polling the summary on a timer.

Free vs premium

The exact delta, so you can decide with open eyes. The live headline of every series is free to read on the site and in the summary API; premium buys full history, the per-vessel manifest, and the intelligence the summary withholds.

SeriesFreePremium
Stranded history30 days hourly (/api/v1/stranded)Full year hourly
AIS-gap (dark fleet)Count + 7-day baselineDark-fleet identities + full-year hourly
Vessel manifestCounts by corridor & ship typeFull manifest, identities, raw AIS
Sanctioned vesselsCount onlyFull manifest + OFAC sanction detail
Shadow-fleet risk screenAggregate band counts onlyEvery hull ranked, with reasons + OFAC/UK matches
Index history, 5-min30 days, components, edge-cachedSame window, pre-rails weighted average, never cached
Dashboard state3+ calls, 30-60s edge cacheOne call, never cached
Daily briefSame prose (/api/v1/briefs, /report)Dated JSON contract, never cached

Pricing is deliberately micro. The live picture stays free to read on the site and in the summary API; the meter covers depth, full history, and per-vessel intelligence, so an agent pays a cent for one stable, machine-payable contract instead of stitching and scraping.

Paying from code

Any x402-capable client works, including the LangChain, CrewAI, and MCP payment adapters. Plain JavaScript:

import { wrapFetchWithPayment, x402Client } from '@x402/fetch'
import { registerExactEvmScheme } from '@x402/evm/exact/client'
import { privateKeyToAccount } from 'viem/accounts'

const client = new x402Client()
registerExactEvmScheme(client, {
  signer: privateKeyToAccount(process.env.WALLET_KEY),
})
const payFetch = wrapFetchWithPayment(fetch, client)

const res = await payFetch(
  'https://straits.live/api/premium/snapshot',
)
const data = await res.json()

Payments settle in USDC on Base. A response carries a PAYMENT-RESPONSE header with the on-chain transaction for your records.

MCP connector

Ten of these products are exposed as paid MCP tools (streamable HTTP) at https://straits.live/api/mcp, so an MCP-native agent can add straits.live as a remote connector instead of writing HTTP and wallet code. Tools: hormuz_vessels, hormuz_vessel_dossier, hormuz_risk_screen, hormuz_flags, hormuz_history, hormuz_export, hormuz_snapshot, hormuz_brief, hormuz_bunker, hormuz_risk_premium, same prices as above (the stream and webhook SKUs are HTTP-only). An unpaid call returns the x402 challenge as a JSON-RPC payment-required error; clients built on @x402/mcp sign and retry automatically.

Conventions.

Every JSON endpoint returns a top-level schema URL (the canonical address of the response shape) and an asOf ISO timestamp. Time-series payloads use unix-millisecond keys for chart libraries and a parallel iso string for human inspection. Empty results return a valid envelope with an empty array, never a 404.

When an upstream feed is unreachable, the affected endpoint returns the most recent successful payload with its existing asOf. The /status response surfaces a per-section dataHealth chip so consumers can detect stale-but-served values. Anything older than 24 hours is downgraded to source: "stale".

Attribution is appreciated but not required. If you cite a value, link to the originating source on /methodology; Straits is an aggregator, not the system of record.

Reader-funded

The summary tier in this catalogue is free to query, with no key, no rate card, and no usage cap. If it just saved you a scraping afternoon, a $5 tip covers about a day of the servers that answer it. One-time, by card or in XRP; no account, no recurring charge.

July: 5 of 31 server days covered by readers

Cover a day →

← Back to live trackerMethodology →Press kit →