thirdtrail-life Tides API
Astronomical tides from the FES2022 global atlas.
Astronomical tides from the FES2022 global atlas.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/thirdtrail-life:thirdtrail-life-tides-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: thirdtrail Tides API
version: 1.0.0
description: 'High-precision sun, moon, twilight, solar-irradiance and tide data for any point on Earth — with elevation as a first-class input.
All endpoints take `Authorization: Bearer `. Responses are shaped by the caller''s plan: features a plan does not include are omitted from the response rather than erroring.
Not for navigation or life-safety use — see https://thirdtrail.life/safety/'
servers:
- url: https://thirdtrail.life
description: Production
tags:
- name: Tides
description: Astronomical tides from the FES2022 global atlas.
paths:
/v1/tides/bulk/:
post:
operationId: tides_bulk_create
description: Batch form of `/v1/tides/extremes/`. Pro and above.
summary: Tide extremes for many locations (POST)
tags:
- Tides
security:
- bearerAuth: []
- cookieAuth: []
responses:
'200':
description: No response body
/v1/tides/constituents/:
get:
operationId: tides_constituents_retrieve
description: The harmonic constants FES2022 holds at a point, for callers running their own tide model. Pro and above.
summary: Harmonic constituents
parameters:
- in: query
name: lat
schema:
type: number
format: double
description: Latitude in decimal degrees, -90 to 90.
required: true
- in: query
name: lon
schema:
type: number
format: double
description: Longitude in decimal degrees, -180 to 180.
required: true
tags:
- Tides
security:
- bearerAuth: []
- cookieAuth: []
responses:
'200':
description: No response body
/v1/tides/extremes/:
get:
operationId: tides_extremes_retrieve
description: High/low water times and heights for any coastal point. Relative to mean sea level, not chart datum.
summary: High and low waters
parameters:
- in: query
name: days
schema:
type: integer
description: Number of days to return, from 1. The ceiling is the plan's `max_forecast_days`; exceeding it returns 400 naming the limit.
- in: query
name: lat
schema:
type: number
format: double
description: Latitude in decimal degrees, -90 to 90.
required: true
- in: query
name: lon
schema:
type: number
format: double
description: Longitude in decimal degrees, -180 to 180.
required: true
- in: query
name: start_date
schema:
type: string
description: First day, `YYYY-MM-DD`. Historical dates are plan-gated.
- in: query
name: tz
schema:
type: string
description: IANA timezone for output timestamps, e.g. `Europe/Dublin`.
tags:
- Tides
security:
- bearerAuth: []
- cookieAuth: []
responses:
'200':
description: No response body
/v1/tides/heights/:
get:
operationId: tides_heights_retrieve
description: Predicted astronomical water height at any coastal point, from the FES2022 global tide atlas. Heights are metres relative to **mean sea level, not chart datum** — do not use for navigation.
summary: Water height time series
parameters:
- in: query
name: days
schema:
type: integer
description: Number of days to return, from 1. The ceiling is the plan's `max_forecast_days`; exceeding it returns 400 naming the limit.
- in: query
name: lat
schema:
type: number
format: double
description: Latitude in decimal degrees, -90 to 90.
required: true
- in: query
name: lon
schema:
type: number
format: double
description: Longitude in decimal degrees, -180 to 180.
required: true
- in: query
name: start_date
schema:
type: string
description: First day, `YYYY-MM-DD`. Historical dates are plan-gated.
- in: query
name: step
schema:
type: string
description: Sampling interval, e.g. `10m`, `1h`. Finer steps are plan-gated.
- in: query
name: tz
schema:
type: string
description: IANA timezone for output timestamps, e.g. `Europe/Dublin`.
tags:
- Tides
security:
- bearerAuth: []
- cookieAuth: []
responses:
'200':
description: No response body
/v1/tides/window/:
get:
operationId: tides_window_retrieve
description: 'Per day: high/low waters plus sunrise, sunset, twilight and moon phase in a single call. The planning endpoint for coastal photography, fishing and shore work. Starter and above.'
summary: Tide extremes with sun and moon
parameters:
- in: query
name: auto_elevation
schema:
type: boolean
description: Look the elevation up from the coordinates. Paid plans only.
- in: query
name: days
schema:
type: integer
description: Number of days to return, from 1. The ceiling is the plan's `max_forecast_days`; exceeding it returns 400 naming the limit.
- in: query
name: elevation
schema:
type: number
format: double
description: 'Metres above sea level, -500 to 9000. The differentiating input: sunrise at 2000 m is measurably earlier than the sea-level answer most APIs return. Omit to use `auto_elevation`, or default to 0.'
- in: query
name: lat
schema:
type: number
format: double
description: Latitude in decimal degrees, -90 to 90.
required: true
- in: query
name: lon
schema:
type: number
format: double
description: Longitude in decimal degrees, -180 to 180.
required: true
- in: query
name: start_date
schema:
type: string
description: First day, `YYYY-MM-DD`. Historical dates are plan-gated.
- in: query
name: tz
schema:
type: string
description: IANA timezone for output timestamps, e.g. `Europe/Dublin`.
tags:
- Tides
security:
- bearerAuth: []
- cookieAuth: []
responses:
'200':
description: No response body
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Your API key, as `Authorization: Bearer tt_live_…`. Keys are minted in the dashboard and shown once — store it in a secret manager. The key determines your plan, and the plan shapes what each response contains.'
cookieAuth:
type: apiKey
in: cookie
name: sessionid