BYTETOOLS

Open-Meteo Marine API

Free marine weather API with no key: wave height, wave period and direction, swell and sea surface temperature forecasts worldwide. Tested curl example.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 20 Aug 2026

What is the Open-Meteo Marine API?

The Open-Meteo Marine API is a free, key-free API providing ocean and coastal forecasts — significant wave height, wave period and direction, wind waves, swell components and sea surface temperature — for any marine location worldwide.

Marine forecast data is normally expensive and locked behind commercial maritime providers. This endpoint exposes wave models through the same key-free interface as Open-Meteo's weather API, which makes it uniquely accessible for surfing, sailing and coastal applications.

Understanding the wave decomposition matters: `wave_height` is the combined sea state, while `wind_wave_height` and `swell_wave_height` separate locally generated chop from long-period swell arriving from distant storms. Surfers care about swell; sailors care about the combined figure.

Quick facts

Base URL
https://marine-api.open-meteo.com/v1/marine
Authentication
No API key required.
Rate limit
Shares the Open-Meteo fair-use policy — roughly 10,000 requests per day.
Pricing
Free including commercial use below the daily limit.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Open-Meteo Marine API

Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Fetch current wave conditions

GET https://marine-api.open-meteo.com/v1/marine?latitude=54.0&longitude=10.0&current=wave_height,wave_period

curl
curl 'https://marine-api.open-meteo.com/v1/marine?latitude=54.0&longitude=10.0&current=wave_height,wave_period'
JavaScript (fetch)
const res = await fetch("https://marine-api.open-meteo.com/v1/marine?latitude=54.0&longitude=10.0&current=wave_height,wave_period");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://marine-api.open-meteo.com/v1/marine?latitude=54.0&longitude=10.0&current=wave_height,wave_period", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "latitude": 54.041664,
  "longitude": 9.9583435,
  "generationtime_ms": 0.15854835510253906,
  "utc_offset_seconds": 0,
  "timezone": "GMT",
  "timezone_abbreviation": "GMT",
  "elevation": 24.0,
  "current_units": {
    "time": "iso8601",
    "interval": "seconds",
    "wave_height": "m",
    "wave_period": "s"
  },
  "current": {
    "time": "2026-08-19T21:00",
    "interval": 900,
    "wave_height": null,
    "wave_period": null
  }
}

Parameters

ParameterTypeRequiredDescription
latitude / longitudefloatRequiredMarine coordinates. Inland points return nulls. 54.0
currentstringOptionalCurrent marine variables to return. wave_height,wave_period
hourlystringOptionalHourly marine forecast variables. wave_height,swell_wave_height
dailystringOptionalDaily aggregates such as wave_height_max. wave_height_max
timezonestringOptionalIANA timezone or auto. auto

Response fields

current.wave_heightnumber
Significant combined wave height in metres.
current.wave_periodnumber
Wave period in seconds — longer means more powerful swell.
current.wave_directionnumber
Direction waves are coming from, in degrees.
hourly.swell_wave_heightarray
Swell component only, excluding local wind chop.
hourly.wind_wave_heightarray
Locally generated wind waves.
current_unitsobject
Units for each returned variable.

What you can build with the Open-Meteo Marine API

  • Build a surf forecast showing swell height and period
  • Plan sailing passages around sea state
  • Warn coastal operations about high waves
  • Add marine conditions to a fishing or diving app

Common errors and how to fix them

All values null

The coordinates are inland.

Fix: Marine models only cover water; move the point offshore or to a coastal grid cell.

400

Unknown marine variable name.

Fix: Variable names are specific — wave_height, swell_wave_period and so on. Check the docs list.

Confusing wave heights

Three different wave measures are returned.

Fix: wave_height is combined sea state; wind_wave and swell_wave separate local chop from distant swell.

Open-Meteo Marine API — frequently asked questions

Is there a free marine weather API?

Yes. The Open-Meteo Marine API provides wave height, period, direction and sea surface temperature with no API key, which is rare — marine data is usually commercial.

What is the difference between wave height and swell height?

wave_height is the combined sea state. swell_wave_height is long-period energy from distant storms, and wind_wave_height is local chop. Surf forecasting cares about swell specifically.

Why are all the values null?

Your coordinates are inland. Marine models only produce output over water — move the point offshore.

Can I use it for a surf forecast commercially?

Yes, Open-Meteo permits commercial use below its fair-use daily limit.

Tools that pair with this API

Alternatives to Open-Meteo Marine API

If Open-Meteo Marine does not fit, these weather apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
Open-MeteoFree weather forecast API with no API key and no signup. Hourly and daily forecasts worldwide, free for commercial use. Working curl example and live response.No keyYes19 Aug 2026
Open-Meteo Air QualityFree air quality API with no key: PM2.5, PM10, ozone, nitrogen dioxide, European and US AQI plus pollen forecasts worldwide. Tested curl example included.No keyYes19 Aug 2026
wttr.inwttr.in is a free console-oriented weather API with no key. Get weather as plain text, ASCII art, PNG or full JSON with one curl command. Live example included.No keyYes19 Aug 2026
Open-Meteo GeocodingFree geocoding API with no key: convert a city or place name into latitude and longitude, with population, country and timezone. Tested curl example and live JSON.No keyYes19 Aug 2026
MET Norway LocationforecastFree Norwegian Meteorological Institute weather API with no key: hourly global forecasts with temperature, wind, pressure and precipitation. Tested example.No keyYes20 Aug 2026
Meteo.ltFree Lithuanian weather API with no key: hourly long-term forecasts from the national service, with feels-like temperature, gusts and condition codes. Tested example included.No keyNo21 Aug 2026
All Weather APIs

Open-Meteo Marine is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.