La API del tiempo para todo lo que creas

Meteorología global, marina, previsión de lluvia y calidad del aire — precisa en todas partes, con los mejores modelos meteorológicos del mundo.

Try it now
// Current weather anywhere on Earth
const res = await fetch(
  'https://skiesatlas.com/api/v1/weather?lat=48.85&lon=2.35',
  { headers: { 'X-API-Key': 'YOUR_KEY' } }
);
const { temperature_c, wind_speed_kmh } = await res.json();
// { temperature_c: 24.1, wind_speed_kmh: 5.9, condition: "clear" }
31
REST endpoints
4
Weather models
Global
Land, sea & sky
<200ms
Median response

Smart model routing

Modelos locales de alta resolución (ICON-D2 2 km, HRRR 3 km) cuando están disponibles, ECMWF IFS 9 km en todo el mundo. Automático y transparente.

Rain nowcast

Precipitación minuto a minuto para las próximas horas — la respuesta «¿va a llover?» para tus apps.

Marine & tides

Olas, mar de fondo, estado del mar, temperatura del agua, y horarios de marea con tecnología de TidesAtlas.

Built for AI agents

Servidor MCP nativo — conecta el tiempo en vivo a Claude, Cursor y cualquier agente compatible con MCP.

Una API para cada necesidad meteorológica

De apps de navegación a la previsión solar, SkiesAtlas ofrece los datos que los desarrolladores usan de verdad.

Marine & sailing

Olas, mar de fondo, viento y mareas para navegación, regatas y apps costeras.

Agriculture

Lluvia, condiciones del suelo, alertas de heladas y calor para la agricultura inteligente.

Solar & energy

Radiación solar y nubosidad para el rendimiento FV y la previsión de red.

Outdoor apps

Lluvia inminente, índice UV y condiciones para correr, ciclismo y viajes.

Aviation & drones

Viento, rachas, visibilidad y base de nubes para vuelo y drones.

Research

Salida directa de modelos (ECMWF, ICON, GFS) para ciencia reproducible.

New · Weather maps

The whole sky on one map

Temperature, wind, precipitation, clouds and pressure — rendered from our own ECMWF-AIFS & GFS models, animatable across the forecast, plus live radar. Standard slippy-map tiles you can drop onto Leaflet or Mapbox.

Open the interactive map →
🌡️ Temp 💨 Wind 🌧️ Rain ☁️ Cloud 🔵 Pressure 📡 Radar

Referencia de la API

Simple, predictable REST endpoints. Authenticate with an X-API-Key header — pass lat/lon or a port slug.

Weather Pack
GET/api/v1/weatherCurrent + hourly forecast

Temperature, wind (speed, direction & gusts), humidity, pressure, cloud cover, condition and UV index — plus derived dew point, humidex, heat index and wind chill. Routed to the best available model for your coordinates (ICON-D2, ICON-EU, HRRR or ECMWF IFS).

ParamTypeDescription
lat / lonfloatCoordinates. Required (or use port).
daysintForecast horizon, 1-7 (default: 3).
hourlyboolSet to 1 to include the hourly series.
unitsstringmetric (default) or imperial. Works on all endpoints: °C→°F, km/h→mph, mm→in, m→ft (field suffixes change to _f/_mph/_in/_ft).

Example response

{ "lat": 48.85, "lon": 2.35, "model": "ICON-EU (7km)", "current": { "temperature_c": 24.1, "humidity_pct": 34, "wind_speed_kmh": 5.9, "wind_direction_deg": 215, "wind_gust_kmh": 14.2, "pressure_hpa": 1017, "cloud_cover_pct": 12, "condition": "clear", "uv_index": 2.7 } }
GET/api/v1/forecastUp to 14-day forecast

