All the ships at sea,
instantaneously.

An open AIS network streamed in real-time over WebSockets.

stations
vessels
Per Sec
  • Real-time API

    Subscribe to bounding boxes or vessels over WebSocket and get every message as it is heard, or fetch a GeoJSON snapshot of what is in a box right now, plus stations and live stats. API reference

  • Open source, open data

    An open AIS network powered by MIT-license code, and data re-served under each source's own terms, with the source named on every event. GitHub

  • Free for personal use

    Read without an account; a one-click token covers a boat, a dashboard, or a side project. Feeding earns more. See tiers and limits

Stream vessel data in your favorite language

Open a WebSocket, send one subscribe frame, and every message inside the box arrives as JSON with its source, station, raw sentence, and decoded fields. No token needed.

API Docs
const ws = new WebSocket("wss://ais.openwaters.io/v1/stream");
ws.onopen = () =>
  ws.send(JSON.stringify({
    type: "subscribe",
    bbox: [[59, 10, 60, 11]]
  }));
ws.onmessage = ({ data }) => {
  const ev = JSON.parse(data);
  console.log(ev.mmsi, ev.msg_type, ev.lat, ev.lon);
};

Limits, but only to keep the lights on

Everything re-served here is open data or volunteer data its contributor chose to share. These limits exist to keep the service healthy and reward the people who feed it.

AnonymousFor trying things out.PersonalFor a boat, a hobby project, or a developer’s laptop.FeederAwarded to a station that contributes data.CommercialFor products, fleets, or those who need support.
CostFreeFreeFreePaid
Connections/IP Address22510 or more
Messages/sec2050200Unlimited
Subscribed area~10°×10°~20°×20°UnlimitedUnlimited
Vessels followed by MMSI1050200As agreed
Sending data
Raw NMEA feed
Get a tokenStart feedingContact us

Limits apply per token and per network address: at most 8 concurrent streams from one address, however many tokens are behind it. Over a per-second rate the stream thins and stays up; over a connection, area, or MMSI-list limit you are refused with a message that says so. Following vessels by MMSI is bounded by the list, not by area, so a world-wide MMSI subscription is allowed in every tier. Need more, or unsure which tier you are? hello@openwaters.io.

Put your receiver on the map.

Whatever your antenna hears is re-served to everyone, and deduplicated against every other station.

AIS-catcher

Authenticated HTTP, works behind any NAT. Get a token in your browser, add one flag.

AIS-catcher -H https://ais.openwaters.io/v1/receive USERPWD x:<token> GZIP on INTERVAL 15

Signal K

One plugin, both directions: shares what your receiver hears and shows AIS traffic when it hears none. No account; it mints its own token.

npm install signalk-aiscast

docker-shipfeeder

Already feeding the aggregators from a container? Add one more UDP destination.

host ais.openwaters.io, port 10110

Any NMEA forwarder

Plain !AIVDM sentences over UDP, no token. Your station is a keyed hash of your address, never the address itself.

AIS-catcher -u ais.openwaters.io 10110

Watch your station arrive at GET /v1/stations. Named stations with higher limits, and anything else: hello@openwaters.io. Developers: CONTRIBUTING.md.

Coverage

Every event says which of these it came from.

SourceWhereFreshness
KystverketNorwegian coast, 40–60 nm outlive
Fintraffic DigitrafficFinnish waterslive
Volunteer receiverswherever they arelive
AISHub aggregateworldwide terrestrial, ~50k vessels1–6 min (their snapshot refreshes every ~5 min)
aisstream.ioworldwide, when it is uplive; frequently down

License

Licensing is per source, and the aggregate is not relicensed: each event is re-served under the terms of the source it came from, which is why source is on every event and every vessel. If you display or redistribute the data, carry the source's attribution through.

SourceLicenseWhat you must do
KystverketNLOD 2.0Credit: “Contains data under the Norwegian licence for Open Government data (NLOD) distributed by the Norwegian Coastal Administration.” NLOD is not sublicensable: you are bound by it directly.
Fintraffic DigitrafficCC BY 4.0Credit: “Source: Fintraffic / digitraffic.fi, license CC 4.0 BY.”
Volunteer receiversbetaContributed for re-serving by this server; a written feeder agreement with an open license on the aggregate is the next stage. Credit “aiscast volunteer receivers” for now.
AISHub aggregateAISHub membershipTheir published terms grant “use” only. Treat as view-only: fine to display, do not build a product on these events alone. May be withdrawn; every event carries source: aishub.
aisstream.iono published termsBest effort, may disappear. source: aisstream.

The server, viewer, and plugin are MIT. The full position on licensing, privacy, and how the project funds itself without relicensing data is in the repo's PLAN.md.