Public files
Paths are relative to https://airliftusa.com. The files are static, so fetch them directly; no key is needed. Please cache each file for at least an hour and credit “Airlift Sealanes” with a link.
Files marked “and hourly” are published twice. The weekly copy under /assets/json/sealanes/ ships with the site; it is what the prerendered pages and search engines see. The hourly copy uses the same paths under /sealanes/data/ (/sealanes/data/index.json, /sealanes/data/routes/INMUN-to-USNYC.json and so on). It is rebuilt from the carrier schedule feed every hour by a scheduled job on Google Cloud, which writes it to Cloud Storage, and it is served through this site at the paths above, so you read it the same way. Read the hourly copy first, and fall back to the weekly one when the hourly copy returns anything that is not JSON (a missing file comes back as the site’s HTML shell with a 200) or when its meta.generatedAt is older than the copy you already have. Nothing else updates hourly: the Lane Pulse compares two weekly editions, IMF PortWatch refreshes its figures weekly, and the terminal lists come from the SMDG code list.
| File | Contents | Refreshed |
|---|---|---|
| /assets/json/sealanes/index.json | Every port pair with its sailing count, carriers, transit-time spread and Airlift history; lists of carriers and carrier services; the schedule date and other metadata. | weekly, and hourly at /sealanes/data/ |
| /assets/json/sealanes/routes/<ORIGIN>-to-<DESTINATION>.json | One port pair: every published sailing with carrier, carrier service, vessel, voyage, ETD (departure), ETA (arrival), transit days and legs; the services on the pair; the schematic sea line. | weekly, and hourly at /sealanes/data/ |
| /assets/json/sealanes/services/<scac-code>.json | A carrier service: its port pairs, the ports it calls, the observed rotation (ports in median-day order, with arrival and departure day offsets and calls seen) and the vessels deployed, with the sailings and voyages of each. | weekly, and hourly at /sealanes/data/ |
| /assets/json/sealanes/vessels/<vessel-slug>.json | A vessel: sailings, carriers, carrier services, every dated port call in the schedule window (ETA, ETD, service, voyage, pairs), the next call after the schedule date, and AIS particulars when the ship has been heard on AIS. | weekly, and hourly at /sealanes/data/ |
| /assets/json/sealanes/vessels-index.json | List of the vessels that have their own page. | weekly, and hourly at /sealanes/data/ |
| /assets/json/sealanes/carriers/<carrier-slug>.json | A carrier: port pairs, carrier services and vessel count. | weekly, and hourly at /sealanes/data/ |
| /assets/json/sealanes/ports/<UNLOCODE>.json | A 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 published sailings, plus the IANA time zone and the nearby ports. | weekly, and hourly at /sealanes/data/ |
| /assets/json/sealanes/terminals/<UNLOCODE>.json | A 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.json | Port pairs that start or end at a port (the compact file embedded in the port-code pages). | weekly, and hourly at /sealanes/data/ |
| /assets/json/sealanes/portwatch/chokepoints.json | IMF 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>.json | IMF 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.json | Which of the 28 chokepoints each port pair’s schematic sea line passes, and how close. | weekly |
| /assets/json/sealanes/portwatch/index.json | The PortWatch list: every Sealanes port with its matching PortWatch port, the match method and current averages, plus the ports PortWatch does not cover. | weekly |
| /assets/json/sealanes/pulse.json | The Lane Pulse: sailings withdrawn, rescheduled and added week over week, by lane. | weekly |
| /assets/json/sealanes/history/series.json | Per-edition totals and lane counts, up to 52 editions. | weekly |
| /sealanes-pulse.xml | RSS feed of Lane Pulse editions. | weekly |
| https://api.myairliftusa.com/api/v1/sealanes/live/positions | Same 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.json | Last reported AIS position, status, speed, course, destination and ETA for the vessels in the current schedules (present only where the live layer is enabled). | every 2 hours |
| /sealanes/data/manifest.json | When 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). It reads these files from this site, trying the hourly copy first and the weekly one as a fallback, and checks the live schedule feed for any port pair Sealanes does not cover. 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"
]
}
}
} By default the server reads from https://airliftusa.com, which serves both the files in the table above and the script itself. To read from somewhere else, set SEALANES_BASE_URL to a host that serves the same files, or SEALANES_LOCAL=1 to read a local checkout of the Airlift repository.
| Tool | Returns |
|---|---|
| sealanes_lanes | port pairs by lane with sailing counts and transit spreads |
| sealanes_route | sailings, carriers, carrier services and Airlift history for a port pair; checks the live feed for pairs Sealanes does not cover |
| sealanes_service | a carrier service: port pairs, observed rotation with day offsets, vessels deployed |
| sealanes_vessel | a vessel: sailings, carrier services, upcoming port calls and next call, AIS particulars and last position |
| sealanes_port | a port: facts, time zone, container terminals, nearby ports, services calling, pairs, carriers, vessels and scheduled arrivals and departures |
| sealanes_carrier | a carrier: port pairs, carrier services, vessel count |
| sealanes_pulse | the latest Lane Pulse |
| sealanes_chokepoints | transit 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_vessels | vessels reporting on AIS |
How the data is built, and terms of reuse
Sailing dates, ships and port calls come from the carriers’ own published schedules and cover departures in the next four weeks; your browser checks the schedule feed again each time 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 labeled “Airlift history” are the typical range on Airlift’s own shipments on that lane. Sea lines on the maps are schematic, not exact tracks.
For planning only. Schedules, routings and ship assignments change without notice, so confirm with your carrier or with Airlift before you book. 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; don’t present it 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, and the time zones come from the IANA time-zone database. Keep both attributions if you reuse those files.