IMF PortWatch
IMF PortWatch
IMF PortWatch, built with the University of Oxford, estimates daily port activity and chokepoint transit from AIS vessel-tracking signals on about 90,000 ships. The underlying ArcGIS feature layers (Daily Port Activity and Daily Chokepoints Data, among others) can be queried over a keyless ArcGIS REST API or downloaded directly; the platform also overlays port and chokepoint disruptions linked to storms, conflict and other hazards.
Required Attribution:
Include a citation crediting the source, e.g. "© IMF" with the title and URL.
Coverage
Daily port-call counts, capacity by vessel type and preliminary trade-volume estimates for 2,065 ports, plus daily transit calls and trade estimates for 28 major chokepoints, both updated weekly on Tuesdays at 9am ET. The Daily Chokepoints Data layer's most recent record was dated 2026-10-25 when queried on 2026-11-04, about ten days behind the check date. Disruption overlays draw on GDACS natural-hazard alerts and other reported events.
Verdict
This is a global port-activity and chokepoint-transit signal derived from AIS, useful for tracking trade-flow anomalies, congestion and disruption risk around named ports and straits without processing raw AIS. The figures are modeled estimates from vessel movements, not customs data, and the weekly Tuesday refresh can lag by more than the nominal cadence. IMF's Copyright and Usage terms require permission to copy or download IMF content "in any systematic way," ask for a citation when reusing IMF content, and require emailing copyright@imf.org before any commercial reuse of IMF Data.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Load IMF PortWatch daily port-activity data into pandas and Parquet. Checked against the provider's documentation on Nov 4, 2026.
Access
- No account or key. The ArcGIS feature layer returns JSON over HTTPS.
Request
curl 'https://services9.arcgis.com/weJ1QsnbMYJlCHdG/arcgis/rest/services/Daily_Ports_Data/FeatureServer/0/query?where=1%3D1&outFields=*&returnGeometry=false&resultRecordCount=5&f=json'Format
ArcGIS FeatureServer JSON: a fields array (name, type, alias) and a features array of {attributes: {...}} records; date is esriFieldTypeDateOnly.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""IMF PortWatch Daily_Ports_Data sample -> pandas -> Parquet. No key.
Uses the public ArcGIS FeatureServer. Prefer a simple where=1=1 + outFields=*
query; some ArcGIS statistics/orderBy query shapes return a JSON error object
with HTTP 200 on these PortWatch tables.
"""
import requests
import pandas as pd
URL = (
"https://services9.arcgis.com/weJ1QsnbMYJlCHdG/arcgis/rest/services/"
"Daily_Ports_Data/FeatureServer/0/query"
)
params = {
"where": "1=1",
"outFields": "*",
"returnGeometry": "false",
"resultRecordCount": 5,
"f": "json",
}
r = requests.get(URL, params=params, timeout=60)
r.raise_for_status()
payload = r.json()
if "error" in payload:
raise RuntimeError(f"ArcGIS error: {payload['error']}")
features = payload.get("features") or []
df = pd.json_normalize([f.get("attributes", {}) for f in features])
df.to_parquet("imf_portwatch_ports_sample.parquet", index=False)
print(len(df), "port-day rows; sample:", df.iloc[0]["portname"], "on", df.iloc[0]["date"])
Run by us on 2026-11-04 (python 3.13.5 | pandas 3.0.6 | pyarrow 26.0.1 | requests 2.34.2). Result: 5 port-day rows; sample: Tsuruga on 2019-01-01
Limits
- Rate limits: Not stated.
- Prefer simple where=1=1 and outFields=* queries; some ArcGIS statistics or orderBy query shapes return a JSON error object with HTTP 200 on these PortWatch tables.
Quirks
- Daily_Ports_Data and Daily_Chokepoints_Data are hosted as ArcGIS tables (no geometry) on services9.arcgis.com under the IMF org weJ1QsnbMYJlCHdG.
- Always check the JSON body for an ArcGIS error object even when HTTP status is 200 before reading features.
Terms and attribution
- IMF's Copyright and Usage terms require permission to copy or download IMF Content "in any systematic way" and a citation when reusing it.
- Email copyright@imf.org before any commercial reuse of IMF Data.
Sources
- https://portwatch.imf.org/pages/data-and-methodology: “Our database includes 2065 ports and 28 major chokepoints globally.”
- https://www.imf.org/en/about/copyright-and-terms: “IMF written permission must be obtained for other uses, including: Copying or downloading IMF Content in any systematic way.”
- https://www.imf.org/en/about/copyright-and-terms: “For any potential commercial reuse of IMF Data, email copyright@imf.org to request permission.”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer