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.

Essayez maintenant
// 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" }, ...]
13,441+
Stations de marée
180
Pays
99.9%
Disponibilité
<200ms
Temps de réponse

Routage intelligent

Stations calibrées quand elles sont proches, modèle global FES2022 sinon. Automatique et transparent.

Marées en tout point océanique

NEW

Pré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.

Pack Marées
GET /api/v1/tides Horaires et hauteurs de marée

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ètreTypeDescription
portstringSlug de la station, ex. aberdeen. Utilisez /ports pour chercher.
countrystringOptional 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 / lonfloatRoutage 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.
dateYYYY-MM-DDStart date (default: today).
daysint1-14 days (default: 1).
formatstringFormat de réponse : json, csv ou geojson (défaut : json).
Stations françaises — coefficients de marée inclus. Les réponses pour les stations en France incluent un objet 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

Statut: —

Exemple de réponse

{ "port": { "name": "Aberdeen", "slug": "aberdeen", "lat": 57.14, "lon": -2.08, "timezone": "Europe/London" }, "data_source": "ticon", "tide_source": { "type": "own_station", "confidence": "high" }, "date": "2026-03-27", "days": 3, "count": 12, "extremes": [ { "datetime": "2026-03-27T04:23:00+00:00", "height_m": 3.82, "type": "high" }, { "datetime": "2026-03-27T10:41:00+00:00", "height_m": 0.94, "type": "low" }, ... ] }

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:

