Strait of Hormuz Ship Monitor API
Free AIS monitoring API with no key: live ship counts, strait crossings by direction and estimated oil export volumes through the Strait of Hormuz. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Strait of Hormuz Ship Monitor API?
The Strait of Hormuz Ship Monitor is a free, key-free API tracking commercial shipping through the world's most important oil chokepoint. It reports ship counts by zone, crossings by direction and ship category, and an estimate of crude oil barrels exported over a chosen time window.
Roughly a fifth of global oil supply passes through a waterway barely 21 nautical miles wide at its narrowest, which makes traffic through the Strait of Hormuz a closely watched economic indicator. This service polls AIS every thirty minutes across the Persian Gulf and Gulf of Oman, detects crossings by watching vessels transit between defined zones, and aggregates the result into figures a dashboard can consume directly.
The `oil_export_barrels` figure deserves care. It is an estimate derived from vessel class and draught rather than a measurement of cargo, so it is useful as a trend line and misleading as an absolute. The `outbound_iran`, `outbound_oman` and `outbound_unidentified` split is similarly inferred from the transit path. Read `last_poll` on every response: with a thirty-minute cycle, a figure can be nearly half an hour old, and history is retained for ninety days.
Quick facts
- Base URL
https://hormuz.data-tracking.net/api- Authentication
- No key or account for the public JSON endpoints.
- Rate limit
- No published quota. The underlying data refreshes every thirty minutes, so polling more often returns the same numbers.
- Pricing
- Free.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Strait of Hormuz Ship Monitor API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch 24-hour traffic and oil flow summary for the strait
GET https://hormuz.data-tracking.net/api/summary?hours=24
curl 'https://hormuz.data-tracking.net/api/summary?hours=24'const res = await fetch("https://hormuz.data-tracking.net/api/summary?hours=24");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://hormuz.data-tracking.net/api/summary?hours=24", timeout=20)
res.raise_for_status()
print(res.json()){
"gulf_of_oman_ships": 268,
"in_strait": 31,
"inbound": 11,
"last_poll": "2026-08-21T07:52:17+00:00",
"oil_export_barrels": 521107,
"oil_export_crude_barrels": 521107,
"oil_export_petrochem_barrels": 0,
"outbound": 10,
"outbound_iran": 7,
"outbound_oman": 0,
"outbound_unidentified": 3,
"period_hours": 24,
"persian_gulf_ships": 909,
"total_crossings": 21,
"total_ships": 1177
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
hours | query | Optional | Window in hours for `/summary`, `/crossings` and `/crossings/by_type`. 24 |
days | query | Optional | Window in days for the daily series endpoints, up to the 90-day retention limit. 30 |
(crossings) | path | Optional | `/crossings` lists individual transits with vessel details rather than totals. crossings |
(ships) | path | Optional | `/ships` returns active vessels with current positions from the latest poll. ships |
(by_zone) | path | Optional | `/ships/by_zone` breaks the fleet down by zone and category. by_zone |
(directory) | path | Optional | `/ships/directory` is a searchable list of every tracked vessel. directory |
Response fields
total_shipsinteger- Vessels seen in the monitored area during the window.
persian_gulf_ships / gulf_of_oman_shipsinteger- Fleet split by zone. The zones are defined by fixed latitude and longitude bounds.
in_straitinteger- Vessels inside the strait itself at the latest poll.
total_crossingsinteger- Completed transits detected in the window.
inbound / outboundinteger- Crossings by direction — into and out of the Persian Gulf.
outbound_iran / outbound_oman / outbound_unidentifiedinteger- Outbound transits attributed by route. The unidentified bucket is the honest residual.
oil_export_barrelsinteger- Estimated crude barrels exported in the window, inferred from vessel class and draught rather than measured.
oil_export_crude_barrels / oil_export_petrochem_barrelsinteger- The same estimate split between crude and petrochemical cargoes.
last_pollstring- Timestamp of the most recent AIS collection. Data can be up to thirty minutes old.
period_hoursinteger- The window the figures cover, echoed back.
What you can build with the Strait of Hormuz Ship Monitor API
- Track tanker traffic through a strategically critical chokepoint
- Chart daily crossing counts against oil price movements
- Monitor whether traffic drops during regional tension
- Break down shipping by vessel category for market analysis
- Feed a geopolitical or commodities dashboard with live maritime data
Common errors and how to fix them
Figures have not changed since the last call
Collection runs every thirty minutes.
Fix: Check `last_poll` before treating a repeated number as new. Polling faster than the collection cycle just returns the same snapshot.
CORS error in the browser
The API sends no Access-Control-Allow-Origin header.
Fix: Call it from your server. Since the data refreshes only half-hourly, a cached server-side copy is the right architecture anyway.
Oil volume looks implausible
It is an estimate from vessel class and draught, not a cargo manifest.
Fix: Use it as a relative indicator over time rather than an absolute figure, and say so wherever you display it.
No data beyond 90 days
History is retained for ninety days only.
Fix: Archive the daily series yourself if you need a longer baseline. There is no backfill endpoint.
Strait of Hormuz Ship Monitor API — frequently asked questions
Is the Strait of Hormuz API free?
Yes, the public JSON endpoints need no key or account. Data is collected every thirty minutes and retained for ninety days.
How is the oil export figure calculated?
It is inferred from vessel class and reported draught as ships transit outbound, not read from any cargo declaration. Treat it as a directional indicator rather than a measurement — the trend is meaningful, the absolute number much less so.
Why does it matter how many ships cross the strait?
Around a fifth of the world's oil supply moves through it, and the navigable channel is only a couple of miles wide in each direction. Sustained changes in transit counts are watched closely as an early signal in energy markets.
How current is the data?
AIS is collected every thirty minutes, so any figure can be up to half an hour old. Every response carries `last_poll` so you can show the actual age rather than implying it is live.
Tools that pair with this API
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
Percentage Change Calculator
Work out the percentage increase or decrease between an old and a new value. See the absolute change and whether it went up or down, instantly and privately.
Timestamp Converter
Convert timestamps to human-readable dates and dates back to timestamps. Auto-detects seconds vs milliseconds, shows local, UTC and ISO 8601 formats.
Strait of Hormuz Ship Monitor is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.