Multi-day forecast up to 14 days — 3-hourly series (temperature, wind, precipitation, cloud, pressure, humidity) plus daily aggregates (min/max, precip total, max wind) with a per-day confidence (high ≤7d, medium ≤10d, low = trend for days 11-14). Multi-model: ECMWF-AIFS global backbone (world's best AI model), refined by ICON-EU 7km (Europe) & HRRR 3km (US) near-term; NOAA GFS fills the 3-hourly gaps and the 11-14 day tail — the best model for each location & lead time, from our own store.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
daysint1-14 (default: 7).
unitsstringmetric (default) or imperial.

Example response

{ "models_used": ["ECMWF-AIFS", "ICON-EU", "GFS"], "run": "2026081600z", "days": 14, "daily": [ { "date": "2026-08-16", "temp_min_c": 17.8, "temp_max_c": 27.1, "precip_sum_mm": 0, "wind_max_kmh": 19.4, "confidence": "high" }, ... ], "hourly": [ { "time": "2026-08-13T00:00:00+00:00", "temperature_c": 18.2, "wind_speed_kmh": 12.1, "precipitation_mm": 0, ... }, ... ] }
GET/api/v1/outlook16-day ensemble trend

Probabilistic 16-day outlook from the NOAA GEFS ensemble (31 members): daily temperature trend with an uncertainty band (temp_low/mean/temp_high), a per-day confidence level and precipitation. A trend, not a precise forecast.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
unitsstringmetric (default) or imperial.
{ "model": "NOAA GEFS ensemble", "daily": [ { "date": "2026-08-27", "temp_low_c": 16.6, "temp_mean_c": 19.5, "temp_high_c": 22.4, "uncertainty_c": 2.9, "confidence": "medium" }, ... ] }
GET/api/v1/severeStorm / convective

Convective / storm parameters: CAPE, CIN, 0-3 km helicity, visibility, cloud ceiling, plus model-derived storm risk, lightning probability and hail risk.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
{ "cape_jkg": 987, "cin_jkg": -57, "helicity_0_3km": 17, "visibility_m": 24135, "cloud_ceiling_m": 10775, "storm_risk": "moderate", "lightning_probability_pct": 35, "hail_risk": "low" }
GET/api/v1/aviationMETAR + TAF, flight category

Live METAR observation and TAF forecast from the nearest airport, with computed flight category (VFR / MVFR / IFR / LIFR), a decoded observation and the raw METAR/TAF strings. Powered by aviationweather.gov (NOAA, public domain).

ParamTypeDescription
lat / lonfloatCoordinates. Required.
{ "station": "LFPG", "flight_category": "VFR", "metar": { "wind_kmh": 18, "visibility_m": 9999, "temperature_c": 21 }, "raw_metar": "LFPG 131330Z 27010KT 9999 FEW040 21/12 Q1017", "raw_taf": "TAF LFPG 131100Z ..." }
GET/api/v1/soundingVertical atmospheric profile

Model sounding on GFS pressure levels (1000 → 200 hPa): temperature, wind, humidity and geopotential height at each level, plus bulk wind shear and a low-level inversion flag. For aviation, gliding, ballooning and convective analysis.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
{ "levels": [ { "pressure_hpa": 850, "temperature_c": 14.2, "wind_speed_kmh": 31, "height_m": 1487 }, ... ], "bulk_wind_shear_kmh": 32.8, "low_level_inversion": false }
GET/api/v1/solarSolar irradiance + PV yield

Downward solar radiation (GHI, W/m²) hour by hour, plus an estimated PV yield per kWp and daily energy total — for solar / photovoltaic production forecasting. From NOAA GFS.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
{ "hourly": [ { "time": "2026-08-13T12:00", "solar_radiation_wm2": 582, "pv_estimate_kwh_per_kwp": 0.466 }, ... ], "daily": [ { "date": "2026-08-13", "pv_energy_kwh_per_kwp": 5.57 }, ... ] }
GET/api/v1/agricultureSoil & agronomy

Soil temperature & moisture at three depths (0-10, 10-40, 40-100 cm) from the GFS land model, plus ground-frost risk, growing degree-days (base 10) and a crop-spraying window for the next 48 h. For agriculture, irrigation and vineyard apps.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
{ "soil": { "0_10cm": { "soil_temperature_c": 19.5, "soil_moisture_m3m3": 0.07 }, ... }, "ground_frost_risk": false, "growing_degree_days": [ { "date": "2026-08-13", "gdd_base10": 20.6 } ], "spraying_window_next48h_pct": 88 }
GET/api/v1/probabilitiesAI ensemble probabilitiesPRO

Probabilistic forecast from the ECMWF AIFS-ENS 50-member AI ensemble: temperature percentiles (p10 / median / p90) with an uncertainty band, and precipitation probabilities (chance of >0.1 / >1 / >5 mm) per lead time. Sell confidence, not just a single number.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
daysint1–7 (12-hourly steps).
{ "model": "ECMWF AIFS-ENS (50-member AI ensemble)", "steps": [ { "lead_h": 42, "temp_p10_c": 23.0, "temp_median_c": 24.2, "temp_p90_c": 25.4, "temp_uncertainty_c": 2.4, "precip_probability_pct": 30 } ] }
GET/api/v1/accuracyVerified accuracy scoresPRO

Our verified forecast accuracy, published: MAE, RMSE and bias for each model (ECMWF-AIFS, GFS, ICON-EU and the blend) at each lead time, scored continuously against real METAR observations at dozens of global stations. Transparency most weather APIs won't give you.

ParamTypeDescription
paramstringtemperature (default), wind, pressure.
regionstringglobal (default) or a region (europe, asia…).
{ "param": "temperature", "stations": 38, "models": { "ECMWF-AIFS": { "leads": { "24": { "mae": 1.4, "rmse": 1.9, "bias": -0.1 } } }, … } }
GET/api/v1/map/{layer}/{z}/{x}/{y}.pngWeather map tilesPRO

Slippy-map raster tiles rendered from our own models (ECMWF-AIFS & GFS) — drop them straight onto Leaflet, Mapbox GL or MapLibre. Five layers, animatable across the forecast with ?step= (hours ahead). This is the "see everything" map. Open the live interactive map →

ParamTypeDescription
layerpathtemperature, wind, precipitation, clouds, pressure.
z/x/ypathStandard slippy-map tile coordinates.
stepqueryForecast hours ahead (0 = now, up to 240).
api_keyqueryYour key (tiles don't consume request credits).
// Leaflet L.tileLayer("https://skiesatlas.com/api/v1/map/temperature/{z}/{x}/{y}.png?api_key=KEY&step=0").addTo(map);
GET/api/v1/lightningReal-time lightningLIVE

Real-time lightning strikes near a location from the NOAA GOES-19/18 Geostationary Lightning Mapper (updated every ~2 minutes): strike count in radius, activity level, the nearest strike (distance & minutes-ago), a storm_overhead flag and the recent strike list. Public-domain data. Coverage: the Americas, Atlantic & Pacific (GOES field of view).

ParamTypeDescription
lat / lonfloatCoordinates. Required.
radiusfloatSearch radius in km (default 50, max 500).
windowintLook-back window in minutes (default 15, max 20).
{ "strike_count": 239, "activity": "extreme", "storm_overhead": true, "nearest_strike": { "distance_km": 3.4, "minutes_ago": 2.7 }, "data_age_minutes": 2 }
GET/api/v1/nowcastMinute precipitation nowcast

Hyperlocal 0–60 minute rain nowcast: live radar intensity right now at the point, plus rain approaching from upwind with a minutes-to-arrival ETA — radar truth advected by the model wind field. The "will it rain in the next 20 minutes?" answer.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
{ "raining_now": false, "intensity_now": "none", "approaching": true, "minutes_to_rain": 18, "approaching_intensity": "moderate", "summary": "Moderate rain approaching, starting in about 18 min" }
GET/api/v1/summaryDaily summary + weather codes

A human-readable daily summary plus a standardised WMO-like weather code and icon name for each day — everything a consumer app UI needs to render a forecast card without post-processing.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
daysint1–15 (default 5).
{ "today": "Clear sky, 22–38°C", "days": [ { "date": "2026-08-16", "weather_code": 61, "condition": "Light rain", "icon": "rain", "summary": "Light rain, 20–29°C, 1 mm precipitation" } ] }
GET/api/v1/space-weatherSpace weather & aurora

The whole sky, literally: planetary Kp index (now + 3-day forecast), geomagnetic storm level (G1–G5) and active NOAA alerts, plus — with lat/lon — the aurora visibility probability at that location from the OVATION model. From NOAA SWPC (public domain).

ParamTypeDescription
lat / lonfloatOptional. Returns aurora probability at this point.
{ "kp_index": { "value": 1.33, "storm_level": "quiet" }, "max_forecast_kp": 4.0, "aurora": { "probability_pct": 1, "visibility": "unlikely" } }
GET/api/v1/cyclonesActive tropical cyclones

Live tropical cyclones from the NOAA National Hurricane Center: name, category (Saffir-Simpson), position, maximum sustained wind, central pressure and movement, plus links to the official forecast track & cone. Pass optional lat/lon to sort by distance and get the nearest storm. Atlantic & Eastern Pacific basins.

ParamTypeDescription
lat / lonfloatOptional. Sorts storms by distance from this point.
{ "count": 3, "active_storms": [ { "name": "Cristobal", "category": "Category 1", "max_sustained_wind_kmh": 120, "pressure_hpa": 982, "position": { "lat": 25.4, "lon": -71.2 }, "movement": { "direction_deg": 315, "speed_kmh": 22 } } ] }
POST/api/v1/batchMulti-point (bulk) weather

Current weather for many locations in a single call (up to 50). Ideal for fleets, store networks, sensor grids and dashboards — one round-trip instead of 50. Each result carries your optional id and a cached flag.

Field (JSON body)TypeDescription
pointsarray[{lat, lon, id?}, …] — 1 to 50 locations. Required.
// POST body { "points": [ { "lat": 48.85, "lon": 2.35, "id": "paris" }, { "lat": 43.7, "lon": 7.26, "id": "nice" } ] } // → { "count": 2, "results": [ { "id": "paris", "weather": { "temperature_c": 32.6 } }, … ] }
POST/api/v1/routeRoute weather (along a trip)

Weather along a journey: POST a list of waypoints with a speed (or explicit ETAs) and get the forecast valid at each point's estimated time of arrival, plus a trip summary (max gust, worst-gust location, total precipitation, distance). For logistics, road-trips, sailing and delivery routing.

Field (JSON body)TypeDescription
waypointsarray[[lat,lon], …] in order (2–100 points).
speed_kmhfloatTravel speed to compute ETAs (default 60).
start_timestringISO departure time (default now).
pointsarrayAlternative: [{lat,lon,eta}] with explicit ETAs.
// POST body → weather at each ETA { "waypoints": [[48.39,-4.49],[47.22,-1.55],[46.16,-1.15]], "speed_kmh": 60 } // → { "distance_km": 376.9, "summary": { "max_wind_gust_kmh": 30.4 }, "legs": [ … ] }
POST/api/v1/alertsWeather alerts platform

Create weather alert rules that we evaluate every hour against the forecast horizon and deliver to webhook, Slack, Microsoft Teams, email or mobile push when the condition is met. Manage with GET /api/v1/alerts (list) and DELETE /api/v1/alerts?id=…. Configurable cooldown_hours prevents alert storms.

Field (JSON body)TypeDescription
namestringAlert label. Required.
lat / lonfloatLocation. Required.
metricstringtemperature_c, wind_speed_kmh, wind_gust_kmh, precipitation_mm, fire_danger, ice_risk
operatorstringgt, lt, gte, lte, eq.
thresholdstringNumeric value, or a label (high, extreme…) for categorical metrics.
horizon_hoursintHow far ahead to watch (1–240, default 24).
channelstringwebhook, slack, teams, email, push.
targetstringWebhook/Slack/Teams URL, email address, or Expo push token.
// POST body { "name": "Storm wind Brest", "lat": 48.4, "lon": -4.5, "metric": "wind_gust_kmh", "operator": "gt", "threshold": "90", "horizon_hours": 48, "channel": "slack", "target": "https://hooks.slack.com/…" }
GET/api/v1/indicesBusiness / sector indices

Ready-to-use sector indices derived from the forecast: energy heating & cooling degree-days (base 18°C), wind-power capacity factor from an 80 m generic turbine curve, Hot-Dry-Windy fire danger, and road ice risk. For utilities, renewables, insurance and highway operations.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
{ "energy_degree_days": [ { "date": "2026-08-13", "hdd_c": 0, "cdd_c": 9.1 } ], "wind_power": [ { "date": "2026-08-13", "capacity_factor_pct": 4 } ], "fire_weather": [ { "date": "2026-08-13", "fire_danger": "extreme" } ], "road_risk": [ { "date": "2026-08-13", "ice_risk": "none" } ] }
GET/api/v1/conditionsEverything at once

A single call that merges weather, marine, precipitation and air quality for a location — perfect for dashboards.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
{ "weather": { "temperature_c": 18.4, ... }, "marine": { "wave_height_m": 0.4, ... }, "rain": { "will_rain": false }, "air_quality": { "air_quality_index": 2 } }
GET/api/v1/astronomySun & moon data

Sunrise, sunset, dawn, dusk and day length, plus moon phase, illumination, moon age, moonrise and moonset. Computed in-house from astronomical algorithms — no external calls, instant.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
dateYYYY-MM-DDStart date, UTC (default: today).
daysint1-7 (default: 1).

Example response

{ "lat": 48.39, "lon": -4.49, "timezone": "UTC", "days": 1, "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" } } ] }
Historical
GET/api/v1/historyPast weather (reanalysis)