{ "tide_source": { "type": "reference_port", // or "own_station" "reference_slug": "le-crouesty", "reference_name": "Le Crouesty", "distance_km": 10.9, "corrections_applied": true, "confidence": "medium", // high | medium | low "method": "harmonic_transfer_ram" } }
  • 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_slug and distance_km tell 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, station and attribution are given; credit them.
  • model_point — no tide gauge here: the FES2022 global model is read at the nearest modelled sea point, model_cell_distance_km away (medium within 4 km, otherwise low).

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:

{ "measured_accuracy": { "gauge": "uhslc-245", "window": "2026-06-16 to 2026-07-31", "high_water": { "time_min": 8.6, "height_cm": 4.9 }, "low_water": { "time_min": 8.3, "height_cm": 4.5 } } }

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 /currents endpoint 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 coefficient sur chaque pleine mer dans extremes (absent sur les basses mers).
  • Un objet de premier niveau coefficients avec 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.

# Get tides + coefficients for Dunkerque, France GET /api/v1/tides?port=dunkerque&days=3&date=2026-05-14
Exemple de réponse (champs spécifiques à la France) :
{ "port": { "name": "Dunkerque", "country": "France", ... }, "data_source": "ticon", "extremes": [ { "datetime": "2026-05-14T05:49:00+02:00", "height_m": 0.81, "type": "low" }, { "datetime": "2026-05-14T11:49:00+02:00", "height_m": 5.56, "type": "high", "coefficient": 71 }, { "datetime": "2026-05-14T18:25:00+02:00", "height_m": 0.89, "type": "low" }, { "datetime": "2026-05-15T00:09:00+02:00", "height_m": 5.61, "type": "high", "coefficient": 77 }, ... ], "coefficients": { "available": true, "source": "Computed from Brest harmonic constituents (French tidal coefficient scale)", "scale": "20 (neap) to 120 (extreme spring)", "coverage": "2026-01-01 to 2035-12-29", "daily": [ { "date": "2026-05-14", "morning": 71, "afternoon": 77, "max": 77 }, { "date": "2026-05-15", "morning": 83, "afternoon": 88, "max": 88 }, ... ] } }
GET /api/v1/tides/point Modèle FES2022 explicite aux coordonnées exactes NEW

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ètreTypeDescription
latfloatLatitude, decimal degrees, -90 to 90. Required.
lonfloatLongitude, decimal degrees, -180 to 180. Required.
dateYYYY-MM-DDStart date UTC (default: today).
daysint1-14 days (default: 1).
datumstringVertical reference: LAT (default, like the /tides endpoint) or MSL.
intervalintMinutes between samples, 5-60 (default: 10). Sets the spacing of the optional heights series and the resolution of extremes detection.
heightsboolSet to 1 to also return an interval-sampled height series — ideal for plotting the tide curve (default: off). Each point is { datetime, height_m }.
How it differs from /api/v1/tides: the /tides endpoint snaps your coordinates to the nearest of 18,000+ predefined stations. /tides/point computes the prediction directly at the exact coordinates you provide, using the FES2022 grid (~7 km resolution). Returns a 404 if the point is on land or outside the ocean mask.

Exemple de réponse

{ "query": { "lat": 48.383, "lon": -4.495, "date": "2026-05-13", "days": 1, "datum": "LAT" }, "model": "FES2022 (34 constituents) via pyfes", "datum": "LAT", "datum_offset_msl": -3.5268, "count": 4, "extremes": [ { "datetime": "2026-05-13T00:20:00+00:00", "height_m": 5.42, "type": "high" }, { "datetime": "2026-05-13T07:00:00+00:00", "height_m": 1.31, "type": "low" }, ... ], "attribution": { "source": "FES2022 by LEGOS/NOVELTIS/CLS, distributed by AVISO+ ..." } }
# Tides anywhere at sea — example: middle of Atlantic GET /api/v1/tides/point?lat=35&lon=-30&days=3 # Tide curve for plotting — sampled height every 30 min GET /api/v1/tides/point?lat=48.38&lon=-4.49&days=1&interval=30&heights=1 # → adds: "heights_count": 48, # "heights": [ { "datetime": "...", "height_m": 3.75 }, ... ]
GET /api/v1/ports Rechercher des stations

Recherchez et listez les stations de marée disponibles dans le monde.

ParamètreTypeDescription
searchstringSearch by name, e.g. aberdeen.
countrystringFilter by country slug, e.g. united-kingdom.
limitintMax results, 1-500 (default: 50).
formatstringFormat de réponse : json, csv ou geojson (défaut : json).
# Find all stations in Japan GET /api/v1/ports?country=japan&limit=100 # Search by name GET /api/v1/ports?search=tokyo
GET /api/v1/countries Lister tous les pays

Retourne les 188 pays avec leur nombre de stations.

{ "count": 188, "countries": [ { "name": "United Kingdom", "slug": "united-kingdom", "code_iso": "GB", "station_count": 238 }, { "name": "United States", "slug": "united-states", "code_iso": "US", "station_count": 156 }, ... ] }
Pack Météo
GET /api/v1/weather Prévisions météo

Retourne les prévisions météo horaires et quotidiennes : température, vent, précipitations, indice UV et conditions.

Weather API: full page with examples
Data freshness: Forecasts come from our own weather engine (ECMWF AIFS multi-model blend). Each requested point is cached server-side for up to 3 hours, never across UTC days. If the engine is temporarily unavailable, the same day’s cached response is served automatically — check the cached and stale fields. A 502 response means no data is available at all for that location.
ParamètreTypeDescription
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).
daysint1-7 days (default: 3).

Exemple de réponse

{ "lat": 48.39, "lon": -4.49, "timezone": "Europe/Paris", "source": "TidesAtlas weather engine — ECMWF-AIFS multi-model blend, bias-corrected & verified", "daily": [{ "date": "2026-03-27", "temperature_max_c": 12.3, "temperature_min_c": 7.3, "precipitation_mm": 1.5, "wind_max_kmh": 19.2, "uv_index_max": 3.35, "condition": "light_drizzle", "sunrise": "06:06", "sunset": "18:40" }], "hourly": [ { "datetime": "2026-03-27T00:00", "temperature_c": 7.3, "feels_like_c": 4.6, "humidity_pct": 78, "wind_speed_kmh": 4.5, "condition": "overcast", ... }, ... ] }

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
GET /api/v1/marine Prévisions océan, vagues & température de l'eau
Marine & sea temperature API: full page with examples

Retourne la hauteur des vagues, la houle, les vagues de vent et l'état de la mer (modèles NOAA GFS-Wave / WaveWatch III).

Data freshness: Waves come from NOAA GFS-Wave / WaveWatch III, water temperature from MUR SST (NASA JPL). Each requested point is cached server-side for up to 3 hours, never across UTC days. If the engine is temporarily unavailable, the same day’s cached response is served automatically — check the cached and stale fields. A 502 means no data is available; an inland point returns 422.
ParamètreTypeDescription
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).
daysint1-7 days (default: 3).

