thirdtrail-life Tides API

Astronomical tides from the FES2022 global atlas.

Operations 5

POST /v1/tides/bulk/ Tide extremes for many locations (POST) #
GET /v1/tides/constituents/ Harmonic constituents #
GET /v1/tides/extremes/ High and low waters #
GET /v1/tides/heights/ Water height time series #
GET /v1/tides/window/ Tide extremes with sun and moon #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/thirdtrail-life:thirdtrail-life-tides-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

thirdtrail-life-tides-api-openapi.yml Raw ↑
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