Daily historical weather — temperature (min/max), precipitation and wind — for any past date back to 1940. Powered by the ERA5 reanalysis (ECMWF), the reference dataset for past weather.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
dateYYYY-MM-DDPast start date. Required.
daysint1-31 (default: 7).
Source: ERA5 reanalysis (ECMWF / Copernicus Climate Change Service) — ingested directly from the public ERA5 archive, not a third-party proxy. Available up to ~7 days before today.

Example response

{ "lat": 48.39, "lon": -4.49, "start": "2025-06-01", "end": "2025-06-07", "days": 7, "source": "ERA5 reanalysis — ECMWF / Copernicus C3S", "daily": [ { "date": "2025-06-01", "temp_max_c": 17.2, "temp_min_c": 11.4, "precip_mm": 1.3, "wind_max_kmh": 24.1, "wind_gust_kmh": 41.0 }, ... ] }
Marine Pack
GET/api/v1/marineWaves, swell & sea temperature

Wave height, swell, wind-wave, sea state and sea-surface temperature from NOAA WaveWatch III and MUR SST.

ParamTypeDescription
lat / lonfloatOcean coordinates. Required.
daysint1-7 (default: 3).
{ "wave_height_m": 0.4, "swell_height_m": 0.05, "sea_state": "calm_rippled", "sst_c": 21.3 }
Precipitation & Winter
GET/api/v1/rainPrecipitation nowcast

