AVAILABLE NOW

AIS Stream

One persistent WebSocket connection. Incoming AIS reports, delivered to your application as they arrive.

Get a free API key
01 / CONNECT

One connection.
A live feed.

Create a key and connect your server to the WebSocket stream. The welcome frame reports the limits for your connection.

WebSocketAPI keyWelcome frame
Read the stream docs
welcome · server frameJSON
{
  "type": "welcome",
  "protocol": "pelyr.v1",
  "server_time": "2026-08-14T15:04:05Z",
  "subscribe_deadline_ms": 5000,
  "bbox_fields": [
    "west",
    "south",
    "east",
    "north"
  ],
  "key": {
    "prefix": "pk_",
    "scope": "collector"
  },
  "limits": {
    "subscriptions": 4,
    "bbox_per_subscription": 50,
    "bbox_per_connection": 80,
    "mmsi_per_subscription": 500,
    "mmsi_per_account": 50,
    "bbox_per_account": 10,
    "bbox_area_km2_per_account": 3500000,
    "output_bytes_per_second": 0,
    "quota_bytes_per_month": 0,
    "quota_bytes_used": 6442450944,
    "quota_resets_at": "2026-09-01T00:00:00Z"
  },
  "docs": "https://pelyr.com/stream-api/",
  "terms": "https://pelyr.com/stream-terms/"
}
Excerpt from a generated protocol test frame. Connection values vary.Protocol reference
subscribed · server frameJSON
{
  "type": "subscribed",
  "id": "ostsee",
  "effective": {
    "bbox": [
      {
        "west": 18,
        "south": 59,
        "east": 26,
        "north": 66
      }
    ],
    "fields": "position",
    "mmsi_count": 0
  }
}
Generated protocol test frame showing the effective area subscription.Protocol reference
02 / SUBSCRIBE

Choose what matters.
Shape the feed.

Subscribe by geographic area, MMSI or AIS message type to follow the reports relevant to your application.

AreasIndividual vesselsMessage types
03 / RECEIVE

Stay with the movement.
Follow delivery.

Receive new reports and use connection status messages to monitor the feed your application gets.

Incoming AISConnection statusData loss reports
position · server frameJSON
{
  "type": "position",
  "id": "1755183845123-0",
  "license": "100",
  "data": {
    "mmsi": 230123456,
    "msg_type": 1,
    "lat": 60.161234,
    "lon": 24.934567,
    "sog": 12.3,
    "cog": 45.6,
    "heading": 47,
    "rx_ts": "2026-08-13T10:00:00Z"
  }
}
Generated protocol test frame in the compact position profile.Protocol reference

Before you connect.

How do I authenticate?

Create a free key in the dashboard and enable AIS Stream. Connect from your server with the key in the Authorization header. The welcome frame reports the limits in force for your connection; the documentation includes complete Python and Go examples.

Can I filter the live feed?

Yes. Subscribe by geographic area, individual MMSI or AIS message type. Use filters to keep updates relevant to your application. Subscriptions and concurrent connections are limited; check the documentation and your welcome frame before choosing your subscription layout.

Does the stream include historical tracks?

The stream follows incoming reports. Use the HTTPS API to retrieve recorded tracks or look up vessel details alongside those updates. Both tools use the same key when their capabilities are enabled. Free access includes no uptime commitment.

YOUR FIRST CONNECTION

From key to stream.

Create a key, enable AIS Stream and connect from your server. The documentation includes complete clients, subscription options and current access limits.

Read the stream docs
Need vessel details or recorded tracks too?Add the HTTPS API