API Documentation

Access marine data programmatically through free and open source APIs.

Getting Started

Authentication

Currently, our APIs are open and do not require authentication. We may introduce API keys in the future to help manage rate limits and ensure fair usage.

Rate Limits

To ensure fair usage and service reliability, we implement the following rate limits:

  • 100 requests per minute per IP address
  • 10,000 requests per day per IP address

If you need higher limits for a production application, please contact us.

Error Handling

Errors are returned with appropriate HTTP status codes and a JSON body:

{
  "message": "Invalid parameters",
  "errors": [
    {
      "path": "/latitude",
      "message": "must be between -90 and 90",
      "errorCode": "INVALID_NUMBER"
    }
  ]
}

Tides

GET /tides/extremes

Get extremes prediction for a location

Returns high and low tide predictions for the nearest station to the given coordinates

Parameters

Name Location Type Required Description
latitude query number Latitude
longitude query number Longitude
start query string Start date/time (ISO 8601 format, defaults to now)
end query string End date/time (ISO 8601 format, defaults to 7 days from start)
datum query string Vertical datum (defaults to MLLW if available)
units query string Units for water levels (defaults to meters)
GET /tides/timeline

Get timeline prediction for a location

Returns water level predictions at regular intervals for the nearest station

Parameters

Name Location Type Required Description
latitude query number Latitude
longitude query number Longitude
start query string Start date/time (ISO 8601 format, defaults to now)
end query string End date/time (ISO 8601 format, defaults to 7 days from start)
datum query string Vertical datum (defaults to MLLW if available)
units query string Units for water levels (defaults to meters)
GET /tides/stations/{source}/{id}

Get station by ID

Find a station by its ID

Parameters

Name Location Type Required Description
source path string Station source (e.g., 'noaa', 'ticon')
id path string Station ID within the source (e.g., '8722588', 'some-dash-string')
GET /tides/stations

Find stations

Search stations by name/ID, find stations near the given coordinates, or list all stations when no filters are provided

Parameters

Name Location Type Required Description
query query string Full-text search query (name, ID, or location)
latitude query number Latitude for proximity search
longitude query number Longitude for proximity search
maxResults query integer Maximum number of stations to return
maxDistance query number Maximum search radius for proximity search
GET /tides/stations/{source}/{id}/extremes

Get extremes prediction for a specific station

Parameters

Name Location Type Required Description
source path string Station source (e.g., 'noaa', 'ticon')
id path string Station ID within the source (e.g., '8722588', 'some-dash-string')
start query string Start date/time (ISO 8601 format, defaults to now)
end query string End date/time (ISO 8601 format, defaults to 7 days from start)
datum query string Vertical datum (defaults to MLLW if available)
units query string Units for water levels (defaults to meters)
GET /tides/stations/{source}/{id}/timeline

Get timeline prediction for a specific station

Parameters

Name Location Type Required Description
source path string Station source (e.g., 'noaa', 'ticon')
id path string Station ID within the source (e.g., '8722588', 'some-dash-string')
start query string Start date/time (ISO 8601 format, defaults to now)
end query string End date/time (ISO 8601 format, defaults to 7 days from start)
datum query string Vertical datum (defaults to MLLW if available)
units query string Units for water levels (defaults to meters)
GET /tides/openapi.json

Get OpenAPI specification

Need Help?

Have questions about our APIs or need support?