Hour-by-hour precipitation for the coming hours, with a simple will_rain flag.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
hoursintHorizon in hours, 1-12 (default: 6).

Example response

[ { "until": "12:00", "precip_mm": 2.1, "will_rain": true }, { "until": "13:00", "precip_mm": 0.0, "will_rain": false } ]
GET/api/v1/snowSnowfall, depth & freezing

Snowfall, snow depth, freezing level, thunderstorm potential and solar radiation — for mountain and winter apps.

ParamTypeDescription
lat / lonfloatCoordinates. Required.
daysint1-7 (default: 3).

Example response

{ "snowfall_mm": 3.1, "snow_depth_cm": 180, "freezing": true, "solar_radiation_wm2": 210 }
GET/api/v1/radarLive rain radar + satellite

Live precipitation radar + IR satellite tile URLs — past frames and nowcast (future) frames for animated maps. Standard {z}/{x}/{y} slippy tiles (Leaflet, Mapbox GL…). Powered by RainViewer.

ParamTypeDescription
lat / lonfloatCoordinates (map centre). Required.
{ "radar": { "past": [ { "time": "2026-08-13T14:30:00Z", "tile_url": "https://tilecache.rainviewer.com/.../{z}/{x}/{y}/1/1_1.png" }, ... ], "nowcast": [ ... ] }, "satellite": { "infrared": [ ... ] } }
Air & Environment
GET/api/v1/air-qualityPM2.5, ozone, NO2 & AQI

