The Landers Maritime API provides real-time AIS vessel positions, voyage data, port berth availability, tidal information, and weather-aware arrival predictions — all via a unified REST + WebSocket interface.
Authentication
All API requests require a Bearer token passed in the Authorization header. Generate API keys from Dashboard → Settings → API Keys.
export LANDERS_KEY="lnd_live_xxxxxxxxxxxxxxxxxxxx"
curl -H "Authorization: Bearer $LANDERS_KEY" \
"https://api.landers.io/v3/maritime/vessels/9123456"Tip
Use separate API keys for development and production. Production keys support higher rate limits and priority data routing.
AIS Real-time Stream
Subscribe to real-time AIS position updates via WebSocket. You can filter by MMSI, IMO, flag state, vessel type, or geographic bounding box.
import { LandersWSClient } from "@landers/sdk";
const client = new LandersWSClient({ apiKey: process.env.LANDERS_KEY });
const stream = client.maritime.aisStream({
bbox: { minLat: 24.0, maxLat: 26.5, minLon: 54.0, maxLon: 56.5 },
vesselTypes: ["TANKER", "CARGO", "PASSENGER"],
updateIntervalSec: 15,
});
stream.on("position", (vessel) => {
console.log(`${vessel.name} — ${vessel.lat},${vessel.lon}`);
});Vessel Lookup
# Lookup by MMSI
curl "https://api.landers.io/v3/maritime/vessels/123456789" \
-H "Authorization: Bearer $LANDERS_KEY"Port Intelligence
The port intelligence endpoint returns real-time berth availability, expected arrivals, tidal windows, and weather hold forecasts for any Landers-indexed port (2,800+ worldwide).
Rate Limits
- Starter: 100 requests/minute, REST only
- Pro: 1,000 requests/minute, REST + WebSocket (5 concurrent streams)
- Enterprise: Unlimited, REST + WebSocket + Dedicated feed servers