Exemple de réponse

{ "lat": 48.39, "lon": -4.49, "source": "TidesAtlas weather engine — NOAA GFS-Wave / WaveWatch III", "daily": [{ "date": "2026-03-27", "wave_height_max_m": 1.04, "wave_period_max_s": 10.05, "wave_direction_dominant": 268, "swell_height_max_m": 0.98, "swell_period_max_s": 9.2, "sea_state": "smooth" }], "hourly": [ { "datetime": "2026-03-27T00:00", "wave_height_m": 1.02, "wave_direction_deg": 275, "swell_height_m": 0.98, "sea_surface_temperature_c": 14.2, ... }, ... ] }

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
GET /api/v1/astronomy Données soleil & lune
Sun & moon API: full page with examples

Retourne lever/coucher du soleil, aube, crépuscule, phase lunaire, illumination, lever/coucher de lune.

ParamètreTypeDescription
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).
dateYYYY-MM-DDStart date (default: today).
daysint1-7 days (default: 1).

Exemple de réponse

{ "lat": 48.39, "lon": -4.49, "data": [{ "date": "2026-03-27", "sun": { "sunrise": "06:06", "sunset": "18:41", "dawn": "05:35", "dusk": "19:12", "day_length": "12:35" }, "moon": { "phase": "first_quarter", "illumination_pct": 66.8, "age_days": 9, "moonrise": "13:45", "moonset": "03:12" } }] }
GET /api/v1/conditions Toutes les conditions (unifié)

Retourne météo, océan et astronomie en un seul appel. Utilisez le paramètre include pour sélectionner les données.

ParamètreTypeDescription
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).
daysint1-7 days (default: 3).
includestringComma-separated: weather,marine,astronomy (default: all).

Exemple de réponse

# All data in one call GET /api/v1/conditions?port=brest-3-fra-refmar&days=3 # Only weather + astronomy GET /api/v1/conditions?lat=48.39&lon=-4.49&include=weather,astronomy # Response contains: weather{}, marine{}, astronomy[]
GET /api/v1/radar Radar pluie

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ètreTypeDescription
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).

Exemple de réponse

{ "lat": 48.39, "lon": -4.49, "generated": 1774697424, "source": "RainViewer (rainviewer.com)", "tile_size": 256, "max_zoom": 7, "color_scheme": 1, "frames": { "past": [ { "time": "2026-03-28T14:30:00Z", "timestamp": 1774690200, "tile_url": "https://tilecache.rainviewer.com/v2/radar/.../256/{z}/{x}/{y}/1/1_1.png" } ], "nowcast": [ { "time": "2026-03-28T15:00:00Z", "timestamp": 1774692000, "tile_url": "https://tilecache.rainviewer.com/v2/radar/.../256/{z}/{x}/{y}/1/1_1.png" } ] } }

Real-time data with ~10 minute delay. Tile URLs are standard slippy map format compatible with Leaflet, Mapbox GL, etc.

GET /api/v1/observations Observations du niveau de la mer LIVE

Retourne les hauteurs d'eau observées en temps réel depuis les marégraphes REFMAR/SHOM. Disponible pour ~100 stations françaises.

ParamètreTypeDescription
portstringStation slug (French REFMAR stations only), e.g. brest
dateYYYY-MM-DDStart date (default: today).
daysint1-7 days (default: 1).

Exemple de réponse

{ "port": { "name": "Brest", "slug": "brest", "country": "France" }, "station_id": 3, "source": "REFMAR/SHOM (Licence Etalab 2.0)", "interval_minutes": 10, "data": [ { "date": "2026-03-28", "observations": [ { "datetime": "2026-03-28T00:00", "height_m": 9.15, "timestamp": 1774684800 }, ... ]} ] }

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.