Particulate matter, ozone, NO₂, SO₂ and a computed air-quality index, from Copernicus CAMS.

ParamTypeDescription
lat / lonfloatCoordinates. Required.

Example response

{ "pm2p5": 5.3, "pm10": 9.9, "o3": 73, "no2": 12, "air_quality_index": 2 }
GET/api/v1/pollenPollen forecast (Europe)

European pollen forecast (CAMS) for 6 species — alder, birch, grass, mugwort, olive, ragweed — with concentration (grains/m³) and a risk level per species + overall. Europe only.

{ "pollen": { "grass": { "grains_m3": 5, "label": "Faible" }, "mugwort": { "grains_m3": 14.4, "label": "Modéré" }, ... }, "overall_label": "Modéré", "dominant": "mugwort" }
GET/api/v1/aerosolsDust, smoke & AOD

Worldwide Saharan dust, wildfire smoke and total aerosol optical depth (CAMS global) — optical depth values + a risk level for dust and smoke.

{ "aerosol_optical_depth": 0.266, "dust_aod": 0.042, "dust_label": "Négligeable", "smoke_aod": 0.03, "smoke_label": "Négligeable" }
Tides Pack
GET/api/v1/tidesTide times & heights

High/low tide times and heights for 17,000+ ports, powered by TidesAtlas. Pass a port slug or coordinates.

