AIS Vessel Track API: 48-Hour History as JSON

AIS Vessel Track API: 48-Hour History as JSON

An AIS vessel track API returns the current fix plus position history — not a single last ping. On Vessels API that is GET https://vessels-api.com/api/V1/vessels/track with header X-API-Key. Pass imo or mmsi. Official docs sample: mmsi=258785000, hours=48, vessel ZJ ATLANTIC (IMO 9702510), timestamp 2026-02-09T10:30:00Z.

Starter is $19.99/mo (2,500 calls) with a 7-day trial. History window default 24 hours, max 168. /vessel/live-position is a different path (Professional+, separate AIS quota). Envelope: {status,success,message,data}. MCP: mcp.vessels-api.com (track-vessel-tool). Docs: vessels-api.com/docs.

Request: official MMSI window

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://vessels-api.com/api/V1/vessels/track?mmsi=258785000&hours=48"

Response: official track sample (selected)

{
  "status": 200,
  "success": true,
  "message": "OK",
  "data": {
    "vessel": { "imo": "9702510", "mmsi": "258785000", "name": "ZJ ATLANTIC" },
    "current_position": {
      "latitude": -34.603722,
      "longitude": -58.381592,
      "speed_knots": 15.5,
      "course_degrees": 145,
      "navigational_status": "Underway using engine",
      "timestamp_utc": "2026-02-09T10:30:00Z",
      "destination": "BRSSZ",
      "eta": "2026-02-11T08:00:00Z"
    },
    "position_history": [
      {
        "latitude": -34.612345,
        "longitude": -58.371234,
        "speed_knots": 14.2,
        "timestamp_utc": "2026-02-09T09:00:00Z"
      }
    ],
    "route": {
      "departure_port": "Buenos Aires",
      "destination_port": "Santos",
      "distance_nm": 1050
    }
  }
}

There is no geofence endpoint. Nearby traffic is a different path (/vessels/nearby).

Go live

1. Register — 7-day trial.

2. Copy X-API-Key.

3. GET /api/V1/vessels/track.

4. Plot position_history.

Track 48 hours of AIS with a Vessels key →

Ready to get started?

Get your API key and start tracking vessels in minutes.

Get API Key