GET /api/v1/currents Surface currents (open water)
Ocean currents API: full page with examples

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 / lonfloatPosition at sea (or port= a station slug, with optional country=).
daysint1–5 (default 3).
{ "scope": "open_water", // or "near_shore" — honesty flag "hours": [ { "t": "2026-09-17 14:00", "speed_kn": 0.24, "dir_deg": 47 } ], "model_point": { "distance_km": 3.1 } }

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.

Pack Complete uniquement
GET /api/v1/history Données historiques

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ètreTypeDescription
portstringStation slug (required).
dateYYYY-MM-DDStart date in the past (required).
daysint1-365 for tides, 1-90 for weather (default: 7).
includestringComma-separated: tides,weather (default: tides).
formatstringFormat de réponse : json, csv ou geojson (défaut : json).

Essayer

Statut: —

Exemple de réponse

# Get historical tides and weather for Brest GET /api/v1/history?port=brest&date=2025-06-01&days=7&include=tides,weather
POST /api/v1/webhooks Webhooks

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ètreTypeDescription
actionstringlist, create, update, delete, test
idintWebhook 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.

# Create a webhook POST /api/v1/webhooks?action=create { "url": "https://example.com/webhook", "events": ["spring_tide", "storm_warning"], "port_slug": "brest" } # Test delivery POST /api/v1/webhooks?action=test&id=1

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.

cURL
JavaScript
Python
PHP
# Get 3-day tides for San Francisco curl -H "X-API-Key: YOUR_KEY" \ "https://tidesatlas.com/api/v1/tides?port=san-francisco&days=3"
const response = await fetch( 'https://tidesatlas.com/api/v1/tides?port=san-francisco&days=3', { headers: { 'X-API-Key': 'YOUR_KEY' } } ); const { extremes } = await response.json(); extremes.forEach(e => console.log(`${e.type}: ${e.datetime} — ${e.height_m}m`) );
import requests response = requests.get( 'https://tidesatlas.com/api/v1/tides', params={'port': 'san-francisco', 'days': 3}, headers={'X-API-Key': 'YOUR_KEY'} ) for e in response.json()['extremes']: print(f"{e['type']}: {e['datetime']} — {e['height_m']}m")
$ch = curl_init('https://tidesatlas.com/api/v1/tides?port=san-francisco&days=3'); curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: YOUR_KEY']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = json_decode(curl_exec($ch), true); curl_close($ch); foreach ($data['extremes'] as $e) { echo "{$e['type']}: {$e['datetime']} — {$e['height_m']}m\n"; }

SDKs officiels

Démarrez plus vite avec nos bibliothèques client officielles.

JavaScript / Node.js
npm install tidesatlas
const TidesAtlas = require('tidesatlas'); const api = new TidesAtlas('YOUR_KEY'); const data = await api.tides({ port: 'san-francisco', days: 3 }); console.log(data.extremes);
Python
pip install tidesatlas
from tidesatlas import TidesAtlas api = TidesAtlas("YOUR_KEY") data = api.tides(port="san-francisco", days=3) print(data["extremes"])

Serveur MCP pour agents IA

Connectez TidesAtlas directement à Claude, Cursor ou tout assistant IA compatible MCP.

Endpoint MCP

https://tidesatlas.com/mcp

8 outils disponibles : tides, ports, countries, weather, marine, astronomy, conditions, history.

Configuration Claude Desktop

{ "mcpServers": { "tidesatlas": { "url": "https://tidesatlas.com/mcp", "headers": { "X-API-Key": "YOUR_KEY" } } } }

Tarification simple et transparente

Commencez gratuitement. Évoluez selon vos besoins. Pas de frais cachés.

Les 13 endpoints
Essai
$0
50 crédits uniques
Commencer gratuitement
Free Web
$0
25 requêtes / jour
Usage non commercial, source à citer obligatoirement
L’obtenir gratuitement
Hobby
$7.99/mo
500 requêtes / jour
Commencer
Pro
$39/mo
10,000 requêtes / jour
Commencer
Business
$99/mo
50,000 requêtes / jour
Nous contacter
Paiement sécurisé via Stripe
Annulation à tout moment
Chiffrement HTTPS
Conforme RGPD

Authentification & limites de requêtes

Authentification

Transmettez votre clé API via un header (recommandé) ou un paramètre de requête :

# Header (recommended) curl -H "X-API-Key: YOUR_KEY" https://tidesatlas.com/api/v1/tides?port=aberdeen # Query parameter curl https://tidesatlas.com/api/v1/tides?port=aberdeen&api_key=YOUR_KEY

Headers de limite de requêtes

Chaque réponse inclut vos informations d'utilisation :

X-RateLimit-LimitVotre limite journalière
X-RateLimit-RemainingRequêtes restantes aujourd'hui
X-RateLimit-ResetHeure de réinitialisation (Unix)

Deux limites s'appliquent — dépasser l'une ou l'autre renvoie un 429 Too Many Requests :

Quota du planFree 50 au total · Hobby 500/jour · Starter 1 000/jour · Pro 10 000/jour · Business 50 000/jour
Débit par IP10 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_length is no longer null when sunset falls after midnight UTC (western longitudes).

Questions fréquentes

Qu'est-ce qui alimente les prévisions TidesAtlas ?
Nous avons développé un moteur de prédiction harmonique propriétaire qui fusionne trois jeux de données complémentaires : TICON-4 (3 000+ stations de référence, jusqu'à 60 constituants de marée), NOAA (1 075 stations américaines, 37 constituants) et le modèle océanique global FES2022 du LEGOS/CNES (8 400+ points côtiers, 8 constituants majeurs). Chaque source a été individuellement calibrée, validée croisée et intégrée dans un pipeline unifié — un travail d'ingénierie considérable qui a demandé des mois de développement. Résultat : 13 400+ stations dans 180 pays, toutes servies via une API unique et cohérente. Pour ~100 stations françaises, nous fournissons également les observations en temps réel du réseau de marégraphes REFMAR/SHOM.
Quelle est la précision des prévisions ?
Notre algorithme effectue une analyse harmonique utilisant jusqu'à 60 constituants de marée par station, avec alignement automatique des référentiels et corrections nodales. Pour les stations primaires (TICON-4, NOAA), la précision est typiquement de 5-10 minutes et 10-15 cm. Pour les stations dérivées du modèle (FES2022), elle est de 10-20 minutes et 15-25 cm. Nous validons en continu nos résultats par rapport aux observations temps réel lorsqu'elles sont disponibles. Les conditions météo (vent, pression) peuvent causer des écarts supplémentaires — c'est pourquoi nous fournissons aussi les données météo marine pour vous donner une vision complète.
Ai-je besoin d'une carte bancaire pour commencer ?
Non. La formule Essai vous offre 50 crédits uniques sans carte bancaire. Vous n'avez besoin de coordonnées de paiement que pour passer à un plan payant.
Puis-je l'utiliser pour des projets commerciaux ?
Oui ! Tous les plans (y compris le gratuit) autorisent un usage commercial. Si nous exploitons des jeux de données ouverts, notre moteur de prédiction, notre infrastructure API et notre pipeline de données sont entièrement développés en interne. Il suffit d'inclure une attribution à TidesAtlas quelque part dans votre application.
Que se passe-t-il si je dépasse ma limite journalière ?
Vous recevrez un code de statut 429. Votre limite se réinitialise à minuit UTC. Vous pouvez mettre à niveau votre plan à tout moment depuis le tableau de bord pour obtenir plus de requêtes.
Puis-je obtenir des prédictions de marée à des coordonnées exactes (pas seulement des ports prédéfinis) ?
Oui. Passez ?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.
Existe-t-il des SDK ou des librairies pour Python, Node.js ou d'autres langages ?
Oui. Installez 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.
L'API fournit-elle la température de l'eau (mer) ?
Oui. L'endpoint /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.
Puis-je obtenir les hauteurs de marée pour tracer une courbe, pas seulement les heures de pleine/basse mer ?
Oui. Appelez /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).
Proposez-vous des prévisions de vagues et de houle ?
Oui. L'endpoint /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.

Obtenir votre clé API gratuite