{"openapi":"3.1.0","info":{"title":"Sea Temperature & Waves API","version":"1.0.0","description":"Real-time and forecast ocean conditions for any coastal or open-water location. Get the current sea-surface temperature (in °C and °F) together with a wave snapshot — height, direction, period, swell and wind-wave — pull an hourly series of temperature and waves, or a daily forecast with sea-temperature min/avg/max and wave aggregates. Global ocean coverage sourced from Open-Meteo’s Marine model, delivered through a fast, reliable API; inland coordinates return a clear not-found so you always know you have ocean data. Ideal for surf and sailing apps, fishing and diving, beach and tourism services, shipping and coastal or climate monitoring.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/seatemp-api","description":"oanor gateway"}],"tags":[{"name":"Sea"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/current":{"get":{"operationId":"get_v1_current","tags":["Sea"],"summary":"Current sea temperature + waves","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude -90..90 (ocean/coastal)","schema":{"type":"string"},"example":"36.6"},{"name":"lon","in":"query","required":true,"description":"Longitude -180..180","schema":{"type":"string"},"example":"-122"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"time":"2026-05-30T11:15","waves":{"height_m":2.1,"period_s":9.4,"direction_deg":299,"swell_height_m":1.5,"swell_period_s":6,"wind_wave_height_m":0.6},"latitude":36.625,"timezone":"America/Los_Angeles","longitude":-122.04166,"sea_temperature":{"celsius":14.6,"fahrenheit":58.3}},"meta":{"timestamp":"2026-05-30T18:17:04.429Z","request_id":"8a572442-0949-464f-808d-e0cf6a956b65"},"status":"ok","message":"Current sea conditions retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/forecast":{"get":{"operationId":"get_v1_forecast","tags":["Sea"],"summary":"Daily sea temperature + wave forecast","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude -90..90 (ocean/coastal)","schema":{"type":"string"},"example":"36.6"},{"name":"lon","in":"query","required":true,"description":"Longitude -180..180","schema":{"type":"string"},"example":"-122"},{"name":"days","in":"query","required":false,"description":"1-7 (default 7)","schema":{"type":"string"},"example":"3"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"days":3,"forecast":[{"date":"2026-05-30","sea_temperature_c":{"avg":14.7,"max":14.9,"min":14.4},"wave_height_max_m":2.7,"wave_period_max_s":10.8,"swell_height_max_m":2.1,"wave_direction_dominant_deg":300},{"date":"2026-05-31","sea_temperature_c":{"avg":14.3,"max":14.6,"min":14.1},"wave_height_max_m":2.7,"wave_period_max_s":9.4,"swell_height_max_m":2.5,"wave_direction_dominant_deg":301},{"date":"2026-06-01","sea_temperature_c":{"avg":14.5,"max":14.9,"min":14.1},"wave_height_max_m":2.5,"wave_period_max_s":10.6,"swell_height_max_m":2.2,"wave_direction_dominant_deg":291}],"latitude":36.625,"timezone":"America/Los_Angeles","longitude":-122.04166},"meta":{"timestamp":"2026-05-30T18:17:05.972Z","request_id":"70bc2999-4867-4bb7-a311-2dae8574ce65"},"status":"ok","message":"Sea forecast retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/hourly":{"get":{"operationId":"get_v1_hourly","tags":["Sea"],"summary":"Hourly sea temperature + waves","description":"","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude -90..90 (ocean/coastal)","schema":{"type":"string"},"example":"36.6"},{"name":"lon","in":"query","required":true,"description":"Longitude -180..180","schema":{"type":"string"},"example":"-122"},{"name":"hours","in":"query","required":false,"description":"1-168 (default 24)","schema":{"type":"string"},"example":"24"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"hours":24,"series":[{"time":"2026-05-30T11:00","wave_height_m":2.1,"wave_period_s":9.4,"sea_temperature_c":14.6,"wave_direction_deg":299},{"time":"2026-05-30T12:00","wave_height_m":2.2,"wave_period_s":9.3,"sea_temperature_c":14.6,"wave_direction_deg":299},{"time":"2026-05-30T13:00","wave_height_m":2.2,"wave_period_s":9.2,"sea_temperature_c":14.7,"wave_direction_deg":300},{"time":"2026-05-30T14:00","wave_height_m":2.3,"wave_period_s":9,"sea_temperature_c":14.8,"wave_direction_deg":300},{"time":"2026-05-30T15:00","wave_height_m":2.3,"wave_period_s":8.9,"sea_temperature_c":14.8,"wave_direction_deg":301},{"time":"2026-05-30T16:00","wave_height_m":2.4,"wave_period_s":8.7,"sea_temperature_c":14.8,"wave_direction_deg":302},{"time":"2026-05-30T17:00","wave_height_m":2.4,"wave_period_s":8.6,"sea_temperature_c":14.8,"wave_direction_deg":303},{"time":"2026-05-30T18:00","wave_height_m":2.5,"wave_period_s":8.4,"sea_temperature_c":14.8,"wave_direction_deg":304},{"time":"2026-05-30T19:00","wave_height_m":2.6,"wave_period_s":8.3,"sea_temperature_c":14.7,"wave_direction_deg":305},{"time":"2026-05-30T20:00","wave_height_m":2.7,"wave_period_s":8.3,"sea_temperature_c":14.6,"wave_direction_deg":306},{"time":"2026-05-30T21:00","wave_height_m":2.7,"wave_period_s":8.3,"sea_temperature_c":14.6,"wave_direction_deg":305},{"time":"2026-05-30T22:00","wave_height_m":2.6,"wave_period_s":8.4,"sea_temperature_c":14.4,"wave_direction_deg":305},{"time":"2026-05-30T23:00","wave_height_m":2.6,"wave_period_s":8.6,"sea_temperature_c":14.4,"wave_direction_deg":304},{"time":"2026-05-31T00:00","wave_height_m":2.6,"wave_period_s":8.7,"sea_temperature_c":14.4,"wave_direction_deg":304},{"time":"2026-05-31T01:00","wave_height_m":2.6,"wave_period_s":8.8,"sea_temperature_c":14.3,"wave_direction_deg":303},{"time":"2026-05-31T02:00","wave_height_m":2.6,"wave_period_s":8.9,"sea_temperature_c":14.2,"wave_direction_deg":303},{"time":"2026-05-31T03:00","wave_height_m":2.6,"wave_period_s":9,"sea_temperature_c":14.2,"wave_direction_deg":302},{"time":"2026-05-31T04:00","wave_height_m":2.6,"wave_period_s":9,"sea_temperature_c":14.1,"wave_direction_deg":302},{"time":"2026-05-31T05:00","wave_height_m":2.6,"wave_period_s":9.1,"sea_temperature_c":14.1,"wave_direction_deg":301},{"time":"2026-05-31T06:00","wave_height_m":2.6,"wave_period_s":9.1,"sea_temperature_c":14.1,"wave_direction_deg":301},{"time":"2026-05-31T07:00","wave_height_m":2.7,"wave_period_s":9.2,"sea_temperature_c":14.1,"wave_direction_deg":300},{"time":"2026-05-31T08:00","wave_height_m":2.7,"wave_period_s":9.3,"sea_temperature_c":14.1,"wave_direction_deg":300},{"time":"2026-05-31T09:00","wave_height_m":2.7,"wave_period_s":9.3,"sea_temperature_c":14.2,"wave_direction_deg":300},{"time":"2026-05-31T10:00","wave_height_m":2.7,"wave_period_s":9.4,"sea_temperature_c":14.2,"wave_direction_deg":299}],"latitude":36.625,"timezone":"America/Los_Angeles","longitude":-122.04166},"meta":{"timestamp":"2026-05-30T18:17:06.506Z","request_id":"96678a83-07ba-4972-8406-81c34176d728"},"status":"ok","message":"Hourly sea conditions retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1000,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":500,"monthly_call_quota":75000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1500,"monthly_call_quota":300000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3900,"monthly_call_quota":1200000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/seatemp-api"}