NOAA Tide Predictions: High Low UTC Day Bundles
Pricing
from $0.00005 / actor start
NOAA Tide Predictions: High Low UTC Day Bundles
Get official high and low tide predictions for known NOAA coastal stations, in metres relative to MLLW with UTC times and date-bundle pricing.
Pricing
from $0.00005 / actor start
Rating
0.0
(0)
Developer
Michal Pšenčík
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Get NOAA's official high and low tide predictions for coastal stations you already know, as one bundle per
station and UTC day. Every bundle holds the high (H) and low (L) tide times in UTC and the predicted heights
in metres relative to the station's Mean Lower Low Water (MLLW), exactly as NOAA wrote them, plus the source URL
and a SHA-256 of the raw response. Useful for refreshing a station's coming week into a tide calendar, a
photography or fieldwork planner or a scheduling tool, without maintaining API query parameters and units.
Data comes from the NOAA CO-OPS Data API (keyless, public). Tide predictions are computed astronomical tides, not measured water levels: they do not include storm surge, wind or atmospheric effects. Not for navigation or safety decisions. See NOAA's Tides and Currents site for official products, disclaimers and observed water levels.
Input
{"stationIds": ["8518750"],"startDate": "2026-10-22","endDate": "2026-10-23","maxItems": 70}
stationIds: 1 to 10 seven-digit NOAA CO-OPS station IDs, for example8518750(The Battery, New York) or9414290(San Francisco). IDs only, not URLs. Leading zeros are kept; duplicates are removed and never cost extra. Default:8518750. Find station IDs on tidesandcurrents.noaa.gov; the actor never searches for stations.startDate: first UTC day,YYYY-MM-DD, from 2020-01-01 to 366 days after the run date. Leave it out for the run's UTC date, resolved once when the run starts.endDate: last UTC day, inclusive. The range is 1 to 7 days. Leave it out for the day afterstartDate.maxItems: the most bundles to store (1 to 70, default 70), in station order then date order.
Datum (MLLW), units (metres), time zone (GMT/UTC) and interval (high/low) are fixed; input fields for them are rejected rather than silently ignored. Not every station or date has predictions: those come back as free errors or missing days.
Output
One dataset item per station and UTC day with at least one returned high or low tide:
{"schemaVersion": 1,"recordId": "noaa-tide-day:8518750:MLLW:gmt:metric:2026-10-22","deliveryId": "ef69cf30be10316b56f3aaaee505859351f959547e9fff0f3d240b6e7909e36f","observedAt": "2026-10-22T21:36:22.509Z","contentHash": "05649d8310f3abb8782481b49e07b0efbc711fa24cc92b6425a9ff70654e503c","provenance": [{"url": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=predictions&application=PublicDataSpecResearch&begin_date=20261022&end_date=20261023&datum=MLLW&station=8518750&time_zone=gmt&units=metric&interval=hilo&format=json","sha256": "f7b98e976eb8067087ae90d1e79a395cba099bcbaf40ef6d29fedc026288971c"}],"stationId": "8518750","date": "2026-10-22","datum": "MLLW","heightUnit": "m","timeZone": "UTC","kind": "prediction_not_observation","coverage": "source_returned_high_low_predictions","predictions": [{ "dateTime": "2026-10-22T03:49:00Z", "heightMeters": "0.21", "tideType": "L" },{ "dateTime": "2026-10-22T09:55:00Z", "heightMeters": "1.382", "tideType": "H" },{ "dateTime": "2026-10-22T16:10:00Z", "heightMeters": "0.288", "tideType": "L" },{ "dateTime": "2026-10-22T22:07:00Z", "heightMeters": "1.451", "tideType": "H" }]}
What the fields mean, and what they do not:
predictionslists the events NOAA returned for that UTC day, sorted by time. Days are UTC calendar days, not the station's local days, so an evening local tide can fall on the next UTC date.heightMetersis a decimal string exactly as NOAA wrote it (precision, zero and sign kept, never rounded). It is metres above or below this station's MLLW, not sea level, and not comparable across stations.coveragemeans the source returned these events. The actor does not check the expected number of tides. A requested day with no returned event is not stored: it is listed as a missing day in the run summary, never as a zero or "no tide" row.recordIdis the same for a station and day in every run, so you can upsert on it.contentHashhashes only the station-day content, so a later NOAA model correction changes it.deliveryIdidentifies this run's delivery.observedAtis when NOAA's response finished;provenanceis the exact request with a hash of the raw response.
Export as JSON, CSV or Excel from the dataset tab.
Pricing
Pay per event: $0.0005 per station-day bundle stored plus $0.00005 per run start. The default run (one station, two days) costs $0.00105 in events; one bundle $0.00055; ten $0.00505. Re-running the same station and day bills it again: there is no change detection. Platform usage is billed on top, as shown on the pricing tab.
Free (no item event): missing days, stations with no predictions, invalid stations, source errors, capped work and the run summary. Set a spending limit and the actor stops before a bundle the limit cannot cover.
Run summary and limits
Every run writes a free SUMMARY record to the default key-value store: the resolved input (including default
dates), the run status (complete, partial, failed or capped), one outcome per station (delivered,
empty, error or not_attempted) with its error code, HTTP status and warnings such as missing_day: <date>,
request and byte counts, and firstUndeliveredKey, the first station (8518750) or station day
(8518750:2026-10-23) left unstored when a cap or failure stopped the run, so a manual rerun can start there.
- One request per station, sequential, with at least 1.2 seconds between requests.
- More than 64 events in a response, or more than 8 on one UTC day, fails that station as
unit_limitinstead of being cut short. Conflicting events at the same time fail it asidentity_conflict. - A 403, 429 or block page stops all source requests for the rest of the run; 5xx and timeouts are retried twice. NOAA error messages (including HTTP 200 error envelopes) are free errors, never empty forecasts. An "invalid station" message from NOAA can also mean a NOAA system error, so it is not proof a station is gone.
- Work stops after 300 seconds, 100 requests or 16 MiB of responses; anything not reached is
not_attempted.
Support
Open an issue on the actor's Issues tab with the run ID. Source documentation: NOAA CO-OPS Data API reference.