Everything you need to integrate tide data into your application.
All requests require an API key sent via the Authorization.
Authorization: Bearer mk_your-api-keyGet your key for free on the home page. Free trial: 30 days, 1,000 requests/month.
https://www.tide-data.com/api/v1/api/v1/tides/{port}Returns tide times, water heights, and coefficient for a given port and date.
| Name | Type | Required | Description |
|---|---|---|---|
port | string | yes | Port ID or name (e.g., brest, saint-malo). See /api/v1/harbors for the full list. |
date | string | no | Date in YYYY-MM-DD format. Defaults to today. |
{
"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
}
]
}| Field | Type | Description |
|---|---|---|
port | string | Port name |
date | string | Date (YYYY-MM-DD) |
coefficient | number | null | Max daily tide coefficient |
tides | array | Daily tides |
type | string | "pleine_mer" or "basse_mer" |
time | string | Time (HH:MM, legal time) |
height_m | number | Water height in meters |
/api/v1/harborsReturns all available ports with their coordinates.
{
"count": 145,
"harbors": [
{
"id": "BREST",
"name": "Brest",
"lat": 48.383,
"lon": -4.495
},
...
]
}All errors return a JSON object with an error.
| Code | Description |
|---|---|
400 | Invalid parameter (e.g., incorrect date format) |
401 | Missing or invalid API key |
403 | Free trial expired |
404 | Port not found |
429 | Monthly request limit reached |
502 | Error retrieving data |
{
"error": "Port \"xyz\" introuvable. Consultez /api/v1/harbors pour la liste."
}curl -H "Authorization: Bearer mk_your-api-key" \
https://www.tide-data.com/api/v1/tides/brestconst res = await fetch("https://www.tide-data.com/api/v1/tides/brest", {
headers: { "Authorization": "Bearer mk_your-api-key" }
});
const data = await res.json();import requests
res = requests.get(
"https://www.tide-data.com/api/v1/tides/brest",
headers={"Authorization": "Bearer mk_your-api-key"}
)
data = res.json()| Plan | Duration | Requests/month |
|---|---|---|
| Free trial | 30 days | 1,000 |