ParamTypeDescription
portstringPort slug, e.g. san-francisco.
daysint1-14 (default: 1).
{ "extremes": [ { "datetime": "2026-03-27T05:12:00-07:00", "height_m": 1.82, "type": "high" }, { "datetime": "2026-03-27T11:44:00-07:00", "height_m": 0.31, "type": "low" } ] }

Pruébalo en vivo

Pega tu clave API, elige un endpoint y pulsa Enviar: respuestas reales, aquí mismo.

// The JSON response will appear here

No key yet? Get one free — 500 requests/day, no card.

Inicio rápido en tu lenguaje

Grab an API key, then call the API with cURL, JavaScript, Python — or plug it straight into an AI agent via MCP.

cURL
JavaScript
Python
MCP (AI agents)
# Current weather in Paris curl -H "X-API-Key: YOUR_KEY" \ "https://skiesatlas.com/api/v1/weather?lat=48.85&lon=2.35"
const res = await fetch('https://skiesatlas.com/api/v1/weather?lat=48.85&lon=2.35', { headers: { 'X-API-Key': 'YOUR_KEY' } }); const data = await res.json();
import requests r = requests.get( "https://skiesatlas.com/api/v1/weather", params={"lat": 48.85, "lon": 2.35}, headers={"X-API-Key": "YOUR_KEY"}) print(r.json())

Add SkiesAtlas to Claude Desktop, Cursor or any MCP client — your agent gets live weather tools:

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

Un motor de predicción real, no un proxy

SkiesAtlas no se limita a reenviar datos de terceros. Ingerimos la salida bruta de los modelos numéricos, la decodificamos, elegimos el mejor modelo para cada coordenada y lo unificamos en una API limpia y coherente, entregada en menos de 200 ms.

1 · Ingesta

