Marine & Sea Temperature API

Wave height, swell, wind waves and sea surface temperature for any point on the ocean, up to 7 days ahead. One GET request, JSON back.

50 free requests, no credit card.
GET/api/v1/marineMonterey Bay, California
{
    "lat": 36.62,
    "lon": -121.9,
    "timezone": "UTC",
    "days": 1,
    "source": "TidesAtlas weather engine. Waves: NOAA GFS-Wave / WaveWatch III. Water temperature: MUR SST (NASA JPL / GHRSST, ~1km).",
    "daily": [
        {
            "date": "2026-10-18",
            "wave_height_max_m": 1.96,
            "wave_period_max_s": 12.2,
            "wave_direction_dominant": 288,
            "swell_height_max_m": 1.96,
            "swell_period_max_s": 12.2,
            "sea_state": "slight"
        },
        {
            "date": "2026-10-19",
            "wave_height_max_m": 2.09,
            "wave_period_max_s": 11.6,
            "wave_direction_dominant": 289,
            "swell_height_max_m": 2.09,
            "swell_period_max_s": 11.6,
            "sea_state": "slight"
        }
    ],
    "hourly": [
        {
            "datetime": "2026-10-18T06:00:00+00:00",
 
  …
Forecast rangeup to 7 days
Time step3 hours (UTC)
WavesNOAA GFS-Wave / WaveWatch III
Water temperatureMUR SST, NASA JPL

Request

GEThttps://tidesatlas.com/api/v1/marine
ParameterTypeDescription
lat, lonfloatCoordinates of the point (decimal degrees).
portstringInstead of lat/lon: a station slug from /api/v1/ports, e.g. brest.
daysint1 to 7. Default 3.
X-API-KeyheaderYour API key (or ?api_key= in the query string).

Code examples

curl "https://tidesatlas.com/api/v1/marine?lat=36.62&lon=-121.90&days=1" \
  -H "X-API-Key: YOUR_KEY"

Response

Real response for Monterey Bay, California, 18 October 2026 (arrays shortened).

{
    "lat": 36.62,
    "lon": -121.9,
    "timezone": "UTC",
    "days": 1,
    "source": "TidesAtlas weather engine. Waves: NOAA GFS-Wave / WaveWatch III. Water temperature: MUR SST (NASA JPL / GHRSST, ~1km).",
    "daily": [
        {
            "date": "2026-10-18",
            "wave_height_max_m": 1.96,
            "wave_period_max_s": 12.2,
            "wave_direction_dominant": 288,
            "swell_height_max_m": 1.96,
            "swell_period_max_s": 12.2,
            "sea_state": "slight"
        },
        {
            "date": "2026-10-19",
            "wave_height_max_m": 2.09,
            "wave_period_max_s": 11.6,
            "wave_direction_dominant": 289,
            "swell_height_max_m": 2.09,
            "swell_period_max_s": 11.6,
            "sea_state": "slight"
        }
    ],
    "hourly": [
        {
            "datetime": "2026-10-18T06:00:00+00:00",
            "wave_height_m": 1.55,
            "wave_direction_deg": 198,
            "wave_period_s": 17.4,
            "swell_height_m": 1.55,
            "swell_direction_deg": 198,
            "swell_period_s": 17.4,
            "wind_wave_height_m": null,
            "wind_wave_direction": null,
            "wind_wave_period_s": null,
            "sea_surface_temperature_c": 19
        },
        {
            "datetime": "2026-10-18T09:00:00+00:00",
            "wave_height_m": 1.62,
            "wave_direction_deg": 200,
            "wave_period_s": 16.8,
            "swell_height_m": 1.62,
            "swell_direction_deg": 200,
            "swell_period_s": 16.8,
            "wind_wave_height_m": null,
            "wind_wave_direction": null,
            "wind_wave_period_s": null,
            "sea_surface_temperature_c": 19
        }
    ]
}
FieldMeaning
hourly[].wave_height_mSignificant wave height (combined sea), metres
hourly[].wave_period_s / wave_direction_degPeak period (s) and direction waves come from (°)
hourly[].swell_height_m / swell_period_s / swell_direction_degPrimary swell component
hourly[].wind_wave_height_m / wind_wave_period_s / wind_wave_directionLocally generated wind sea
hourly[].sea_surface_temperature_cSea surface temperature, °C
daily[].wave_height_max_m, swell_height_max_m, …Daily maxima and dominant direction
daily[].sea_stateDouglas-style label: calm_glassy, smooth, slight, moderate, rough, very_rough, high, very_high

Data sources

Waves come from NOAA GFS-Wave (WaveWatch III), served through our own weather engine. Sea surface temperature comes from MUR SST (NASA JPL / GHRSST), a satellite analysis on a ~1 km grid that stays reliable close to the coast, where cheaper model SST often runs several degrees warm.

Good to know

  • Times are in UTC with lat/lon. Steps are 3 hours even though the array is called hourly.
  • Each requested point is cached for up to 3 hours and never reused across UTC days.
  • Open-ocean wave model: it does not resolve surf breaks, harbours or sheltered bays. Not for navigation.

FAQ

Can I get the water temperature for a beach?

Yes. Pass the beach coordinates or a station slug; sea_surface_temperature_c is the satellite value for the nearest ocean pixel (~1 km).

Is swell separated from wind waves?

Yes: each step returns total waves, the primary swell and the wind sea, each with height, period and direction.

Which plans include it?

The Complete pack, which also includes tides, and the weather-only pack. New accounts get 50 free requests; see the docs for current prices.