The whole ocean,
as one dataset.
SeaSignals combines vessel traffic, storms, waves, ports and marine life into a single dataset, aligned in space and time. You query all of it through one API and explore it in live dashboards.
Ocean data is scattered. We bring it together.
Ship positions come from one place, storm tracks from another, wave models, buoys and wildlife tags from many more. Each uses its own formats, grids and timestamps. SeaSignals joins them into one consistent model of the ocean.
Shared space & time
Every observation is placed on one global hexagonal grid and one UTC timeline, so layers line up without extra work on your side.
Cross-layer queries
Ask questions that span domains: which tankers are heading into a forecast storm cone, or where shipping lanes cross whale corridors.
Provenance included
Every record carries its source, licence, latency and confidence, so you always know where a value came from and how much to trust it.
Five layers. One ocean.
Each layer is useful on its own. Combined, they show you much more.
AIS tracking
Live positions, historical tracks, voyages, ETAs and behaviour flags.
StormsStorm tracking
Active cyclones, forecast cones, intensity and historical tracks.
WavesOcean state
Wave height, swell, wind, currents, temperature and buoy readings.
PortsPort signals
Congestion, anchorage queues, dwell times and arrival forecasts.
Marine lifeWildlife tracking
Tagged animal tracks, sightings, migration corridors and risk zones.
Ask questions that cross the ocean.
Because every layer uses the same grid, timeline and IDs, you can join layers in a single query. No pipeline to build.
- Exposure: vessels inside a storm's 48-hour forecast cone
- Delays: port queues caused by swell above 3 m
- Conservation: shipping lanes that cross active whale tracks
- Anomalies: AIS gaps near protected areas
from seasignals import Ocean ocean = Ocean(api_key="ss_live_…") # Tankers inside any active storm's 48h forecast cone storms = ocean.storms.active(cone_hours=48) at_risk = ocean.vessels.within( storms.cones, vessel_type="tanker", join=["waves.hs", "ports.next_eta"], ) for v in at_risk: print(v.name, v.storm.name, v.waves.hs, v.ports.next_eta) # → AURORA SPIRIT TS Imelda 4.2 m 2026-10-29T06:00Z
Sail the live ocean.
Voyage is a 3D sailing simulation built on the SeaSignals dataset. Take the helm anywhere on Earth and sail on waves from real forecasts, with live storms, ship traffic and wildlife sightings around you.
- Real sea state: wave height, swell and wind from current models
- Live events: AIS ships, active storms, buoys and wildlife sightings around you
- Teleport anywhere: pick a sea, a port or a storm, or click the minimap
Voyage is included with every free account.
Anyone who needs to know what's happening at sea.
Shipping & logistics
Fleet visibility, ETAs and port delays, with weather risk built in.
Learn more →Commodities & markets
Tanker flows and port throughput as early market signals.
Learn more →Insurance & risk
Storm exposure, voyage risk scoring and behaviour anomalies.
Learn more →Offshore & energy
Weather windows, wave forecasts and site conditions.
Learn more →Research & conservation
Wildlife movement, ship-strike risk and illegal fishing signals.
Learn more →Developers & builders
One clean API for marine apps, maps, games and AI agents.
Learn more →Help us map the ocean, one signal at a time.
Create a free account for an API key, the map explorer and Voyage on live data. 30 days, no card.