For developers and AI agents

Sealanes data files and the MCP server

Everything on the Sealanes pages is published as plain JSON on this site, free to read, with the date of the carrier schedules in every file. Sailings, services, ships, carriers and ports are republished every hour under /sealanes/data; the copy that ships with the site is refreshed weekly. The same data is available to MCP clients such as Claude Desktop through a small server in the Airlift repository. Schedules on this page as of Sep 7.

Public files

Paths are relative to https://airliftusa.com. Files are static: fetch them directly, no key needed. Please cache for at least an hour and attribute “Airlift Sealanes” with a link.

Files marked “and hourly” are published twice. The weekly copy under /assets/json/sealanes/ ships with the site and is what the prerendered pages and search engines see. The hourly copy sits at the same path under /sealanes/data/ — /sealanes/data/index.json, /sealanes/data/routes/INMUN-to-USNYC.json and so on — and is regenerated from the carrier schedule feed every hour by a scheduled job on Google Cloud, which writes it to Cloud Storage; it is served through this site at the paths above, so nothing about how you read these files changes. Read the hourly copy first and fall back to the weekly one when it answers with anything that is not JSON (a missing object is served as the site’s HTML shell with a 200) or when its meta.generatedAt is older than the copy you already have. Nothing else moves hourly: the Lane Pulse compares two weekly editions, the IMF PortWatch figures are refreshed weekly at source, and the terminal lists come from the SMDG code list.

FileContentsRefreshed
/assets/json/sealanes/index.jsonEvery port pair with sailing counts, carriers, transit spread and Airlift history; carrier and service rosters; snapshot metadata.weekly, and hourly at /sealanes/data/
/assets/json/sealanes/routes/<ORIGIN>-to-<DESTINATION>.jsonOne port pair: every published sailing with carrier, service string, vessel, voyage, ETD, ETA, transit days, legs; services on the pair; schematic sea line.weekly, and hourly at /sealanes/data/
/assets/json/sealanes/services/<scac-code>.jsonA service string: port pairs, ports called, the observed rotation (ports in median-day order with arrival and departure day offsets and calls seen) and the vessels deployed with sailings and voyages each.weekly, and hourly at /sealanes/data/
/assets/json/sealanes/vessels/<vessel-slug>.jsonA vessel: sailings, carriers, strings, every dated port call in the window (ETA, ETD, service, voyage, pairs), the next call after the snapshot date, and AIS particulars when heard.weekly, and hourly at /sealanes/data/
/assets/json/sealanes/vessels-index.jsonRoster of vessels with their own page.weekly, and hourly at /sealanes/data/
/assets/json/sealanes/carriers/<carrier-slug>.jsonA carrier: port pairs, strings, vessel count.weekly, and hourly at /sealanes/data/
/assets/json/sealanes/ports/<UNLOCODE>.jsonA port: UN/LOCODE facts and CBP Schedule D code, services calling, carriers, vessels, port pairs from and to it, and every scheduled arrival and departure read from the cohort's sailings, plus the IANA time zone and the nearby ports.weekly, and hourly at /sealanes/data/
/assets/json/sealanes/terminals/<UNLOCODE>.jsonA port's container terminals from the SMDG Terminal Code List (terminal code, facility code, name, operator, coordinates, website, address), the port's IANA time zone with its UTC offset, and the nearby ports that could be used instead with the distance and the number of carrier services calling both.weekly (terminal list refreshed from SMDG on demand)
/assets/json/sealanes/ports/<UNLOCODE>.pairs.jsonPort pairs starting or ending at a port (the compact file the port-code pages embed).weekly, and hourly at /sealanes/data/
/assets/json/sealanes/portwatch/chokepoints.jsonIMF PortWatch daily transit calls for the 28 maritime chokepoints over 90 days, with seven- and 28-day averages for all ships and for container ships, the 90-day baseline and the official advisory desks for each area.weekly
/assets/json/sealanes/portwatch/ports/<UNLOCODE>.jsonIMF PortWatch daily container-ship calls at a Sealanes port over 90 days, with seven- and 28-day averages, the 90-day baseline and how the port was matched onto the PortWatch port list.weekly
/assets/json/sealanes/portwatch/routes.jsonWhich of the 28 chokepoints each port pair’s schematic sea line passes, and how close.weekly
/assets/json/sealanes/portwatch/index.jsonThe PortWatch roster: every Sealanes port with its PortWatch port, match method and current averages, plus the ports PortWatch does not cover.weekly
/assets/json/sealanes/pulse.jsonThe Lane Pulse: week-over-week withdrawn, rescheduled and added sailings by lane.weekly
/assets/json/sealanes/history/series.jsonPer-edition totals and lane counts, up to 52 editions.weekly
/sealanes-pulse.xmlRSS feed of Lane Pulse editions.weekly
https://api.myairliftusa.com/api/v1/sealanes/live/positionsSame payload as positions.json, served by the live AIS service from one open aisstream.io subscription; ETag and 60-second cache; the site reads this first and falls back to the static file.continuous
/sealanes/live/positions.jsonLast reported AIS position, status, speed, course, destination and ETA for vessels in the snapshot (present only where the live layer is enabled).every 2 hours
/sealanes/data/manifest.jsonWhen the hourly copy was generated (`generatedAt`), the date of the carrier schedules in it, and the number of routes, carrier services, ships, carriers, ports and sailings it holds. Read this to see how old the live copy is without downloading it.hourly

