Track The Worlds Vessels via Websocket

Track ship movements, monitor maritime accidents and discover ship's cargo from aisstream.io's websocket api in real-time and for free.

}

Track much more than just ship positions

Our global network of Automatic Identification System (AIS) stations, which power aisstream.io's tracking capabilities, allows us to stream much more than just ship positions.

Ship Property and Voyage Data

Track ships port calls, voyage destination and ship properties such as it's registered name.

Accident And Danger Reports

Track observed dangers at sea as well as ship accidents and rescues.

SAR Aircraft Position

Follow search and rescue aircraft movements at sea. Track their response to accidents.

Binary Ship To Ship Messages

See the messages ships send to each other using the ais system.


const WebSocket = require('ws');
const socket = new WebSocket("wss://stream.aisstream.io/v0/stream")

socket.onopen = function (_) {
    let subscriptionMessage = {
        Apikey: "<YOUR API KEY>",
        BoundingBoxes: [[-90, -180], [90, 180]]],
        FiltersShipMMSI: ["368207620", "367719770", "211476060"],
        FilterMessageTypes: ["PositionReport"]
    }
    socket.send(JSON.stringify(subscriptionMessage));
};

socket.onmessage = function (event) {
    let aisMessage = JSON.parse(event.data)
    console.log(aisMessage)
};
client.js
Designed for developers

Start Streaming Vessel Data In Your Favourite Language

We offer prebuilt examples for many of the most popular serverside languages to help you get up and running as fast as possible.

Common Questions
What is the coverage of our websocket feed?
mockup
What is AIS and how do we use it to track ships?

AIS is a broadcast system that transmits the unique identification, position, course, and speed, on a vessel. The International Maritime Organization's International Convention requires AIS to be fitted aboard international voyaging ships with 300+ gross tonnage and all passenger ships regardless of size.

aisstream.io uses a network of stations around the world to capture these messages and stream them to you in json form.

What programming languages do we support?

We attempt to enable support for all languages by providing OPENAPI 3.0 definitions for all data models we use. We generate model libraries for popular languages in our github repo here.

Languages we generate models include: