API Marées, Météo & Océan mondiale
Marées, météo, vagues, houle, température de l'eau, soleil & lune pour 13,441+ stations dans 180 pays. 13 endpoints REST. Une seule clé API. Basé sur TICON-4, NOAA & modèles FES2022.
// Fetch today's tides in San Francisco const res = await fetch( 'https://tidesatlas.com/api/v1/tides?port=san-francisco&days=3', { headers: { 'X-API-Key': 'YOUR_KEY' } } ); const { extremes } = await res.json(); // [{ datetime: "2026-03-27T05:12:00-07:00", height_m: 1.82, type: "high" }, ...]
Routage intelligent
Stations calibrées quand elles sont proches, modèle global FES2022 sinon. Automatique et transparent.
Marées en tout point océanique
NEWPrédictions aux coordonnées exactes, sans station requise. Conçu pour la navigation au large et la recherche.
Observations en temps réel
Capteurs REFMAR/SHOM live fusionnés avec les prédictions pour les ports français.
Prêt pour la prod
Cache agressif, webhooks, rate limiting, 99,9 % uptime.
Conçu pour tous les usages liés aux marées
Des applications météo personnelles aux plateformes marines professionnelles.
Navigation maritime
Planification d'entrée/sortie de port, calculs de tirant d'eau et timing de passage.
Applications de pêche
Fenêtres de pêche optimales basées sur la phase de marée, la hauteur et le courant.
Surf & sports nautiques
Rapports de surf tenant compte des marées, planificateurs de kayak et guides d'activités de plage.
Immobilier côtier
Analyse des risques d'inondation, données sur les propriétés en bord de mer et évaluations d'assurance.
Recherche & science
Jeux de données océanographiques, travaux de terrain en biologie marine et modélisation climatique.
Météo & voyage
Intégrez les marées dans les tableaux de bord météo, planificateurs de voyage et appareils IoT.
13 endpoints, possibilités infinies
Réponses JSON propres. Pas de XML, pas de SOAP, pas de complications.
Retourne les heures de pleine et basse mer avec hauteurs. Utilisez un slug de station pour une prédiction calibrée au port, ou passez des coordonnées et TidesAtlas choisit automatiquement la meilleure source.
| Paramètre | Type | Description |
|---|---|---|
port | string | Slug de la station, ex. aberdeen. Utilisez /ports pour chercher. |
country | string | Optional ISO-2 country code to disambiguate a slug shared by several cities (e.g. port=san-juan&country=PH). When a slug is ambiguous, the response sets tide_source.slug_ambiguous: true and names the country served. Also accepted on /history and /observations. |
lat / lon | float | Routage intelligent : si une station calibrée est à moins de 50 km, retourne sa prédiction (data_source: "ticon"). Sinon, utilise le modèle océanique global FES2022 à vos coordonnées exactes (data_source: "fes2022"). Pas de bascule silencieuse vers une station lointaine. |
date | YYYY-MM-DD | Start date (default: today). |
days | int | 1-14 days (default: 1). |
format | string | Format de réponse : json, csv ou geojson (défaut : json). |
coefficients (matin/après-midi/max par jour, du 2026-01-01 au 2035-12-29) ainsi qu'un champ coefficient sur chaque pleine mer (échelle française, 20 = mortes-eaux → 120 = vives-eaux exceptionnelles). Non applicable hors de France. Essayer
Exemple de réponse
The tide_source field
Every /api/v1/tides response tells you exactly which station's curve you are receiving, so you can decide how much to trust it:
own_station/high— the port has its own tide model. Highest accuracy.reference_port/medium— a secondary port; the reference curve is transferred with harmonic corrections rebuilt from the Shom Références Altimétriques Maritimes (open data).reference_sluganddistance_kmtell you the source.reference_port/low— curve inherited from the reference port without a local correction yet. Use with care.official_data/high— curve computed from the data of a national agency (South Korea: KHOA harmonic constants; Hong Kong: Hong Kong Observatory predictions; Taiwan: Central Weather Administration official forecasts, checked against its tide gauges).agency,stationandattributionare given; credit them.model_point— no tide gauge here: the FES2022 global model is read at the nearest modelled sea point,model_cell_distance_kmaway (mediumwithin 4 km, otherwiselow).
For a reference_port, place_type tells you why the curve comes from somewhere else: gauge — a real tide gauge a few km away; estuary — the place is on a tidal river or estuary, the tide arrives later than at the reference and its height differs; inland — there is no tide at this place (confidence: none), the curve is that of the nearest coast.
Attribution for corrected French ports: Shom, 2025. Références Altimétriques Maritimes, doi:10.17183/MAREE_COURANTS_RAM (Licence Ouverte 2.0).
Measured accuracy (tide_source.measured_accuracy)
For stations that sit next to a public tide gauge, we continuously compare our predictions against actual observations and publish the result. When a recent verification exists (≤ 60 days), the response includes:
Median absolute errors versus gauge observations over the stated window. Informational only — not a warranty, and never a substitute for official navigation documents. Gauge data: University of Hawaii Sea Level Center (Caldwell et al. 2015, doi:10.7289/V5V40S7W) and NOAA CO-OPS.
What this API does not provide
- Fine-scale currents in channels and passes — the
/currentsendpoint provides open-water surface currents at ~8 km resolution; it cannot resolve tidal races, narrow passes or harbour entrances — and says so in every response. - Storm surge / weather-driven water level — predictions are astronomical tide only; meteorological effects are not included.
- Navigation-grade certification — always cross-check with official sources before any safety-critical decision.
France : coefficients de marée (échelle française)
Pour les stations en France, la réponse inclut le coefficient de marée français — un nombre sans dimension de 20 (mortes-eaux) à 120 (vives-eaux exceptionnelles), couramment utilisé dans le contexte maritime français. Le champ apparaît à deux endroits :
- Un champ
coefficientsur chaque pleine mer dansextremes(absent sur les basses mers). - Un objet de premier niveau
coefficientsavec les valeurs quotidiennes matin/après-midi/max sur la plage de dates demandée.
Couverture: 2026-01-01 → 2035-12-29. Source: computed in-house from Brest harmonic constituents. Géographie: French stations only — the fields are omitted for stations outside France.
Légende : < 45 = mortes-eaux, 45-70 = moyennes, 70-95 = au-dessus de la moyenne, 95-110 = vives-eaux, > 110 = vives-eaux exceptionnelles.
Exemple de réponse (champs spécifiques à la France) :
Utilise toujours le modèle FES2022 (34 constituants harmoniques) aux coordonnées exactes que vous fournissez — ne bascule jamais sur une station. À utiliser quand vous voulez explicitement la sortie du modèle (recherche, comparaisons, navigation au large). Pour la plupart des apps, /api/v1/tides?lat=&lon= est préférable car il choisit la meilleure source automatiquement.
| Paramètre | Type | Description |
|---|---|---|
lat | float | Latitude, decimal degrees, -90 to 90. Required. |
lon | float | Longitude, decimal degrees, -180 to 180. Required. |
date | YYYY-MM-DD | Start date UTC (default: today). |
days | int | 1-14 days (default: 1). |
datum | string | Vertical reference: LAT (default, like the /tides endpoint) or MSL. |
interval | int | Minutes between samples, 5-60 (default: 10). Sets the spacing of the optional heights series and the resolution of extremes detection. |
heights | bool | Set to 1 to also return an interval-sampled height series — ideal for plotting the tide curve (default: off). Each point is { datetime, height_m }. |
404 if the point is on land or outside the ocean mask.
Exemple de réponse
Recherchez et listez les stations de marée disponibles dans le monde.
| Paramètre | Type | Description |
|---|---|---|
search | string | Search by name, e.g. aberdeen. |
country | string | Filter by country slug, e.g. united-kingdom. |
limit | int | Max results, 1-500 (default: 50). |
format | string | Format de réponse : json, csv ou geojson (défaut : json). |
Retourne les 188 pays avec leur nombre de stations.
Retourne les prévisions météo horaires et quotidiennes : température, vent, précipitations, indice UV et conditions.
Weather API: full page with examplescached and stale fields. A 502 response means no data is available at all for that location.
| Paramètre | Type | Description |
|---|---|---|
port | string | Station slug, e.g. brest-3-fra-refmar |
lat / lon | float | Coordinates (alternative to port). |
days | int | 1-7 days (default: 3). |
Exemple de réponse
Valeurs possibles de condition
Le champ condition renvoie toujours l'une de ces valeurs (associez une icône à chacune, y compris unknown) :
clearmostly_clearpartly_cloudyovercastfogfreezing_foglight_drizzledrizzleheavy_drizzlefreezing_drizzleheavy_freezing_drizzlelight_rainrainheavy_rainfreezing_rainheavy_freezing_rainlight_snowsnowheavy_snowsnow_grainslight_showersshowersheavy_showerssnow_showersheavy_snow_showersthunderstormthunderstorm_hailheavy_thunderstorm_hailunknown Retourne la hauteur des vagues, la houle, les vagues de vent et l'état de la mer (modèles NOAA GFS-Wave / WaveWatch III).
cached and stale fields. A 502 means no data is available; an inland point returns 422.
| Paramètre | Type | Description |
|---|---|---|
port | string | Station slug, e.g. brest-3-fra-refmar |
lat / lon | float | Coordinates (alternative to port). |
days | int | 1-7 days (default: 3). |
Exemple de réponse
Each hourly entry also includes sea_surface_temperature_c — the sea-surface (water) temperature in °C, from satellite SST (MUR / GHRSST, ~1 km), accurate near coasts.
Valeurs possibles de sea_state
Le champ sea_state est basé sur l'échelle de Douglas (d'après la hauteur des vagues) et renvoie toujours l'une de ces valeurs :
calm_glassycalm_rippledsmoothslightmoderateroughvery_roughhighvery_highunknown Retourne lever/coucher du soleil, aube, crépuscule, phase lunaire, illumination, lever/coucher de lune.
| Paramètre | Type | Description |
|---|---|---|
port | string | Station slug, e.g. brest-3-fra-refmar |
lat / lon | float | Coordinates (alternative to port). |
date | YYYY-MM-DD | Start date (default: today). |
days | int | 1-7 days (default: 1). |
Exemple de réponse
Retourne météo, océan et astronomie en un seul appel. Utilisez le paramètre include pour sélectionner les données.
| Paramètre | Type | Description |
|---|---|---|
port | string | Station slug, e.g. brest-3-fra-refmar |
lat / lon | float | Coordinates (alternative to port). |
days | int | 1-7 days (default: 3). |
include | string | Comma-separated: weather,marine,astronomy (default: all). |
Exemple de réponse
Retourne les URLs des tuiles radar pluie pour créer des cartes animées de précipitations. Données RainViewer, mises à jour toutes les ~10 minutes.
| Paramètre | Type | Description |
|---|---|---|
port | string | Station slug, e.g. brest-3-fra-refmar |
lat / lon | float | Coordinates (alternative to port). |
Exemple de réponse
Real-time data with ~10 minute delay. Tile URLs are standard slippy map format compatible with Leaflet, Mapbox GL, etc.
Retourne les hauteurs d'eau observées en temps réel depuis les marégraphes REFMAR/SHOM. Disponible pour ~100 stations françaises.
| Paramètre | Type | Description |
|---|---|---|
port | string | Station slug (French REFMAR stations only), e.g. brest |
date | YYYY-MM-DD | Start date (default: today). |
days | int | 1-7 days (default: 1). |
Exemple de réponse
Only available for French REFMAR stations that have their own tide gauge (~100 stations). A secondary port with no gauge of its own returns 404 — check tide_source.reference_slug in /api/v1/tides for the nearest gauged station. Observations are sub-sampled to 10-minute intervals and aligned with our prediction datum. The /api/v1/tides response exposes has_observations (true only for stations with their own gauge) and, when true, an observations field.
Hourly total surface currents (ocean circulation + tide + Stokes drift) up to 5 days ahead, anywhere at sea. Speed in knots, direction the current flows towards.
lat / lon | float | Position at sea (or port= a station slug, with optional country=). |
days | int | 1–5 (default 3). |
The model grid is ~8 km: reliable offshore, indicative only near shore — tidal races, narrow passes and harbour entrances are NOT resolved, and small islands or reefs may be invisible to the model. Every response carries a scope flag and this warning. Not for navigation.
Generated using E.U. Copernicus Marine Service Information — GLOBAL_ANALYSISFORECAST_PHY_001_024, doi:10.48670/moi-00016.
Retourne les prédictions de marées et données météo historiques. Marées via le moteur TICON, météo via la réanalyse ERA5 (ECMWF/Copernicus).
| Paramètre | Type | Description |
|---|---|---|
port | string | Station slug (required). |
date | YYYY-MM-DD | Start date in the past (required). |
days | int | 1-365 for tides, 1-90 for weather (default: 7). |
include | string | Comma-separated: tides,weather (default: tides). |
format | string | Format de réponse : json, csv ou geojson (défaut : json). |
Essayer
Exemple de réponse
Créez, gérez et testez des webhooks pour des alertes en temps réel sur les grandes marées et alertes tempête.
| Paramètre | Type | Description |
|---|---|---|
action | string | list, create, update, delete, test |
id | int | Webhook ID (for update/delete/test). |
Événements supportés
spring_tide— Alerte grande marée (hauteur > 4m)storm_warning— Alerte tempête (vent > 60km/h ou vagues > 4m)
Toutes les livraisons sont signées en HMAC-SHA256. Vérifiez le header X-TidesAtlas-Signature.
Les webhooks sont désactivés après 3 échecs consécutifs.
Sources de données et attributions
TidesAtlas construit la couche de routage, cache et intégration au-dessus de ces jeux de données scientifiques ouverts. Chaque source est listée avec sa licence.
FES2022
Global finite-element ocean tide model. Used for the /api/v1/tides/point endpoint and for 8,100+ FES2022-derived stations.
Produced by LEGOS, NOVELTIS and CLS. Distributed by AVISO+ with support from CNES. Use requires citation per AVISO+ license. Product page →
TICON
Harmonic constants for 3,000+ tide gauges worldwide. Used for the /api/v1/tides endpoint.
Sourced from the GESLA/PANGAEA database. License: CC BY 4.0 — commercial use permitted. Dataset →
NOAA CO-OPS
Harmonic constants for 1,000+ US tide stations.
Public domain (US government work). NOAA CO-OPS →
REFMAR / SHOM
Live observations from ~100 French tide gauges. Used to enrich /tides responses for French ports. French secondary ports are corrected with the Shom Références Altimétriques Maritimes (RAM).
License: Etalab 2.0 (RAM: Shom, 2025, doi:10.17183/MAREE_COURANTS_RAM). REFMAR →
National agencies
Official tide data from national agencies: South Korea (KHOA harmonic constants and tidal bench marks), Hong Kong (Hong Kong Observatory predictions), Taiwan (Central Weather Administration forecasts, checked against its tide gauges), Canada (Canadian Hydrographic Service predictions) and England (Environment Agency estuary tide gauges). Used for the /api/v1/tides endpoint.
KHOA: Korea Open Government License Type 1 · HKO via DATA.GOV.HK · CWA (Ministry of Transportation and Communications): Open Government Data License v1.0 · CHS (Fisheries and Oceans Canada): Open Government Licence – Canada · Environment Agency: Open Government Licence v3.0.
Copernicus Marine
Tide-gauge records from the Copernicus Marine in-situ network (Global Ocean delayed-mode sea level product), on which TidesAtlas fits its own harmonic constants. Used for the /api/v1/tides endpoint.
Generated using E.U. Copernicus Marine Service Information (doi:10.17882/93670). Product page →
Weather & marine
Powered by our own weather engine: an ECMWF-AIFS multi-model blend (ECMWF AIFS · DWD ICON-EU · NOAA HRRR/GFS), bias-corrected against live observations and continuously verified. Waves & sea state from NOAA WaveWatch III.
Upstream data: ECMWF (CC-BY-4.0), DWD & NOAA (open data / public domain).
Rain radar
Live rain radar tiles via RainViewer.
Attribution required, commercial use permitted. RainViewer →
Vous citez TidesAtlas dans vos travaux ? Mettez un lien vers tidesatlas.com et créditez la source upstream (par ex. « FES2022 via TidesAtlas ») quand le modèle de marée est la donnée principale utilisée.
Démarrage rapide dans votre langage préféré
Copiez, collez et commencez à construire en moins de 60 secondes.
SDKs officiels
Démarrez plus vite avec nos bibliothèques client officielles.
npm install tidesatlas
pip install tidesatlas
Serveur MCP pour agents IA
Connectez TidesAtlas directement à Claude, Cursor ou tout assistant IA compatible MCP.
Endpoint MCP
8 outils disponibles : tides, ports, countries, weather, marine, astronomy, conditions, history.
Configuration Claude Desktop
Tarification simple et transparente
Commencez gratuitement. Évoluez selon vos besoins. Pas de frais cachés.
Les 13 endpoints
Usage non commercial, source à citer obligatoirement
Authentification & limites de requêtes
Authentification
Transmettez votre clé API via un header (recommandé) ou un paramètre de requête :
Headers de limite de requêtes
Chaque réponse inclut vos informations d'utilisation :
X-RateLimit-Limit | Votre limite journalière |
X-RateLimit-Remaining | Requêtes restantes aujourd'hui |
X-RateLimit-Reset | Heure de réinitialisation (Unix) |
Deux limites s'appliquent — dépasser l'une ou l'autre renvoie un 429 Too Many Requests :
| Quota du plan | Free 50 au total · Hobby 500/jour · Starter 1 000/jour · Pro 10 000/jour · Business 50 000/jour |
| Débit par IP | 10 requêtes/seconde par IP (pics courts jusqu'à 30), max 20 connexions simultanées |
En cas de 429, attendez avant de réessayer (voir Retry-After / X-RateLimit-Reset). Un backoff exponentiel est recommandé.
Changelog
- 2026-10-18 —
/weather,/marine,/conditions: cached responses are now computed for your exact coordinates and never reused across days. Previously a cached response could belong to a nearby point (same 1° cell) or start on the previous day. Responses are also faster. No change to fields or formats. - 2026-10-18 —
/astronomy:day_lengthis no longernullwhen sunset falls after midnight UTC (western longitudes).
Questions fréquentes
?lat=&lon= à /api/v1/tides et TidesAtlas choisit automatiquement la meilleure source : si une station calibrée est à moins de 50 km, il retourne sa prédiction ; sinon, il utilise le modèle océanique global FES2022 à vos coordonnées exactes. Pour une réponse strictement modèle (sans bascule vers une station), utilisez /api/v1/tides/point. Les deux fonctionnent partout dans les océans, sans station requise.pip install tidesatlas (Python) ou npm install tidesatlas (Node.js). Nous publions également un serveur MCP sur tidesatlas.com/mcp pour les agents IA, et l'API elle-même est du REST standard — utilisable depuis n'importe quel langage avec une requête HTTP. Code source disponible sur GitHub sous @TidesAtlas./api/v1/marine renvoie la température de surface de la mer (eau) en °C, heure par heure (sea_surface_temperature_c), aux côtés de la hauteur des vagues, de la houle, des vagues de vent et de l'état de la mer. Données issues du modèle NOAA WaveWatch III./api/v1/tides/point avec ?heights=1&interval=30 pour obtenir une série de hauteurs échantillonnée ({ datetime, height_m } toutes les 5 à 60 minutes) — tout ce qu'il faut pour tracer une courbe de marée lisse. Sans ce paramètre, vous n'obtenez que les extrêmes (pleine/basse mer)./api/v1/marine renvoie, par heure et par jour, la hauteur des vagues, la période et la direction, la houle, les vagues de vent, l'état de la mer (échelle de Douglas) et la température de surface de la mer — issus des modèles océaniques NOAA GFS-Wave / WaveWatch III (température de l'eau : MUR SST, NASA JPL).Commencez à construire avec les données marées, météo & océan dès aujourd'hui
Clé API gratuite en 30 secondes. Pas de carte bancaire requise.