open-meteo API for agents (unofficial) — JSON over curl | clify
Open-Meteo: free, keyless weather APIs. The CLI provides forecasts, historical reanalysis, archived and previous model runs, ensembles, seasonal and climate projections, marine, air quality, satellite radiation, flood, elevation, geocoding and CSV export.
Host: open-meteo.com. Call these verified read commands with plain curl; no install, key, or account. Use the public JSON API with plain curl. No install, key, account, or browser is needed. Example: curl 'https://clify-dev.netlify.app/sites.json'. Start with /search?q=weather, then call /abc/COMMAND. Responses are one JSON object. The hosted MCP and GitHub repo are also available.
Commands
search-locations
Find places by name or postal code and get their coordinates, timezone, country and population. Use this first to turn a city name into latitude/longitude. Params: name*, count, language, countryCode
curl 'https://clify-dev.netlify.app/open-meteo/search-locations?name=London&count=10&language=en&countryCode=US'
get-forecast
Weather forecast for one or more coordinates: current conditions plus hourly and daily variables, up to 16 days ahead and 92 past days, with an optional national model (e.g. DWD ICON). Params: latitude*, longitude*, hourly, daily, current, timezone, forecast_days, past_days, start_date, end_date, models, temperature_unit, wind_speed_unit, precipitation_unit, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-forecast?latitude=48.85&longitude=2.35&hourly=temperature_2m%2Cprecipitation&daily=temperature_2m_max%2Ctemperature_2m_min%2Csunrise%2Csunset¤t=temperature_2m%2Cwind_speed_10m%2Cweather_code&timezone=Europe%2FParis&forecast_days=3&past_days=2&start_date=2026-10-18&end_date=2026-10-20&models=dwd_icon_seamless'
export-forecast-csv
Download a weather forecast as CSV text (the docs page's CSV export), for spreadsheets or bulk processing. Params: latitude*, longitude*, hourly, daily, timezone, forecast_days, past_days, models
curl 'https://clify-dev.netlify.app/open-meteo/export-forecast-csv?latitude=52.52&longitude=13.41&hourly=temperature_2m&daily=temperature_2m_max&timezone=auto&forecast_days=3&past_days=0&models=dwd_icon_seamless'
get-historical-weather
Historical observed-like weather (ERA5 reanalysis, 1940 to a few days ago) for coordinates over a date range, as hourly and/or daily variables. Params: latitude*, longitude*, start_date*, end_date*, hourly, daily, timezone, models, temperature_unit, wind_speed_unit, precipitation_unit, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-historical-weather?latitude=52.52&longitude=13.41&start_date=2024-01-01&end_date=2024-01-31&hourly=temperature_2m&daily=temperature_2m_max%2Cprecipitation_sum&timezone=auto&models=era5'
export-historical-csv
Download historical (ERA5) weather for a date range as CSV text. Params: latitude*, longitude*, start_date*, end_date*, hourly, daily, timezone
curl 'https://clify-dev.netlify.app/open-meteo/export-historical-csv?latitude=52.52&longitude=13.41&start_date=2024-01-01&end_date=2024-01-31&hourly=temperature_2m&daily=temperature_2m_max%2Cprecipitation_sum&timezone=auto'
get-historical-forecast
Archived high-resolution model forecasts (from 2022 onward) for coordinates and a date range, with the same variables and models as the forecast API. Params: latitude*, longitude*, start_date*, end_date*, hourly, daily, timezone, models, temperature_unit, wind_speed_unit, precipitation_unit, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-historical-forecast?latitude=52.52&longitude=13.41&start_date=2025-06-01&end_date=2025-06-07&hourly=temperature_2m&daily=temperature_2m_max&timezone=auto&models=dwd_icon_seamless'
get-previous-runs
Compare forecasts from earlier model runs at fixed lead times by requesting <variable>_previous_dayN variables alongside the current run. Params: latitude*, longitude*, hourly*, past_days, forecast_days, start_date, end_date, models, timezone, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-previous-runs?latitude=52.52&longitude=13.41&hourly=temperature_2m%2Ctemperature_2m_previous_day1&past_days=7&forecast_days=1&start_date=2026-10-10&end_date=2026-10-17&models=ecmwf_ifs025&timezone=auto'
get-single-run
Full forecast horizon of one specific model run, identified by its initialisation time. Params: latitude*, longitude*, run*, models*, hourly, forecast_days, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-single-run?latitude=52.52&longitude=13.41&run=2026-10-17T00%3A00&models=ecmwf_ifs&hourly=temperature_2m&forecast_days=7'
get-ensemble-forecast
Ensemble forecast with every perturbed member (variable_memberNN), or ensemble mean/spread when you pass a *_ensemble_mean_* model. Params: latitude*, longitude*, models*, hourly, daily, forecast_days, past_days, timezone, temperature_unit, wind_speed_unit, precipitation_unit, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-ensemble-forecast?latitude=52.52&longitude=13.41&models=dwd_icon_eps_ensemble_mean_seamless&hourly=temperature_2m&daily=temperature_2m_max&forecast_days=7&past_days=0&timezone=auto'
get-seasonal-forecast
Long-range seasonal and sub-seasonal forecast (ECMWF SEAS5 / EC46, about 6-7 months) with ensemble members. Params: latitude*, longitude*, daily, forecast_days, past_days, models, timezone, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-seasonal-forecast?latitude=52.52&longitude=13.41&daily=temperature_2m_max&forecast_days=45&past_days=0&models=ecmwf_seas5&timezone=auto'
get-climate-projection
Downscaled daily climate-change projections from CMIP6 models for 1950-2050 at a location. Params: latitude*, longitude*, start_date*, end_date*, models*, daily*, temperature_unit, precipitation_unit, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-climate-projection?latitude=52.52&longitude=13.41&start_date=2050-01-01&end_date=2050-12-31&models=MRI_AGCM3_2_S&daily=temperature_2m_max'
get-marine-forecast
Marine forecast for a sea location: wave height, direction and period, swell, and ocean currents. Params: latitude*, longitude*, hourly, daily, current, forecast_days, past_days, timezone, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-marine-forecast?latitude=54.54&longitude=10.23&hourly=wave_height%2Cwave_direction%2Cwave_period&daily=wave_height_max¤t=wave_height&forecast_days=7&past_days=0&timezone=auto'
get-air-quality
Air quality forecast: pollutants (PM10, PM2.5, ozone, NO2, ...), pollen, and European/US AQI, both hourly and current. Params: latitude*, longitude*, hourly, current, forecast_days, past_days, timezone, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-air-quality?latitude=48.85&longitude=2.35&hourly=pm10%2Cpm2_5%2Cozone¤t=european_aqi&forecast_days=5&past_days=0&timezone=auto'
get-satellite-radiation
Satellite-derived solar irradiance (GHI, direct, diffuse, DNI) for a location, near-real-time and archive. Params: latitude*, longitude*, hourly, models, temporal_resolution, forecast_days, past_days, start_date, end_date, timezone, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-satellite-radiation?latitude=52.52&longitude=13.41&hourly=shortwave_radiation&models=satellite_radiation_seamless&temporal_resolution=native&forecast_days=1&past_days=0&start_date=2026-10-10&end_date=2026-10-11&timezone=auto'
get-flood-forecast
Simulated river discharge (GloFAS) near a location, for flood forecasting: 1984 up to about 7 months ahead. Params: latitude*, longitude*, daily*, forecast_days, past_days, start_date, end_date, ensemble, timeformat
curl 'https://clify-dev.netlify.app/open-meteo/get-flood-forecast?latitude=59.91&longitude=10.75&daily=river_discharge&forecast_days=92&past_days=0&start_date=2024-01-01&end_date=2024-03-31'
get-elevation
Terrain elevation in meters (Copernicus DEM, 90 m) for one or more coordinates. Params: latitude*, longitude*
curl 'https://clify-dev.netlify.app/open-meteo/get-elevation?latitude=47.37&longitude=8.55'