Data
Take the numbers with you.
Every series behind the dashboard, downloadable. No signup, no API key, CORS open. If you publish from these files, the license column tells you what attribution each one expects; when in doubt, “data: straits.live” with a link is always enough for the computed series.
- Daily transits
Daily rows, weekly IMF publish
CSV
IMF PortWatch daily transit history for the strait (chokepoint6), from 2025-02-28 onward. This is the series the big prediction-market reopening contracts resolve on. The pre-crisis baseline on /status (transits.baseline) is the median of the 2025-02-28 to 2026-02-27 rows, so you can reproduce it from this file. Date, total, tanker, cargo. A readable day-by-day table is at /how-many-ships-passed-through-the-strait-of-hormuz-today.
Free to use · underlying data © IMF PortWatch, cite IMF when republishing
- Hormuz Index history
5-minute, last 7 days
CSV
Both composites (Crisis Pressure and Escalation Forecast) joined on timestamp, with band labels. Append ?granularity=daily for the daily open/close/min/max history, which starts on 3 June 2026 (the index began on 21 May 2026, and there are no daily rows before 3 June). Versioned methodology at /methodology.
CC0, our own derived work, no attribution required
- Status snapshot
Live, one row per poll
CSV
One-row snapshot of the current dashboard state. Re-poll on a schedule to build your own history. Column order is stable; new columns are appended. events_recent_count is the length of the internal events fetch, capped at 60 rows after dedup, not a count of all recent events, and it counts headlines: several outlets can report one incident. events_recent_stories, appended 8 October 2026, groups the same rows into stories. tehran_rate_basis is direct for a quoted dollar rate, or cross-aed when the source is not quoting the dollar and tehran_toman_per_usd is implied from the dirham rate at the 3.6725 peg. transits_provisional is true while the newest PortWatch row is within 3 days of today and can still be revised; transits_ma7 is the 7-day mean of daily transits ending on transits_asof_date (empty when those 7 days are not contiguous). ships_stranded counts every vessel seen holding position in the strait window, including ships at berth at regional ports. ships_stranded_offshore, appended 7 October 2026, leaves out vessels within 25km of a working port and is the narrower figure the site's own text quotes. brent_usd and wti_usd are front-month futures prices, with one exception: when the futures feed has been stale for over 2 hours, they carry the EIA daily spot close instead, which can sit $20 or more off futures. brent_basis, appended 8 October 2026, says which: futures or eia-spot. ais_dark_tankers is a floor on tankers we stopped receiving, not a count of evasions, and ais_dark_vessels_tracked is a cumulative all-time, all-vessel-type total, not the population behind that count, so do not divide one by the other. ais_dark_eligible_tankers is that population (the screened tankers), ais_dark_ambient_rate is the share of eligible non-tankers that went dark on the same test, ais_dark_expected is the dark-tanker count that rate predicts, and ais_dark_significant is true only when ais_dark_tankers clears it; all four were appended 16 October 2026. insurance_multiple is a hand-authored quote: insurance_authored_at says when a person last changed it, and insurance_figures_stale (both appended 16 October 2026) turns true after 30 days, when insurance_multiple goes empty. ships_stranded is the half-hourly rollup, while ships_anchored and ships_stopped come from the live positions, so anchored plus stopped need not equal stranded.
CC0 for the computed verdict and metrics
- Oil prices
Best-effort hourly, since 2026-05-05
CSV
Brent and WTI front-month futures history, timestamped. Sampling has gaps over weekends and whenever the collector is offline. At a contract roll the price can step several dollars in a steep curve with no market move behind it; check brent_symbol and wti_symbol before reading a step as a move. There is also a hole from 2026-05-16 to 2026-05-26 with no rows: daily-spot fallback rows that sat in that window were removed because they are not futures prices.
Free to use · attribution requested
- War events
As indexed
CSV
Indexed strikes, ship incidents, closures, and negotiations, with a source URL per row. This is the 60 most recent indexed headlines, usually one to two days of them, not an archive. Several outlets reporting one incident appear as separate rows. The lat and lng columns are empty: events are not geolocated.
Free to use · per-row sources cited inline
- Live snapshot
60-second cache
JSON
Every live indicator in one bundle: verdict, transits, Brent, insurance, Hormuz Index summary, carriers, events. The recommended machine entry point.
CC0 for the computed verdict and metrics
- Hormuz Index
5-minute
JSON
Current reading with per-component breakdown. Append ?history=24h, 7d, or 30d for the time series, nested under indices.<name>.history in the response.
CC0, our own derived work
- Daily transits
Daily rows, weekly IMF publish
JSON
The latest 365 days of the series in transits.csv (the CSV runs from 2025-02-28), with the full vessel-type and capacity breakdown on the latest record. The 365-row cap leaves out the earlier days, including most of the pre-crisis window behind the baseline, so use the CSV to reproduce it.
Free to use · underlying data © IMF PortWatch
GitHub mirror
Every dataset here is also mirrored to a public GitHub repository, refreshed daily, for researchers and reproducible citation.
Cite this dataset
Plain text:
Straits (2026). Strait of Hormuz Crisis Dataset. https://straits.live/data
BibTeX:
@misc{straits_hormuz_data,
title = {Strait of Hormuz Crisis Dataset},
author = {{Straits}},
url = {https://straits.live/data},
year = {2026},
note = {Accessed via straits.live/data; mirror at github.com/jasonhjohnson/strait-of-hormuz-data}
}Premium API
For AI agents and pipelines that need more than these files: machine-payable endpoints with the full vessel manifest, single-vessel dossiers, hourly history capped at one year with actual depth growing daily, bulk export, a one-call snapshot, the daily brief as structured JSON, real-time streaming, and threshold-alert webhooks, priced per request and settled over the x402 protocol. No key, no account.
Reader-funded
Every file on this page is free to download and stays free. Straits runs on about $83 a month. No ad networks; readers are the only funding. One-time, by card or in XRP; no account, no recurring charge.
Running costs: about $83 a month. No ad networks; readers are the only funding