Next free-source hunt
We check for new free data every weekday.
Datasets / OSINT
portwatch.imf.org/

IMF PortWatch

Freeauth: noneCustom#osint#maritime#geospatial#time-series#ais✓ verified Nov 4, 2026

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.

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.

Raw skill file (/skills/imf-portwatch.md)Also in our MCP server: call get_ingestion_skill with {"slug": "imf-portwatch"}.

Access

  • No account or key. The ArcGIS feature layer returns JSON over HTTPS.

Request

bash
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.

python
"""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

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