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.

Obtener clave API50 créditos gratis al registrarte Ver documentaciónVer doc Precios
Pruébalo ahora
// 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+
Estaciones de marea
180
Países
99.9%
Disponibilidad
<200ms
Tiempo de respuesta

Enrutamiento inteligente

Estaciones calibradas cuando están cerca, modelo global FES2022 cuando no. Automático y transparente.

Mareas en cualquier punto del mar

NEW

Predicciones 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.

Pack Mareas
GET /api/v1/tides Horarios y alturas de marea

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ámetroTipoDescripción
portstringSlug de estación, p. ej. aberdeen. Use /ports para buscar.
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 / lonfloatEnrutamiento 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.
dateYYYY-MM-DDStart date (default: today).
daysint1-14 days (default: 1).
formatstringFormato de respuesta: json, csv o geojson (predeterminado: json).
Estaciones francesas — coeficientes de marea incluidos. Las respuestas para estaciones en Francia incluyen un objeto 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

Estado: —

Ejemplo de respuesta

{ "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.

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 coefficient en cada pleamar en extremes (ausente en las bajamares).
  • Un objeto de primer nivel coefficients con 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.

# Get tides + coefficients for Dunkerque, France GET /api/v1/tides?port=dunkerque&days=3&date=2026-05-14
Ejemplo de respuesta (campos específicos de Francia):
{ "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 Modelo FES2022 explícito en coordenadas exactas NEW

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ámetroTipoDescripción
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.

Ejemplo de respuesta

{ "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 Buscar estaciones

Busque y liste las estaciones de marea disponibles en todo el mundo.

ParámetroTipoDescripción
searchstringSearch by name, e.g. aberdeen.
countrystringFilter by country slug, e.g. united-kingdom.
limitintMax results, 1-500 (default: 50).
formatstringFormato de respuesta: json, csv o geojson (predeterminado: 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 Listar todos los países

Devuelve los 188 países con su número de estaciones.

{ "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 Clima
GET /api/v1/weather Pronóstico del tiempo

Devuelve el pronóstico meteorológico por horas y diario: temperatura, viento, precipitaciones, índice UV y condiciones.

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.
ParámetroTipoDescripción
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).
daysint1-7 days (default: 3).

Ejemplo de respuesta

{ "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", ... }, ... ] }

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
GET /api/v1/marine Pronóstico oceánico, oleaje y temperatura del agua
Marine & sea temperature API: full page with examples

Devuelve la altura del oleaje, marejada, olas de viento y estado del mar (modelos 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.
ParámetroTipoDescripción
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).
daysint1-7 days (default: 3).

Ejemplo de respuesta

{ "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.

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
GET /api/v1/astronomy Datos de sol y luna
Sun & moon API: full page with examples

Devuelve salida/puesta del sol, amanecer, crepúsculo, fase lunar, iluminación, salida/puesta de luna.

ParámetroTipoDescripción
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).
dateYYYY-MM-DDStart date (default: today).
daysint1-7 days (default: 1).

Ejemplo de respuesta

{ "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 Todas las condiciones (unificado)

Devuelve datos meteorológicos, marinos y astronómicos en una sola llamada. Use el parámetro include para seleccionar los datos.

ParámetroTipoDescripción
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).

Ejemplo de respuesta

# 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 de lluvia

Devuelve URLs de mosaicos de radar de lluvia para mapas animados de precipitación. Datos de RainViewer, actualizados cada ~10 minutos.

ParámetroTipoDescripción
portstringStation slug, e.g. brest-3-fra-refmar
lat / lonfloatCoordinates (alternative to port).

Ejemplo de respuesta

{ "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 Observaciones del nivel del mar LIVE

Devuelve alturas de agua observadas en tiempo real desde los mareógrafos REFMAR/SHOM. Disponible para ~100 estaciones francesas.

ParámetroTipoDescripción
portstringStation slug (French REFMAR stations only), e.g. brest
dateYYYY-MM-DDStart date (default: today).
daysint1-7 days (default: 1).

Ejemplo de respuesta

{ "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.

Solo pack Complete
GET /api/v1/history Datos históricos

Devuelve predicciones de mareas y datos meteorológicos históricos. Mareas via motor TICON, meteorología via reanálisis ERA5 (ECMWF/Copernicus).

ParámetroTipoDescripción
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).
formatstringFormato de respuesta: json, csv o geojson (predeterminado: json).

Probar

Estado: —

Ejemplo de respuesta

# 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

Crea, gestiona y prueba webhooks para alertas en tiempo real sobre mareas vivas y alertas de tormenta.

ParámetroTipoDescripción
actionstringlist, create, update, delete, test
idintWebhook 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.

# 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

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.

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 oficiales

Empieza más rápido con nuestras bibliotecas cliente oficiales.

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"])

Servidor MCP para agentes IA

Conecta TidesAtlas directamente a Claude, Cursor o cualquier asistente IA compatible con MCP.

Endpoint MCP

https://tidesatlas.com/mcp

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

Configuración Claude Desktop

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

Precios simples y transparentes

Empieza gratis. Escala cuando lo necesites. Sin cargos ocultos.

Los 13 endpoints
Prueba
$0
50 créditos únicos
Empezar gratis
Free Web
$0
25 peticiones / día
Uso no comercial, es obligatorio citar la fuente
Obtenerlo gratis
Hobby
$7.99/mo
500 peticiones / día
Empezar
Pro
$39/mo
10,000 peticiones / día
Empezar
Business
$99/mo
50,000 peticiones / día
Contáctenos
Pago seguro con Stripe
Cancela cuando quieras
Cifrado HTTPS
Cumple con el RGPD

Autenticación y límites de peticiones

Autenticación

Pase su clave API mediante header (recomendado) o parámetro de consulta:

# 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 límite de peticiones

Cada respuesta incluye su información de uso:

X-RateLimit-LimitSu límite diario
X-RateLimit-RemainingPeticiones restantes hoy
X-RateLimit-ResetHora de reinicio (Unix)

Se aplican dos límites — superar cualquiera devuelve 429 Too Many Requests:

Cuota del planFree 50 en total · Hobby 500/día · Starter 1.000/día · Pro 10.000/día · Business 50.000/día
Tasa por IP10 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_length is no longer null when sunset falls after midnight UTC (western longitudes).

Preguntas frecuentes

¿Qué tecnología alimenta las predicciones de TidesAtlas?
Hemos desarrollado un motor de predicción armónica propio que fusiona tres conjuntos de datos complementarios: TICON-4 (3.000+ estaciones de referencia, hasta 60 constituyentes de marea), NOAA (1.075 estaciones estadounidenses, 37 constituyentes) y el modelo oceánico global FES2022 del LEGOS/CNES (8.400+ puntos costeros, 8 constituyentes principales). Cada fuente fue individualmente calibrada, validada cruzadamente e integrada en un pipeline unificado — un trabajo de ingeniería considerable que requirió meses de desarrollo. Resultado: 13.400+ estaciones en 180 países, todas servidas a través de una API única y coherente. Para ~100 estaciones francesas, también proporcionamos observaciones en tiempo real de la red de mareógrafos REFMAR/SHOM.
¿Qué precisión tienen las predicciones?
Nuestro algoritmo realiza análisis armónico utilizando hasta 60 constituyentes de marea por estación, con alineación automática de datums y correcciones nodales. Para estaciones primarias (TICON-4, NOAA), la precisión es típicamente de 5-10 minutos y 10-15 cm. Para estaciones derivadas del modelo (FES2022), es de 10-20 minutos y 15-25 cm. Validamos continuamente nuestros resultados contra observaciones en tiempo real cuando están disponibles. Las condiciones meteorológicas (viento, presión) pueden causar desviaciones adicionales — por eso también proporcionamos datos meteorológicos marinos para darle una visión completa.
¿Necesito una tarjeta de crédito para empezar?
No. El plan Prueba le da 50 créditos únicos sin tarjeta de crédito. Solo necesita datos de pago al pasar a un plan de pago.
¿Puedo usarlo para proyectos comerciales?
¡Sí! Todos los planes (incluido el gratuito) permiten uso comercial. Aunque aprovechamos conjuntos de datos abiertos, nuestro motor de predicción, infraestructura API y pipeline de datos están completamente desarrollados internamente. Solo incluya una atribución a TidesAtlas en algún lugar de su aplicación.
¿Qué pasa si supero mi límite diario?
Recibirá un código de estado 429. Su límite se reinicia a medianoche UTC. Puede actualizar su plan en cualquier momento desde el panel para obtener más peticiones.
¿Puedo obtener predicciones de mareas en coordenadas exactas (no solo en puertos predefinidos)?
Sí. Pase ?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.
¿Hay SDKs o librerías para Python, Node.js u otros lenguajes?
Sí. Instale 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.
¿La API proporciona la temperatura del mar (agua)?
Sí. El endpoint /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.
¿Puedo obtener las alturas de marea para trazar una curva, no solo las horas de pleamar/bajamar?
Sí. Llama a /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).
¿Ofrecen pronósticos de olas y mar de fondo?
Sí. El endpoint /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.

Obtener su clave API gratuita