API
Every Straits feed, free to query.
No key, no quota, no paywall. CORS is open. Cache headers are set so a polite caller never overruns the upstream feed. 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.
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": 94, "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.
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 }
]
}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/…" }
]
}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.
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 (records before 2026-02-28) used as the stable peacetime anchor.
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": 94
}
}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[])
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.
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.
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, stopped, transiting) and vessel type.
Anchored + stopped count inside the Persian Gulf bounding box, hourly. Powers the homepage sparkline.
Querylimit (default 168 = 7 days hourly, max 720), since (ISO)
Hourly cross-tab of vessels in transit by AIS ship_type (tanker, cargo, military, other). Pairs with /api/v1/stranded for a full picture of the strait's vessel mix over time.
Querylimit (default 168 = 7 days hourly, max 720), since (ISO)
Tankers that have stopped broadcasting AIS inside the strait core area. Filters: type === tanker, totalSightings ≥ 50, last position in lat 24–28 / lng 55–58, last seen 3–24 hours ago. Strict, biased toward false-negatives. Multiple plausible causes (equipment failure, GPS spoofing, evasion, leaving bbox).
OFAC SDN cross-join
Cross-join every 15 minutes; OFAC list refreshed weekly
Vessels currently visible on AIS in the strait window whose names match an OFAC SDN entry. Match strategy: IMO when present, normalised name otherwise. False positives possible on common names; treat as indicative.
Per-vessel manifest compiled across the Gulf and Cape routes. Identity-only: no real-time lat/lng. Used as the fallback list when live AIS goes silent. ?flagged=1 returns the subset matched against the OFAC SDN list (IMO-based join).
Queryflagged (1 / true for OFAC-matched only), region (hormuz | cape), limit (default 500, max 500)
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.
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"
}
}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.
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.
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://…" }
]
}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.
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.
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.
Bare-minimum payload polled by the homepage ticker every 60 seconds: Brent price, 24-hour change, transit and stranded counts, plus a verifiedAt anchor.
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.
Backed by EIA Weekly Petroleum Status Report. Carries the 4-week change so spike-vs-baseline reads correctly.
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.
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.
Downloads catalogueEvery CSV/JSON download on one page with per-file licensing. Start here for spreadsheet or notebook work.
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.
Daily transits CSVFull IMF PortWatch daily transit history, the series the prediction-market reopening contracts resolve on (7-day average vs 60).
Hormuz Index CSVCrisis Pressure + Escalation Forecast history at 5-minute cadence, last 7 days, with band labels. CC0.
Oil prices CSVBrent + WTI history, suitable for spreadsheet ingest.
Events CSVIndexed war and diplomacy events with sourceUrl per row.
Events RSSIndexed strikes, ship incidents, closures, and negotiations as RSS 2.0.
Status flips RSSOne item per change in the operational verdict (open ↔ restricted ↔ closed). Designed for press-monitor ingestion.
Sanctioned vessels RSSAIS-observed vessels currently matched against the OFAC SDN list, newest match first.
Daily briefs RSSDated daily briefs on the Strait of Hormuz crisis. Each entry stays online unedited and is citable by date.
Embed widgetCopy-paste iframe with live status badge for journalists and bloggers.
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
Every endpoint 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.
June: 2.4 of 30 server days covered by readers