Extraemos la salida GRIB bruta directamente de los principales centros meteorológicos del mundo, en cada ejecución del modelo.

2 · Enrutamiento

Para cada coordenada seleccionamos el modelo de mayor resolución disponible: ICON-D2 2 km, HRRR 3 km o ECMWF 9 km en todo el mundo. Automático y transparente.

3 · Unificación

Seis formatos de modelos distintos se convierten en un único esquema JSON predecible: los mismos nombres de campo en todas partes, unidades métricas y marcas de tiempo ISO.

4 · Entrega

Un caché agresivo por ejecución entrega respuestas en menos de 200 ms, con recurso automático a los últimos datos para que tu app nunca se quede sin servicio.

Fuentes de datos y licencias

Tras el telón, decodificamos y combinamos estos modelos meteorológicos y oceánicos oficiales, de licencia abierta, en una sola API.

ECMWF AIFS & IFS

The world's best global model — AIFS (ECMWF's AI system) is our worldwide backbone.

CC-BY 4.0

DWD ICON

ICON-D2 (2 km) & ICON-EU (7 km) high-resolution Europe.

DWD Open Data · GeoNutzV

NOAA GFS, GEFS & HRRR

Global GFS + GEFS ensemble + 3 km HRRR rapid refresh over the US.

Public domain (US Gov)

ECMWF AIFS-ENS

50-member AI ensemble for the /probabilities endpoint.

CC-BY 4.0

NOAA GOES GLM

Geostationary Lightning Mapper — real-time lightning (/lightning).

Public domain

NOAA WaveWatch III

Global wave & swell model for the marine endpoint.

Public domain

Copernicus CAMS

Global air quality, pollen & aerosols (dust, smoke).

Copernicus / ADS

NOAA MUR SST

1 km sea-surface temperature analysis.

Public domain

ECMWF ERA5

Reanalysis powering the /history endpoint (past weather).

Copernicus C3S · CC-BY

NOAA NHC & SWPC

Tropical cyclones (/cyclones) + space weather & aurora (/space-weather).

Public domain

aviationweather.gov

METAR/TAF (/aviation) & the observations that verify our accuracy.

NOAA · Public domain

RainViewer

Live precipitation radar & satellite tiles (/radar).

Commercial use w/ attribution

TidesAtlas →

Tide times & heights for 17,000+ ports (the /tides endpoint).

tidesatlas.com

SkiesAtlas builds the ingestion, routing, unification and caching layer on top of these open datasets. Attribution to upstream providers is handled on our side.

Precisión en la que confiar

Nos basamos en la mejor ciencia disponible y nos verificamos constantemente.

Modelos de primer nivel

ECMWF IFS está considerado sistemáticamente el modelo global más preciso del mundo. Lo usamos como base mundial y le superponemos modelos regionales de alta resolución.

Validado continuamente

Cada pocas horas comparamos nuestros resultados con pronósticos de referencia independientes en más de 20 ciudades del mundo para detectar cualquier desviación a tiempo.

Actualizado todo el día

Los modelos se actualizan hasta cuatro veces al día (00/06/12/18 UTC). Nuestro motor reingiere cada ejecución automáticamente, para que siempre tengas el pronóstico más reciente.

Live forecast accuracy

● verified continuously

Mean absolute temperature error (°C) vs real METAR observations at 1130 global stations — lower is better. Our backbone ECMWF-AIFS and the multi-model BLEND lead the field.

Model analysis+24h+48h+72h+120h
ICON-EU 1.021.151.251.371.57
ECMWF-AIFS backbone 1.251.351.411.481.55
BLEND 1.321.461.551.631.77
GFS 1.791.871.962.062.19

Full scores (all parameters, lead times & regions) via GET /api/v1/accuracy. Longer lead-time skill fills in as forecast/observation pairs accumulate.

Autenticación & Límites de peticiones

Autenticación

Pasa tu clave API en el header X-API-Key (recomendado) o como parámetro api_key.

