NOAA API: Get tide times
Finds the nearest NOAA tide prediction station to a US coastal place (within 30 miles) and returns its high and low tide times in local time with predicted heights above MLLW.
Unofficial. Not affiliated with or endorsed by NOAA.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Days optional
days Number of local days to include, 1 to 31, for example 3.
31
Whole number from 1 to 31. Default
3.- Units optional
units Height units, feet or metres, for example feet.
feet
One of
feet,metres. Defaultfeet.- Location, required
location US coastal town, beach or harbor, for example Santa Monica or Boston Harbor.
Santa Monica
- Start Date optional
start_date First local date to include (YYYY-MM-DD), for example 2026-10-03. Defaults to today at the station.
2026-10-03
Input as JSON
{ "days": 31, "units": "feet", "location": "Santa Monica", "start_date": "2026-10-03"}Output
{ "tides": [ { "type": "high", "unit": "feet", "height": 3.456, "page_link": "https://tidesandcurrents.noaa.gov/noaatidepredictions.html?id=9410840" , "tide_time": "2026-10-03T06:02:00-07:00" }, { "type": "low", "unit": "feet", "height": 3.387, "page_link": "https://tidesandcurrents.noaa.gov/noaatidepredictions.html?id=9410840" , "tide_time": "2026-10-03T08:09:00-07:00" }, { "type": "high", "unit": "feet", "height": 5.29, "page_link": "https://tidesandcurrents.noaa.gov/noaatidepredictions.html?id=9410840" , "tide_time": "2026-10-03T15:11:00-07:00" } ], "latitude": 34.0083, "longitude": -118.5, "station_id": "9410840", "station_name": "Santa Monica, Municipal Pier", "distance_miles": 0.92, "height_reference": "Mean lower low water (MLLW)"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"tidesandcurrents.noaa.gov/get_tide_times","input":{"days":31,"units":"feet","location":"Santa Monica","start_date":"2026-10-03"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "tidesandcurrents.noaa.gov/get_tide_times" , "input": { "days": 31, "units": "feet", "location": "Santa Monica", "start_date": "2026-10-03" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "tidesandcurrents.noaa.gov/get_tide_times" , "input": { "days": 31, "units": "feet", "location": "Santa Monica", "start_date": "2026-10-03" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run tidesandcurrents.noaa.gov/get_tide_times# with {"days":31,"units":"feet","location":"Santa Monica","start_date":"2026-10-03"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "location" ], "properties": { "days": { "type": "integer", "default": 3, "maximum": 31, "minimum": 1, "description": "Number of local days to include, 1 to 31, for example 3." }, "units": { "enum": [ "feet", "metres" ], "type": "string", "default": "feet", "description": "Height units, feet or metres, for example feet." }, "location": { "type": "string", "description": "US coastal town, beach or harbor, for example Santa Monica or Boston Harbor." }, "start_date": { "type": "string", "description": "First local date to include (YYYY-MM-DD), for example 2026-10-03. Defaults to today at the station." } }}Output schema
{ "type": "object", "required": [ "station_name", "distance_miles", "height_reference", "station_id", "latitude", "longitude", "tides" ], "properties": { "tides": { "type": "array", "items": { "type": "object", "required": [ "tide_time", "type", "height", "unit", "page_link" ], "properties": { "type": { "enum": [ "high", "low" ], "type": "string", "description": "High or low tide." }, "unit": { "enum": [ "feet", "metres" ], "type": "string", "description": "Height unit." }, "height": { "type": "number", "description": "Predicted height above mean lower low water." }, "page_link": { "type": "string", "description": "NOAA station tide-prediction page." }, "tide_time": { "type": "string", "description": "Local date and time with UTC offset, RFC 3339." } }, "additionalProperties": false }, "description": "High and low tides in local time order." }, "latitude": { "type": "number", "description": "Station latitude." }, "longitude": { "type": "number", "description": "Station longitude." }, "station_id": { "type": "string", "description": "NOAA station ID." }, "station_name": { "type": "string", "description": "Nearest NOAA tide prediction station." }, "distance_miles": { "type": "number", "description": "Straight-line distance from the requested place to the station in miles." }, "height_reference": { "type": "string", "description": "Reference for predicted heights: mean lower low water (MLLW)." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
tidesandcurrents.noaa.gov/get_tide_times- Returns
- station name and ID, distance, high and low tide times with heights, and page links
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method tidesandcurrents.noaa.gov/get_tide_times with the inputs above.
Ask your agent
- When is high tide at Santa Monica Pier this weekend, and how tall will it be in feet?
- I'm planning a kayak trip out of Boston Harbor on 2026-10-03. Can you list the high and low tide times for the next 5 days in metres?
- What are the tide times near Cape May, NJ for the coming week? Show heights above MLLW.
- Need tide predictions for a Florida Keys beach starting 2026-11-14, covering two weeks, in feet, from the closest NOAA station.
- On the noaa.gov site, find the nearest tide station to Newport Beach and give me the low tide times for tomorrow.
See more
All NOAA methodsGets the latest NOAA coastal water level, the matching tide prediction, the direction of change, and water temperature for the station nearest a US coastal place (within 50 miles).
tidesandcurrents.noaa.gov/get_water_levelLists NOAA space weather alerts, warnings, watches and summaries issued in the last 1 to 7 days, newest first, with validity times and NOAA scale levels when the message gives them.
swpc.noaa.gov/list_space_weather_alertsGets the 30-minute chance of aurora overhead near a place, current geomagnetic activity, and the three-day Kp outlook. Visibility also depends on darkness and local conditions; tonight uses approximate local solar hours 18:00-06:00.
swpc.noaa.gov/get_aurora_forecastLists active tropical cyclones in the selected basin, strongest first, with current conditions, advisory and forecast cone.
nhc.noaa.gov/list_active_stormsGets daily sunrise, sunset, solar noon, day length and civil twilight for a place from Time and Date, for one or more consecutive days. Times are local with UTC offset; days without sunrise or sunset are marked.
timeanddate.com/get_sunrise_and_sunsetGets The Weather Channel's daily forecast for a city, address, ZIP code or postcode: up to 15 upcoming days with highs, lows, conditions, rain chance, wind, humidity, UV and sun times.
weather.com/get_daily_forecastLooks up the National Weather Service seven-day day and night forecast for a U.S. city, address, or ZIP code. Forecast availability depends on NWS land-grid coverage.
weather.gov/get_forecastLooks up a US city, street address or ZIP code and returns up to 156 hourly National Weather Service forecasts for it.
weather.gov/get_hourly_forecast