Skip to content
Developer

REST API · contract 2026-07-09

Tide API reference

Perigee serves NOAA station metadata, harmonic tide predictions, observed water levels, marine conditions, forecasts, and local astronomy as a versioned JSON API. Public coastal-data reads work without a key. Each response keeps provenance, freshness, datum, units, time zone, and unavailable fields explicit.

Choose the product before the endpoint

Start with the right resource

01

Find the right station

GET /api/v1/stations

Search by name or state. Add type=tidepredictions when the job requires high and low tide predictions.

02

Read predicted tides

GET /api/v1/stations/{id}/predictions

Request high/low events or interval predictions with an explicit datum and bounded time window.

03

Read observed water

GET /api/v1/stations/{id}/water-levels

Fetch measured water levels separately from astronomical predictions so the two are never conflated.

04

Calculate local sky events

GET /api/v1/astronomy

Return sunrise, twilight, solar position, moon phase, moonrise, and moonset for coordinates and dates.

48-hour Boston high / low prediction example
curl "https://perigeetides.com/api/v1/stations/8443970/predictions?interval=hilo&hours=48&datum=MLLW"

Generated from the production contract

REST operations

These 13 operations come from the same OpenAPI document used by SDK and route-contract tests. PUBLIC reads do not require a key; KEY operations require the documented scope.

Download the contract

Stations

3 operations
Stations REST operations
MethodPathPurposeAccess
GET/api/v1/stationsSearch the NOAA station directoryPUBLIC
GET/api/v1/stations/nearestFind stations nearest a coordinatePUBLIC
GET/api/v1/stations/{id}Get station metadata, products, datums, and flood levelsPUBLIC

Observations

4 operations
Observations REST operations
MethodPathPurposeAccess
GET/api/v1/stations/{id}/predictionsGet high/low or interval tide predictionsPUBLIC
GET/api/v1/stations/{id}/water-levelsGet observed water levelsPUBLIC
GET/api/v1/stations/{id}/conditionsGet latest water, wind, temperature, and pressure readingsPUBLIC
GET/api/v1/stations/{id}/forecastGet NWS wind and marine forecast contextPUBLIC

Astronomy

1 operation
Astronomy REST operations
MethodPathPurposeAccess
GET/api/v1/astronomyCalculate sun and moon details for a coordinatePUBLIC

Decisions

4 operations
Decisions REST operations
MethodPathPurposeAccess
POST/api/v1/decisions/trip-healthGet one explainable Trip Health planning readPUBLIC
POST/api/v1/decisions/best-windowRank 2–12 candidate local windowsKEY
POST/api/v1/decisions/evaluate-rulesEvaluate deterministic rules against a fresh planning decisionKEY
POST/api/v1/decisions/material-changeCompare a prior decision summary with current inputsKEY

Platform

1 operation
Platform REST operations
MethodPathPurposeAccess
GET/api/developer/statusGet API, MCP, and upstream provider statusPUBLIC

Interpretation contract

Keep unlike coastal data separate

Prediction is not observation

Predictions estimate the astronomical tide. Observed water levels can also reflect wind, pressure, river flow, waves, and surge.

Tide height is not current speed

High and low water describe vertical level. Flood, ebb, maximum current, and slack require current-station data.

Datum, units, and local time travel with the value

Keep the station datum, measurement unit, station ID, time zone, and source timestamp with every result.

Missing stays missing

A provider timeout or unavailable product is not a favorable condition. Narrow the answer and report the absent input.

Authentication, quota, and errors

Public reads

Anonymous requests use the published IP limit. A free key raises capacity without changing the underlying coastal-data meaning.

Scoped keys

Send Authorization: Bearer or x-api-key. Keep keys on a server, never in a public browser bundle.

Fail closed

A 429 includes retry guidance. A 503 means Perigee could not safely complete the upstream or quota step; do not invent data.