BYTETOOLS

NOAA Tides & Currents API

Free NOAA Tides and Currents API with no key: tide predictions, observed water levels, currents, water temperature and wind from US coastal stations. Tested.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the NOAA Tides & Currents API?

The NOAA Tides and Currents API is a free, key-free US government API providing tide predictions, observed water levels, currents, water temperature, air temperature and wind from coastal monitoring stations.

This is the authoritative source for US tidal data, operated by NOAA's Center for Operational Oceanographic Products and Services. It serves both real-time observations and predictions, from hundreds of stations.

The datum parameter is the detail that matters most and the one people get wrong. Water levels are meaningless without knowing the reference datum — MLLW (mean lower low water) is the navigation standard, but requesting a different datum shifts every value.

Quick facts

Base URL
https://api.tidesandcurrents.noaa.gov/api/prod/datagetter
Authentication
No API key. NOAA asks that you pass an `application` parameter identifying your tool.
Rate limit
No published hard limit; requests are capped by date range per product.
Pricing
Free public domain US government data.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the NOAA Tides & Currents API

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

1. Fetch observed water levels

GET https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=water_level&application=bytetools&begin_date=20260819&end_date=20260819&datum=MLLW&station=8454000&time_zone=lst_ldt&units=english&format=json

curl
curl 'https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=water_level&application=bytetools&begin_date=20260819&end_date=20260819&datum=MLLW&station=8454000&time_zone=lst_ldt&units=english&format=json'
JavaScript (fetch)
const res = await fetch("https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=water_level&application=bytetools&begin_date=20260819&end_date=20260819&datum=MLLW&station=8454000&time_zone=lst_ldt&units=english&format=json");
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://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=water_level&application=bytetools&begin_date=20260819&end_date=20260819&datum=MLLW&station=8454000&time_zone=lst_ldt&units=english&format=json", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "metadata": {
    "id": "8454000",
    "name": "Providence",
    "lat": "41.8072",
    "lon": "-71.4007"
  },
  "data": [
    {
      "t": "2026-08-19 00:00",
      "v": "3.722",
      "s": "0.023",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:06",
      "v": "3.774",
      "s": "0.03",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:12",
      "v": "3.837",
      "s": "0.036",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:18",
      "v": "3.935",
      "s": "0.046",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:24",
      "v": "4.066",
      "s": "0.046",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:30",
      "v": "4.171",
      "s": "0.043",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:36",
      "v": "4.234",
      "s": "0.03",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:42",
      "v": "4.293",
      "s": "0.023",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:48",
      "v": "4.352",
      "s": "0.033",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 00:54",
      "v": "4.411",
      "s": "0.026",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 01:00",
      "v": "4.457",
      "s": "0.023",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-08-19 01:06",
      "v": "4.496",
      "s": "0.026",
      "f": "0,0,0,0",
      "q": "p"
    },
    {
      "t": "2026-0

Parameters

ParameterTypeRequiredDescription
stationstringRequiredNOAA station id. 8454000
productstringRequiredwater_level, predictions, currents, water_temperature, wind. water_level
begin_date / end_datestringRequiredDate range as YYYYMMDD, or use `date=latest`. 20260819
datumstringRequiredReference datum — MLLW, MSL, NAVD and others. MLLW
unitsstringRequiredenglish or metric. english
time_zonestringRequiredgmt, lst or lst_ldt. lst_ldt
formatstringRequiredjson, xml or csv. json

Response fields

metadata.id / namestring
Station identifier and name.
metadata.lat / lonstring
Station coordinates.
data[].tstring
Observation time.
data[].vstring
Value — water level in the requested units, as a string.
data[].sstring
Standard deviation of the observation.
data[].fstring
Quality flags.

What you can build with the NOAA Tides & Currents API

  • Show tide times for boating, fishing or surfing
  • Monitor coastal flooding risk from real-time water levels
  • Plan port operations around tidal windows
  • Analyse long-term sea level trends

Common errors and how to fix them

Error: No data was found

The station does not offer that product, or the date range is empty.

Fix: Not every station measures every product; check the station's capabilities first.

Values look shifted

The wrong datum was requested.

Fix: Water levels are relative to a reference datum — MLLW is standard for navigation. Changing it shifts every value.

Date range too large

Products have maximum range limits.

Fix: Water level data is capped at 31 days per request; page through longer periods.

NOAA Tides & Currents API — frequently asked questions

Is the NOAA tides API free?

Yes, completely free with no API key. NOAA asks that you pass an `application` parameter naming your tool.

What is a datum and why does it matter?

The reference level water heights are measured from. MLLW (mean lower low water) is the navigation standard. Requesting a different datum shifts every value, so it must match what your users expect.

What is the difference between water_level and predictions?

water_level is what was actually observed at the station; predictions is the astronomically computed tide. They differ when weather pushes water levels above or below prediction.

Does it cover outside the US?

No, NOAA stations are US coastal and Great Lakes locations, plus some US territories.

Tools that pair with this API

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