The open, community-owned AIS network.
Live vessel positions from public national feeds and community receivers, merged, deduplicated and streamed back out - free to watch, free to build on, and owned by the people who feed it. Apache-2.0, no lock-in, history included.
What you get
aisstream.io-compatible WebSocket of decoded AIS, enriched with names, ship types and IMO numbers. No key needed inside the free-tier area.
The whole fleet's current state as one cacheable request - positions, names, particulars.
Every position is archived. Anonymous access covers the recent past; keys unlock deep history, down to a five-year design horizon.
Feed us a receiver or an upstream and your account becomes a contributor: unlimited bounding boxes and the freshest data. The network belongs to its feeders.
Get started in three steps
- Sign in on the account page with GitHub or an email sign-in link.
- Create a key on the dashboard -
osf_live_...to consume,osf_feed_...to contribute. - Connect:
// stream vessels over WebSocket (aisstream.io-compatible)
const ws = new WebSocket("wss://stream.openseafeed.com/v1/stream");
ws.onopen = () => ws.send(JSON.stringify({
APIKey: "osf_live_...", // optional: omit for the free tier
BoundingBoxes: [[[54, -5], [72, 32]]],
}));
ws.onmessage = (e) => console.log(JSON.parse(e.data));
# contribute NMEA from your receiver (TCP, one AUTH line first) ( echo "AUTH osf_feed_..."; cat /dev/ttyUSB0 ) | nc ingest.openseafeed.com 10111
Why open?
AIS is broadcast in the clear by ships, for safety - yet most of it ends up behind paywalls. OpenSeaFeed keeps the pipeline public: open source, open data, open history, and a tier model with exactly one rule - those who give data get the most back.