Vessel Tracking API
Search ships, read AIS voyage data and particulars, and see a port's expected and arriving ships as JSON.
The API.SH Vessel Tracking API searches ships by name, MMSI or IMO with filters for ship type, flag, length, gross tonnage, deadweight and build year. Open one ship for its AIS voyage data: destination and port id, ETA, course, speed, draught, navigation status, time of the last position report, sea area and an approximate position, plus last port and arrival time. Particulars include callsign, flag, year built, length, beam, tonnage, deadweight, TEU, name and flag history and a photo. Look up a port by UN/LOCODE for expected ships, recent arrivals, departures and ships in port. Exact positions and port-call history are not public, so they are not returned.
- 3 endpoints
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/vessels/v1/ search
{ "success": true } What you can build with the Vessel Tracking API
Shipment ETA checks
Look up the vessel carrying your cargo by IMO or MMSI to read its destination, ETA, speed and navigation status.
Fleet and ship particulars
Search ships by type, flag, size and build year and collect IMO, tonnage, deadweight, length and beam for fleet lists.
Port activity monitoring
Read a port's expected ships, recent arrivals and departures by UN/LOCODE to gauge traffic and ship types calling there.
Due diligence on a vessel
Check a ship's flag and name history, year built and particulars before chartering or insuring it.
Maritime data for AI agents
Let an assistant answer 'where is this ship heading and when does it arrive?' through the MCP server.
Vessel Tracking data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
Vessel Tracking API endpoints and prices
Every Vessel Tracking endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| Search ships /vessels/ | $1 · $2 PAYG 1 credit |
| Port and expected ships /vessels/ | $1 · $2 PAYG 1 credit |
| Ship position and particulars /vessels/ | $1 · $2 PAYG 1 credit |
Call the Vessel Tracking API
Search ships: GET https://api.api.sh/vessels/
curl "https://api.api.sh/vessels/v1/search?q=maersk" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/vessels/v1/search",
params={"q": "maersk"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/vessels/v1/search");
url.searchParams.set("q", "maersk");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); # Google Sheets (API.SH add-on)
=APISH("/vessels/v1/search", "q", "maersk")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "Vessel Tracking" and "Search ships".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 482 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for Vessel Tracking data
- Public data only: no Vessel Tracking login, cookies or account needed
- One key and one response shape for Vessel Tracking and 481 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official Vessel Tracking API
AIS data is sold through specialist APIs such as MarineTraffic, Datalastic and Data Docked, and AISStream offers a free live stream that needs sign-in and your own processing. API.SH returns the public ship pages as JSON per request: voyage data, particulars and port lists, without a contract or stream to run.
If you need exact live positions, track history or area streaming, a paid AIS provider or AISStream fits better. API.SH suits lookups of ETA, destination, particulars and port activity by IMO, MMSI or UN/LOCODE at a fixed price per call, with the same key as the rest of its data.
Vessel Tracking API questions
What vessel data can I get?+
Ship search by name, IMO or MMSI with type, flag and size filters (/vessels/v1/search), one ship's AIS voyage data and particulars (/vessels/v1/vessel), and a port's expected ships, arrivals, departures and ships in port by UN/LOCODE (/vessels/v1/port).
How much does the vessel tracking API cost?+
Every Vessel Tracking endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free vessel tracking API?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /vessels/v1/port at 1 credit each. AISStream offers a free live AIS stream if you can process it yourself; API.SH answers single lookups as ready JSON.
Where does the data come from?+
AIS reports and ship particulars as shown publicly on ship tracking pages. Only public fields are returned: positions are approximate (whole degrees), and some port columns such as ship names are subscriber-only and come back null.
Do I need keys for the underlying sources?+
No. One API.SH key covers every vessel endpoint. You do not need an AIS provider account or a subscription to any tracking site.
Can I track a ship by IMO or MMSI?+
Yes. Pass imo or mmsi to /vessels/v1/vessel for destination, ETA, course, speed, draught, navigation status, last report time, sea area and approximate position.
Does it return exact live positions or voyage history?+
No. Exact positions and port-call history are not public, so the API returns an approximate position, last port and arrival time, and the current destination and ETA.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key. 3. Call /vessels/v1/vessel with an imo or mmsi number. Every parameter and request example is in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp so an AI agent can call it.