Back

Documentation

Everything you need to integrate tide data into your application.

Authentication

All requests require an API key sent via the Authorization.

Authorization: Bearer mk_your-api-key

Get your key for free on the home page. Free trial: 30 days, 1,000 requests/month.

Base URL

https://www.tide-data.com/api/v1

Endpoints

GET/api/v1/tides/{port}

Returns tide times, water heights, and coefficient for a given port and date.

Parameters

NameTypeRequiredDescription
portstringyesPort ID or name (e.g., brest, saint-malo). See /api/v1/harbors for the full list.
datestringnoDate in YYYY-MM-DD format. Defaults to today.

Example

GET https://www.tide-data.com/api/v1/tides/brest?date=2026-03-10
{
  "port": "Brest",
  "date": "2026-03-10",
  "coefficient": 48,
  "tides": [
    {
      "type": "basse_mer",
      "time": "02:55",
      "height_m": 2.49
    },
    {
      "type": "pleine_mer",
      "time": "08:40",
      "height_m": 5.61
    },
    {
      "type": "basse_mer",
      "time": "15:09",
      "height_m": 2.81
    },
    {
      "type": "pleine_mer",
      "time": "21:02",
      "height_m": 5.42
    }
  ]
}

Response fields

FieldTypeDescription
portstringPort name
datestringDate (YYYY-MM-DD)
coefficientnumber | nullMax daily tide coefficient
tidesarrayDaily tides
typestring"pleine_mer" or "basse_mer"
timestringTime (HH:MM, legal time)
height_mnumberWater height in meters
GET/api/v1/harbors

Returns all available ports with their coordinates.

Response example

GET https://www.tide-data.com/api/v1/harbors
{
  "count": 145,
  "harbors": [
    {
      "id": "BREST",
      "name": "Brest",
      "lat": 48.383,
      "lon": -4.495
    },
    ...
  ]
}

Errors

All errors return a JSON object with an error.

CodeDescription
400Invalid parameter (e.g., incorrect date format)
401Missing or invalid API key
403Free trial expired
404Port not found
429Monthly request limit reached
502Error retrieving data
Error example
{
  "error": "Port \"xyz\" introuvable. Consultez /api/v1/harbors pour la liste."
}

Quick start

curl

curl -H "Authorization: Bearer mk_your-api-key" \
  https://www.tide-data.com/api/v1/tides/brest

JavaScript / TypeScript

const res = await fetch("https://www.tide-data.com/api/v1/tides/brest", {
  headers: { "Authorization": "Bearer mk_your-api-key" }
});
const data = await res.json();

Python

import requests

res = requests.get(
    "https://www.tide-data.com/api/v1/tides/brest",
    headers={"Authorization": "Bearer mk_your-api-key"}
)
data = res.json()

Rate limits

PlanDurationRequests/month
Free trial30 days1,000