Ensemble API
Delivers probabilistic weather forecasts using ensemble model runs with up to 51 members, supporting risk assessment and uncertainty quantification in weather-sensitive applications. Requires a paid commercial subscription.
Delivers probabilistic weather forecasts using ensemble model runs with up to 51 members, supporting risk assessment and uncertainty quantification in weather-sensitive applications. Requires a paid commercial subscription.
openapi: '3.0.3'
info:
title: Open-Meteo Ensemble Weather Forecast API
description: >-
Ensemble weather forecasts from multiple models providing probabilistic forecast data.
version: '1.0'
contact:
name: Open-Meteo
url: https://open-meteo.com
email: [email protected]
license:
name: Attribution 4.0 International (CC BY 4.0)
url: https://creativecommons.org/licenses/by/4.0/
termsOfService: https://open-meteo.com/en/features#terms
paths:
/v1/ensemble:
servers:
- url: https://ensemble-api.open-meteo.com
- url: https://customer-ensemble-api.open-meteo.com
get:
tags:
- Ensemble Forecast APIs
summary: Open-Meteo Ensemble Weather Forecast API
description: >-
Ensemble weather forecasts from multiple models providing probabilistic forecast data.
parameters:
- name: latitude
in: query
required: true
description: >-
Geographical WGS84 coordinates. Multiple coordinates can be comma separated.
schema:
type: string
- name: longitude
in: query
required: true
schema:
type: string
- name: hourly
in: query
description: >-
A list of weather variables which should be returned.
explode: false
schema:
type: array
items:
type: string
enum:
- temperature_2m
- relative_humidity_2m
- dew_point_2m
- apparent_temperature
- precipitation
- rain
- snowfall
- snow_depth
- weather_code
- pressure_msl
- surface_pressure
- cloud_cover
- cloud_cover_low
- cloud_cover_mid
- cloud_cover_high
- visibility
- et0_fao_evapotranspiration
- vapour_pressure_deficit
- wind_speed_10m
- wind_speed_80m
- wind_speed_100m
- wind_speed_120m
- wind_direction_10m
- wind_direction_80m
- wind_direction_100m
- wind_direction_120m
- wind_gusts_10m
- temperature_80m
- temperature_120m
- surface_temperature
- soil_temperature_0_to_10cm
- soil_temperature_10_to_40cm
- soil_temperature_40_to_100cm
- soil_temperature_100_to_200cm
- soil_moisture_0_to_10cm
- soil_moisture_10_to_40cm
- soil_moisture_40_to_100cm
- soil_moisture_100_to_200cm
- soil_temperature_0_to_7cm
- soil_temperature_7_to_28cm
- soil_temperature_28_to_100cm
- soil_temperature_100_to_255cm
- soil_moisture_0_to_7cm
- soil_moisture_7_to_28cm
- soil_moisture_28_to_100cm
- soil_moisture_100_to_255cm
- is_day
- uv_index
- uv_index_clear_sky
- temperature_2m_min
- temperature_2m_max
- wet_bulb_temperature_2m
- cape
- convective_inhibition
- freezing_level_height
- snowfall_height
- sunshine_duration
- snowfall_water_equivalent
- snow_depth_water_equivalent
- boundary_layer_height
- shortwave_radiation
- direct_radiation
- diffuse_radiation
- direct_normal_irradiance
- global_tilted_irradiance
- shortwave_radiation_instant
- direct_radiation_instant
- diffuse_radiation_instant
- direct_normal_irradiance_instant
- global_tilted_irradiance_instant
- temperature_1000hPa
- temperature_925hPa
- temperature_850hPa
- temperature_700hPa
- temperature_600hPa
- temperature_500hPa
- temperature_400hPa
- temperature_300hPa
- temperature_250hPa
- temperature_200hPa
- temperature_150hPa
- temperature_100hPa
- temperature_50hPa
- relative_humidity_1000hPa
- relative_humidity_925hPa
- relative_humidity_850hPa
- relative_humidity_700hPa
- relative_humidity_600hPa
- relative_humidity_500hPa
- relative_humidity_400hPa
- relative_humidity_300hPa
- relative_humidity_250hPa
- relative_humidity_200hPa
- relative_humidity_150hPa
- relative_humidity_100hPa
- relative_humidity_50hPa
- dew_point_1000hPa
- dew_point_925hPa
- dew_point_850hPa
- dew_point_700hPa
- dew_point_600hPa
- dew_point_500hPa
- dew_point_400hPa
- dew_point_300hPa
- dew_point_250hPa
- dew_point_200hPa
- dew_point_150hPa
- dew_point_100hPa
- dew_point_50hPa
- cloud_cover_1000hPa
- cloud_cover_925hPa
- cloud_cover_850hPa
- cloud_cover_700hPa
- cloud_cover_600hPa
- cloud_cover_500hPa
- cloud_cover_400hPa
- cloud_cover_300hPa
- cloud_cover_250hPa
- cloud_cover_200hPa
- cloud_cover_150hPa
- cloud_cover_100hPa
- cloud_cover_50hPa
- wind_speed_1000hPa
- wind_speed_925hPa
- wind_speed_850hPa
- wind_speed_700hPa
- wind_speed_600hPa
- wind_speed_500hPa
- wind_speed_400hPa
- wind_speed_300hPa
- wind_speed_250hPa
- wind_speed_200hPa
- wind_speed_150hPa
- wind_speed_100hPa
- wind_speed_50hPa
- wind_direction_1000hPa
- wind_direction_925hPa
- wind_direction_850hPa
- wind_direction_700hPa
- wind_direction_600hPa
- wind_direction_500hPa
- wind_direction_400hPa
- wind_direction_300hPa
- wind_direction_250hPa
- wind_direction_200hPa
- wind_direction_150hPa
- wind_direction_100hPa
- wind_direction_50hPa
- vertical_velocity_1000hPa
- vertical_velocity_925hPa
- vertical_velocity_850hPa
- vertical_velocity_700hPa
- vertical_velocity_600hPa
- vertical_velocity_500hPa
- vertical_velocity_400hPa
- vertical_velocity_300hPa
- vertical_velocity_250hPa
- vertical_velocity_200hPa
- vertical_velocity_150hPa
- vertical_velocity_100hPa
- vertical_velocity_50hPa
- geopotential_height_1000hPa
- geopotential_height_925hPa
- geopotential_height_850hPa
- geopotential_height_700hPa
- geopotential_height_600hPa
- geopotential_height_500hPa
- geopotential_height_400hPa
- geopotential_height_300hPa
- geopotential_height_250hPa
- geopotential_height_200hPa
- geopotential_height_150hPa
- geopotential_height_100hPa
- geopotential_height_50hPa
- name: daily
in: query
description: >-
A list of daily weather variable aggregations.
explode: false
schema:
type: array
items:
type: string
enum:
- temperature_2m_mean
- temperature_2m_min
- temperature_2m_max
- apparent_temperature_mean
- apparent_temperature_min
- apparent_temperature_max
- wind_speed_10m_mean
- wind_speed_10m_min
- wind_speed_10m_max
- wind_direction_10m_dominant
- wind_gusts_10m_mean
- wind_gusts_10m_min
- wind_gusts_10m_max
- wind_speed_100m_mean
- wind_speed_100m_min
- wind_speed_100m_max
- wind_direction_100m_dominant
- cloud_cover_mean
- cloud_cover_min
- cloud_cover_max
- precipitation_sum
- precipitation_hours
- rain_sum
- snowfall_sum
- pressure_msl_mean
- pressure_msl_min
- pressure_msl_max
- surface_pressure_mean
- surface_pressure_min
- surface_pressure_max
- relative_humidity_2m_mean
- relative_humidity_2m_min
- relative_humidity_2m_max
- cape_mean
- cape_min
- cape_max
- dew_point_2m_mean
- dew_point_2m_min
- dew_point_2m_max
- et0_fao_evapotranspiration
- shortwave_radiation_sum
- name: elevation
in: query
schema:
type: number
format: float
- name: temperature_unit
in: query
schema:
type: string
default: celsius
enum: [celsius, fahrenheit]
- name: wind_speed_unit
in: query
schema:
type: string
default: kmh
enum: [kmh, ms, mph, kn]
- name: precipitation_unit
in: query
schema:
type: string
default: mm
enum: [mm, inch]
- name: timeformat
in: query
description: >-
If format unixtime is selected, all time values are returned in UNIX epoch time.
schema:
type: string
default: iso8601
enum: [iso8601, unixtime]
- name: timezone
in: query
description: >-
Any IANA time zone name is supported. Use auto to resolve the local time zone.
schema:
type: string
- name: past_days
in: query
description: >-
Return past days of data.
schema:
type: integer
default: 0
minimum: 0
maximum: 92
- name: forecast_days
in: query
description: >-
Number of forecast days.
schema:
type: integer
default: 7
minimum: 0
maximum: 36
- name: past_hours
in: query
schema:
type: integer
- name: forecast_hours
in: query
schema:
type: integer
- name: start_date
in: query
description: >-
Start date of the time interval in ISO 8601 format.
schema:
type: string
format: date
- name: end_date
in: query
description: >-
End date of the time interval in ISO 8601 format.
schema:
type: string
format: date
- name: tilt
in: query
description: >-
Slope tilt in degrees for global_tilted_irradiance calculation.
schema:
type: number
format: float
default: 0
- name: azimuth
in: query
description: >-
Azimuth for global_tilted_irradiance. North=0, East=90, South=180, West=270.
schema:
type: number
format: float
default: 0
- name: cell_selection
in: query
description: >-
Grid cell selection preference: land, sea, or nearest.
schema:
type: string
enum: [land, sea, nearest]
- name: apikey
in: query
description: >-
Only required for commercial subscriptions.
schema:
type: string
- name: models
in: query
description: Manually select one or more weather models.
explode: false
schema:
type: array
items:
type: string
enum:
- icon_seamless_eps
- icon_global_eps
- icon_eu_eps
- icon_d2_eps
- ncep_gefs_seamless
- ncep_gefs025
- ncep_gefs05
- ncep_aigefs025
- ecmwf_ifs025_ensemble
- ecmwf_aifs025_ensemble
- gem_global_ensemble
- bom_access_global_ensemble
- ukmo_global_ensemble_20km
- ukmo_uk_ensemble_2km
- meteoswiss_icon_ch1_ensemble
- meteoswiss_icon_ch2_ensemble
- name: temporal_resolution
in: query
description: >-
Aggregate data into larger time intervals. Supported: native, hourly, hourly_3,
hourly_6.
schema:
type: string
enum: [native, hourly, hourly_3, hourly_6]
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
latitude:
type: number
format: float
longitude:
type: number
format: float
elevation:
type: number
format: float
generationtime_ms:
type: number
format: float
utc_offset_seconds:
type: integer
timezone:
type: string
timezone_abbreviation:
type: string
hourly:
type: object
properties:
time:
type: array
items:
type: string
additionalProperties:
type: array
items:
type: number
format: float
hourly_units:
type: object
properties:
time:
type: string
additionalProperties:
type: string
daily:
type: object
properties:
time:
type: array
items:
type: string
additionalProperties:
type: array
items:
type: number
format: float
daily_units:
type: object
properties:
time:
type: string
additionalProperties:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
error:
type: boolean
reason:
type: string