MCP server

A single-file, dependency-free MCP server (stdio, JSON-RPC 2.0, Node 20 or newer) reads these files from this site — the hourly copy first, the weekly one as fallback — and, for a port pair Sealanes does not cover, checks the live schedule feed. Download it, then point an MCP client such as Claude Desktop at it:

curl -O https://airliftusa.com/assets/sealanes-mcp.mjs node sealanes-mcp.mjs # speaks MCP on stdin/stdout{ "mcpServers": { "airlift-sealanes": { "command": "node", "args": [ "/path/to/sealanes-mcp.mjs" ] } } }

The server reads from https://airliftusa.com by default. The files in the table above and the script itself are served from that address once Sealanes is deployed there; until then, set SEALANES_BASE_URL to a host that serves them, or SEALANES_LOCAL=1 to read a local checkout of the Airlift repository.

ToolReturns
sealanes_lanesport pairs by lane with sailing counts and transit spreads
sealanes_routesailings, carriers, strings and Airlift history for a port pair; falls back to the live feed for pairs outside the cohort
sealanes_servicea service string: port pairs, observed rotation with day offsets, vessels deployed
sealanes_vessela vessel: sailings, strings, upcoming port calls and next call, AIS particulars and last position
sealanes_porta port: facts, time zone, container terminals, nearby ports, services calling, pairs, carriers, vessels and scheduled arrivals and departures
sealanes_carriera carrier: port pairs, strings, vessel count
sealanes_pulsethe latest Lane Pulse
sealanes_chokepointstransit traffic through the 28 IMF PortWatch chokepoints, for all of them or only the ones a route crosses, with the official advisory desks
sealanes_live_vesselsvessels reporting on AIS

Terms and method

Sailing dates, ships and port calls come from the carriers’ own published schedules for departures in the next four weeks, and your browser asks the schedule feed again when you open a page. A carrier service or a ship gets its own page once it has appeared on at least three of those sailings. Transit times labelled “Airlift history” are the typical range on Airlift’s own shipments for that lane, and the sea lines on the maps are schematic.

Provided for planning only. Schedules, routings and ship assignments change without notice; confirm with your carrier or with Airlift before booking. Nothing on these pages is a rate, a guarantee of space or a guaranteed transit time. Reuse is subject to the site terms and conditions; the data is provided as-is and must not be presented as a live booking or rate source.

The terminal lists in terminals/<UNLOCODE>.json are the SMDG Terminal Code List (CC-BY 4.0), republished every few weeks; time zones are the IANA time-zone database. Keep both attributions if you reuse those files.

Other tools