API Mareas, Clima y Océano global
Mareas, tiempo, olas, mar de fondo, temperatura del agua, sol y luna para 13,441+ estaciones en 180 países. 13 endpoints REST. Una sola clave API. Basado en TICON-4, NOAA y modelos 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" }, ...]
Enrutamiento inteligente
Estaciones calibradas cuando están cerca, modelo global FES2022 cuando no. Automático y transparente.
Mareas en cualquier punto del mar
NEWPredicciones en coordenadas exactas, sin estación requerida. Diseñado para navegación oceánica e investigación.
Observaciones en tiempo real
Sensores REFMAR/SHOM en directo fusionados con las predicciones para puertos franceses.
Listo para producción
Caché agresivo, webhooks, rate limiting, 99,9 % de uptime.
Diseñado para todos los usos de mareas
Desde aplicaciones meteorológicas personales hasta plataformas marinas empresariales.
Navegación marítima
Planificación de entrada/salida de puerto, cálculos de calado y timing de paso.
Apps de pesca
Ventanas de pesca óptimas basadas en fase de marea, altura y corriente.
Surf y deportes acuáticos
Reportes de surf con datos de mareas, planificadores de kayak y guías de actividades de playa.
Inmobiliaria costera
Análisis de riesgo de inundación, datos de propiedades costeras y evaluaciones de seguros.
Investigación y ciencia
Conjuntos de datos oceanográficos, trabajo de campo en biología marina y modelado climático.
Clima y viajes
Integre mareas en paneles meteorológicos, planificadores de viaje y dispositivos IoT.
13 endpoints, posibilidades infinitas
Respuestas JSON limpias. Sin XML, sin SOAP, sin complicaciones.
Devuelve los horarios de pleamar y bajamar con alturas. Use un slug de estación para una predicción calibrada, o pase coordenadas y TidesAtlas elige automáticamente la mejor fuente.
| Parámetro | Tipo | Descripción |
|---|---|---|
port | string | Slug de estación, p. ej. aberdeen. Use /ports para buscar. |
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 | Enrutamiento inteligente: si hay una estación calibrada a menos de 50 km, devuelve su predicción (data_source: "ticon"). Si no, usa el modelo oceánico global FES2022 en sus coordenadas exactas (data_source: "fes2022"). Sin redirección silenciosa a una estación lejana. |
date | YYYY-MM-DD | Start date (default: today). |
days | int | 1-14 days (default: 1). |
format | string | Formato de respuesta: json, csv o geojson (predeterminado: json). |
coefficients (mañana/tarde/máx por día, del 2026-01-01 al 2035-12-29) y un campo coefficient en cada pleamar (escala francesa, 20 = mareas muertas → 120 = mareas vivas excepcionales). No aplicable fuera de Francia. Probar
Ejemplo de respuesta
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.
Francia: coeficientes de marea (escala francesa)
Para las estaciones en Francia, la respuesta incluye el coeficiente de marea francés — un número adimensional de 20 (mareas muertas) a 120 (mareas vivas excepcionales), usado comúnmente en el contexto marítimo francés. El campo aparece en dos lugares:
- Un campo
coefficienten cada pleamar enextremes(ausente en las bajamares). - Un objeto de primer nivel
coefficientscon valores diarios mañana/tarde/máx para el rango de fechas solicitado.
Cobertura: 2026-01-01 → 2035-12-29. Fuente: computed in-house from Brest harmonic constituents. Geografía: French stations only — the fields are omitted for stations outside France.
Leyenda: < 45 = mareas muertas, 45-70 = medias, 70-95 = por encima de la media, 95-110 = mareas vivas, > 110 = mareas vivas excepcionales.
Ejemplo de respuesta (campos específicos de Francia):
Siempre usa el modelo FES2022 (34 constituyentes armónicos) en las coordenadas exactas que proporciona — nunca recurre a una estación. Útil cuando necesita explícitamente la salida del modelo (investigación, comparaciones, navegación oceánica). Para la mayoría de las apps, /api/v1/tides?lat=&lon= es mejor porque elige automáticamente la mejor fuente.
| Parámetro | Tipo | Descripción |
|---|---|---|
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.
Ejemplo de respuesta
Busque y liste las estaciones de marea disponibles en todo el mundo.
| Parámetro | Tipo | Descripción |
|---|---|---|
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 | Formato de respuesta: json, csv o geojson (predeterminado: json). |
Devuelve los 188 países con su número de estaciones.
Devuelve el pronóstico meteorológico por horas y diario: temperatura, viento, precipitaciones, índice UV y condiciones.
Weather API: full page with examplescached and stale fields. A 502 response means no data is available at all for that location.
| Parámetro | Tipo | Descripción |
|---|---|---|
port | string | Station slug, e.g. brest-3-fra-refmar |
lat / lon | float | Coordinates (alternative to port). |
days | int | 1-7 days (default: 3). |
Ejemplo de respuesta
Valores posibles de condition
El campo condition siempre devuelve uno de estos valores (asigna un icono a cada uno, incluido 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 Devuelve la altura del oleaje, marejada, olas de viento y estado del mar (modelos NOAA GFS-Wave / WaveWatch III).
cached and stale fields. A 502 means no data is available; an inland point returns 422.
| Parámetro | Tipo | Descripción |
|---|---|---|
port | string | Station slug, e.g. brest-3-fra-refmar |
lat / lon | float | Coordinates (alternative to port). |
days | int | 1-7 days (default: 3). |
Ejemplo de respuesta
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.
Valores posibles de sea_state
El campo sea_state se basa en la escala de Douglas (según la altura de las olas) y siempre devuelve uno de estos valores:
calm_glassycalm_rippledsmoothslightmoderateroughvery_roughhighvery_highunknown Devuelve salida/puesta del sol, amanecer, crepúsculo, fase lunar, iluminación, salida/puesta de luna.
| Parámetro | Tipo | Descripción |
|---|---|---|
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). |
Ejemplo de respuesta
Devuelve datos meteorológicos, marinos y astronómicos en una sola llamada. Use el parámetro include para seleccionar los datos.
| Parámetro | Tipo | Descripción |
|---|---|---|
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). |
Ejemplo de respuesta
Devuelve URLs de mosaicos de radar de lluvia para mapas animados de precipitación. Datos de RainViewer, actualizados cada ~10 minutos.
| Parámetro | Tipo | Descripción |
|---|---|---|
port | string | Station slug, e.g. brest-3-fra-refmar |
lat / lon | float | Coordinates (alternative to port). |
Ejemplo de respuesta
Real-time data with ~10 minute delay. Tile URLs are standard slippy map format compatible with Leaflet, Mapbox GL, etc.
Devuelve alturas de agua observadas en tiempo real desde los mareógrafos REFMAR/SHOM. Disponible para ~100 estaciones francesas.
| Parámetro | Tipo | Descripción |
|---|---|---|
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). |
Ejemplo de respuesta
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.
Devuelve predicciones de mareas y datos meteorológicos históricos. Mareas via motor TICON, meteorología via reanálisis ERA5 (ECMWF/Copernicus).
| Parámetro | Tipo | Descripción |
|---|---|---|
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 | Formato de respuesta: json, csv o geojson (predeterminado: json). |
Probar
Ejemplo de respuesta
Crea, gestiona y prueba webhooks para alertas en tiempo real sobre mareas vivas y alertas de tormenta.
| Parámetro | Tipo | Descripción |
|---|---|---|
action | string | list, create, update, delete, test |
id | int | Webhook ID (for update/delete/test). |
Eventos soportados
spring_tide— Alerta de marea viva (altura > 4m)storm_warning— Alerta de tormenta (viento > 60km/h o olas > 4m)
Todas las entregas están firmadas con HMAC-SHA256. Verifica el header X-TidesAtlas-Signature.
Los webhooks se desactivan tras 3 fallos consecutivos.
Fuentes de datos y atribuciones
TidesAtlas construye la capa de enrutamiento, caché e integración sobre estos conjuntos de datos científicos abiertos. Cada fuente está listada con su licencia.
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 →
¿Cita TidesAtlas en su trabajo? Enlace a tidesatlas.com y acredite la fuente upstream (p. ej. «FES2022 vía TidesAtlas») cuando el modelo de marea sea el dato principal.
Inicio rápido en tu lenguaje favorito
Copia, pega y empieza a construir en menos de 60 segundos.
SDKs oficiales
Empieza más rápido con nuestras bibliotecas cliente oficiales.
npm install tidesatlas
pip install tidesatlas
Servidor MCP para agentes IA
Conecta TidesAtlas directamente a Claude, Cursor o cualquier asistente IA compatible con MCP.
Endpoint MCP
8 herramientas disponibles: tides, ports, countries, weather, marine, astronomy, conditions, history.
Configuración Claude Desktop
Precios simples y transparentes
Empieza gratis. Escala cuando lo necesites. Sin cargos ocultos.
Los 13 endpoints
Autenticación y límites de peticiones
Autenticación
Pase su clave API mediante header (recomendado) o parámetro de consulta:
Headers de límite de peticiones
Cada respuesta incluye su información de uso:
X-RateLimit-Limit | Su límite diario |
X-RateLimit-Remaining | Peticiones restantes hoy |
X-RateLimit-Reset | Hora de reinicio (Unix) |
Se aplican dos límites — superar cualquiera devuelve 429 Too Many Requests:
| Cuota del plan | Free 50 en total · Hobby 500/día · Starter 1.000/día · Pro 10.000/día · Business 50.000/día |
| Tasa por IP | 10 solicitudes/segundo por IP (ráfagas cortas hasta 30), máx. 20 conexiones simultáneas |
Ante un 429, espera antes de reintentar (ver Retry-After / X-RateLimit-Reset). Se recomienda backoff exponencial.
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).
Preguntas frecuentes
?lat=&lon= a /api/v1/tides y TidesAtlas elige automáticamente la mejor fuente: si hay una estación calibrada a menos de 50 km, devuelve su predicción; en caso contrario, usa el modelo oceánico global FES2022 en sus coordenadas exactas. Para una respuesta exclusivamente del modelo (sin redirección a una estación), use /api/v1/tides/point. Ambos funcionan en cualquier punto de los océanos del mundo, sin estación necesaria.pip install tidesatlas (Python) o npm install tidesatlas (Node.js). También publicamos un servidor MCP en tidesatlas.com/mcp para agentes de IA, y la API es REST estándar — utilizable desde cualquier lenguaje con HTTP. Código fuente disponible en GitHub bajo @TidesAtlas./api/v1/marine devuelve la temperatura de la superficie del mar (agua) en °C por hora (sea_surface_temperature_c), junto con la altura de las olas, el mar de fondo, las olas de viento y el estado del mar. Datos del modelo NOAA WaveWatch III./api/v1/tides/point con ?heights=1&interval=30 para obtener una serie de alturas muestreada ({ datetime, height_m } cada 5–60 minutos), todo lo necesario para dibujar una curva de marea suave. Sin ese parámetro solo obtienes los extremos (pleamar/bajamar)./api/v1/marine devuelve, por hora y por día, la altura de las olas, el período y la dirección, el mar de fondo, las olas de viento, el estado del mar (escala Douglas) y la temperatura de la superficie del mar — de los modelos oceánicos NOAA GFS-Wave / WaveWatch III (temperatura del agua: MUR SST, NASA JPL).Empiece a construir con datos de mareas, clima y océano hoy
Clave API gratuita en 30 segundos. Sin tarjeta de crédito.