# Header (recommended) curl -H "X-API-Key: YOUR_KEY" "https://skiesatlas.com/api/v1/weather?lat=48.85&lon=2.35" # Query parameter curl "https://skiesatlas.com/api/v1/weather?lat=48.85&lon=2.35&api_key=YOUR_KEY"

Límites de peticiones

Cada respuesta informa de tu uso en las cabeceras. Superar tu cuota devuelve 429 Too Many Requests: espera antes de reintentar.

HeaderDescription
X-RateLimit-LimitYour daily request limit (paid plans).
X-RateLimit-RemainingRequests left today.
PlanQuotaHTTP on exceed
Free500 requests / day429
Basic10,000 requests / day429
Starter50,000 requests / day429
Pro200,000 requests / day429
Business1,000,000 requests / day429

Quotas reset every day at 00:00 UTC, on the free plan too. A 402 is different: it means the endpoint itself requires a higher plan (/nowcast needs Starter or above; /batch, /history, /radar, /lightning, /probabilities, /alerts and /route need Pro or above).

Precios

Start free, upgrade when you scale. No credit card to get your key.

Free
$0/mo
500 requests per day
  • Core weather & forecast API
  • ECMWF-AIFS multi-model blend
  • Verified accuracy endpoint
Get started
Basic
$7.99/mo
10,000 requests / day
  • All core endpoints
  • Current + 14-day forecast
  • Marine, air quality, tides & more
  • ECMWF-AIFS · verified accuracy
Choose Basic
Starter
$19/mo
50,000 requests / day
  • Everything in Basic, plus:
  • Weather map tiles (5 layers)
  • Minute rain nowcast
  • Batch multi-point endpoint
Choose Starter
Business
$149/mo
1,000,000 requests / day
  • Everything in Pro
  • Highest rate limits
  • Priority support
  • Commercial redistribution
Choose Business

Preguntas frecuentes

¿De dónde vienen los datos meteorológicos?

Ejecutamos nuestro propio motor sobre los mejores modelos abiertos del mundo: ECMWF IFS, DWD ICON, NOAA GFS/HRRR, WaveWatch III, Copernicus CAMS y MUR SST. Decodificamos la salida bruta, enrutamos cada solicitud al modelo de mayor resolución para esa ubicación y devolvemos una única respuesta limpia y coherente. Obtienes un producto real, no seis flujos en bruto que ensamblar tú mismo.

¿Qué precisión tienen los pronósticos?

Usamos ECMWF IFS —considerado el modelo global más preciso del mundo— como base, más modelos regionales de alta resolución (2–3 km) donde existen. Validamos continuamente frente a referencias independientes, con una diferencia típica de unos 0,6 °C en temperatura.

¿Cuáles son los límites de peticiones?

Cada plan tiene una cuota diaria que se reinicia a las 00:00 UTC — incluido el plan gratuito: 500 peticiones al dia, renovadas cada dia. Planes de pago: Basic 10.000/dia, Starter 50.000/dia, Pro 200.000/dia, Business 1.000.000/dia. Cada respuesta indica tu cuota restante en la cabecera X-RateLimit-Remaining.

¿Puedo cancelar cuando quiera?

Sí. Las suscripciones son mensuales y puedes cancelar en cualquier momento: tu plan sigue activo hasta el final del periodo pagado y luego vuelve a gratuito automáticamente.

¿Puedo usarla con agentes de IA?

Por supuesto. SkiesAtlas incluye un servidor MCP nativo en https://skiesatlas.com/mcp — añádelo a Claude Desktop, Cursor o cualquier cliente MCP y tu agente obtiene herramientas meteorológicas en vivo.

¿Ofrecen mareas?

Sí, mediante el endpoint /api/v1/tides, impulsado por TidesAtlas — horarios y alturas de marea para más de 17 000 puertos en todo el mundo.

Lanza funciones meteorológicas hoy mismo

Consigue tu clave API en segundos y haz tu primera llamada en una línea de código.

Get your API key