This endpoint returns gridded forecast output as NetCDF (default) or Zarr. Request a native or derived variable by name, or set variable to all to retrieve all native variables.
The variable and level parameters are used to specify the variable and level to retrieve.
Use the model-specific URL below to choose which weather model's forecast to retrieve. You can find a list of available models here.
WeatherMesh-6
WeatherMesh-6 processes its 128 member-ensemble to output a number of summary statistics, including mean, standard deviation, percentiles, threshold probabilities, and precipitation-type probabilities. Use the variables endpoint to query which fields are available for each parameter. Use the include_distribution parameter to request these fields, include_members to get all 128 raw ensemble members, or include_deterministic to add the deterministic forecast alongside the mean. Use skip_mean to omit the ensemble mean from the output.
For archived WeatherMesh-6 forecasts, native variables can be requested individually or together by setting variable to all. Derived variables are available only for non-archived forecasts.
For upper-level atmospheric variables, set the pressure level in hectopascals (hPa) using the level query parameter alongside the variable. To get the same list as JSON via the API, see the Variables endpoint
| Available Levels (hPa) |
|---|
| 10 30 50 70 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 925 950 975 1000 |
| Available Levels (hPa) |
|---|
| Surface variables only. |
| Available Levels (hPa) |
|---|
| Only surface level variables are available. |
| Available Levels (hPa) |
|---|
| Only surface level variables are available. |
| Available Levels (hPa) |
|---|
| Only surface level variables are available. |
| Available Levels (hPa) |
|---|
| Only surface level variables are available. |
| Available Levels (hPa) |
|---|
| Only surface level variables are available. |
Native variables for each model and derived variables for WeatherMesh-6 are listed below. To get the same list as JSON via the API, use the Variables endpoint.
| Name | Type | Description | Unit |
|---|---|---|---|
| all | all | All native variables at all heights. Does not include derived variables; request them individually. | - |
| boundary_layer_height | surface | Boundary layer height | m |
| cape | surface | Convective available potential energy | J/kg |
| cloud_base_height | surface | Cloud base height | m |
| dewpoint_2m | surface | 2m dewpoint temperature | K |
| direct_solar_radiation_3h | surface | 3h total sky direct solar radiation at surface | J/m2 |
| forecast_surface_roughness | surface | Forecast surface roughness | m |
| high_cloud_cover | surface | High cloud cover | 0-1 |
| latent_heat_flux_3h | surface | 3h surface latent heat flux | J/m2 |
| low_cloud_cover | surface | Low cloud cover | 0-1 |
| max_temperature_2m_3h | surface | Maximum temperature over the next three hours | K |
| mean_total_precipitation_rate | surface | Mean total precipitation rate | kg/m2/s |
| medium_cloud_cover | surface | Medium cloud cover | 0-1 |
| min_temperature_2m_3h | surface | Minimum temperature over the next three hours | K |
| p_type | surface | Precipitation type 0 rain, 1 freezing rain, 2 ice pellets, 3 snow | category |
| pressure_msl | surface | Mean sea level pressure | Pa |
| runoff_3h | surface | 3h runoff | mm |
| sensible_heat_flux_3h | surface | 3h surface sensible heat flux | J/m2 |
| short_wave_radiation | surface | Mean surface net short wave radiation flux | W/m2 |
| skin_temperature | surface | Skin temperature | K |
| snowfall_3h | surface | 3h snowfall | mm |
| soil_moisture_level_1 | surface | Volumetric soil water layer 1 | m3/m3 |
| soil_moisture_level_2 | surface | Volumetric soil water layer 2 | m3/m3 |
| soil_temperature_level_1 | surface | Soil temperature level 1 | K |
| soil_temperature_level_2 | surface | Soil temperature level 2 | K |
| solar_radiation_downwards_3h | surface | 3h surface solar radiation downwards | J/m2 |
| surface_pressure | surface | Surface pressure | Pa |
| surface_solar_radiation_3h | surface | 3h surface net solar radiation | J/m2 |
| temperature_2m | surface | 2m temperature | K |
| thermal_radiation_downwards_3h | surface | 3h surface thermal radiation downwards | J/m2 |
| top_solar_radiation_3h | surface | 3h top net solar radiation | J/m2 |
| total_cloud_cover | surface | Total cloud cover | 0-1 |
| total_column_water_vapour | surface | Total column water vapour | kg/m2 |
| total_precipitation_3h | surface | Total precipitation over the last three hours | mm |
| wind_speed_100m | surface | 100m wind speed Separately trained field, independent of u/v components. | m/s |
| wind_speed_10m | surface | 10m wind speed Separately trained field, independent of u/v components. | m/s |
| wind_speed_250 | surface | 250 hPa wind speed | m/s |
| wind_u_100m | surface | 100m u-component of windwind_speed_100m is a separately trained field, independent of wind_u/v_100m. | m/s |
| wind_u_10m | surface | 10m u-component of windwind_speed_10m is a separately trained field, independent of wind_u/v_10m. | m/s |
| wind_v_100m | surface | 100m v-component of windwind_speed_100m is a separately trained field, independent of wind_u/v_100m. | m/s |
| wind_v_10m | surface | 10m v-component of windwind_speed_10m is a separately trained field, independent of wind_u/v_10m. | m/s |
| geopotential | upper-level | Geopotential Not geopotential height | m2/s2 |
| specific_humidity | upper-level | The mass of water vapor per unit mass of dry air | kg/kg |
| temperature | upper-level | Temperature | K |
| wind_u | upper-level | U-component of wind | m/s |
| wind_v | upper-level | V-component of wind | m/s |
| integrated_vapor_transport | derived surface | Column-integrated horizontal moisture transport | kg/m/s |
| thermal_height_agl | derived surface | Top of usable thermal lift above ground level | m |
| thermal_height_msl | derived surface | Top of usable thermal lift above mean sea level | m |
| thermal_strength | derived surface | Peak thermal updraft velocity at 100 m above ground level | m/s |
| edr | derived upper-level | Eddy dissipation rate, an aircraft-independent measure of turbulence intensity | m2/3/s |
| Name | Type | Description | Unit |
|---|---|---|---|
| all | all | All variables. | - |
| dewpoint_2m | surface | 2m dewpoint temperature | K |
| temperature_2m | surface | 2m temperature | K |
| wind_gust_10m | surface | 10m wind gust | m/s |
| wind_speed_100m | surface | 100m wind speed Separately trained field, independent of u/v components. | m/s |
| wind_u_100m | surface | 100m u-component of windwind_speed_100m is a separately trained field, independent of wind_u/v_100m. | m/s |
| wind_u_10m | surface | 10m u-component of wind | m/s |
| wind_v_100m | surface | 100m v-component of windwind_speed_100m is a separately trained field, independent of wind_u/v_100m. | m/s |
| wind_v_10m | surface | 10m v-component of wind | m/s |
| Name | Type | Description | Unit |
|---|---|---|---|
| all | all | All variables at all heights. Only variable available for archived initialization_times. | - |
| dewpoint_2m | surface | 2m dewpoint temperature | K |
| pressure_msl | surface | Mean sea level pressure | Pa |
| temperature_2m | surface | 2m temperature | K |
| total_precipitation_1h | surface | Total precipitation over the last hour | mm |
| wind_u_100m | surface | 100m u-component of wind | m/s |
| wind_u_10m | surface | 10m u-component of wind | m/s |
| wind_v_100m | surface | 100m v-component of wind | m/s |
| wind_v_10m | surface | 10m v-component of wind | m/s |
| Name | Type | Description | Unit |
|---|---|---|---|
| all | all | All variables at all heights. Only variable available for archived initialization_times. | - |
| temperature_2m | surface | 2m temperature | K |
| Name | Type | Description | Unit |
|---|---|---|---|
| all | all | All variables at all heights. Only variable available for archived initialization_times. | - |
| dewpoint_2m | surface | 2m dewpoint temperature | K |
| pressure_msl | surface | Mean sea level pressure | Pa |
| temperature_2m | surface | 2m temperature | K |
| total_precipitation_1h | surface | Total precipitation over the last hour | mm |
| wind_u_100m | surface | 100m u-component of wind | m/s |
| wind_u_10m | surface | 10m u-component of wind | m/s |
| wind_v_100m | surface | 100m v-component of wind | m/s |
| wind_v_10m | surface | 10m v-component of wind | m/s |
| Name | Type | Description | Unit |
|---|---|---|---|
| all | all | All variables at all heights. Only variable available for archived initialization_times. | - |
| dewpoint_2m | surface | 2m dewpoint temperature | K |
| pressure_msl | surface | Mean sea level pressure | Pa |
| temperature_2m | surface | 2m temperature | K |
| total_precipitation_1h | surface | Total precipitation over the last hour | mm |
| wind_u_100m | surface | 100m u-component of wind | m/s |
| wind_u_10m | surface | 10m u-component of wind | m/s |
| wind_v_100m | surface | 100m v-component of wind | m/s |
| wind_v_10m | surface | 10m v-component of wind | m/s |
| Name | Type | Description | Unit |
|---|---|---|---|
| all | all | All variables at all heights. Only variable available for archived initialization_times. | - |
| dewpoint_2m | surface | 2m dewpoint temperature | K |
| pressure_msl | surface | Mean sea level pressure | Pa |
| temperature_2m | surface | 2m temperature | K |
| total_precipitation_1h | surface | Total precipitation over the last hour | mm |
| wind_u_10m | surface | 10m u-component of wind | m/s |
| wind_v_10m | surface | 10m v-component of wind | m/s |
| Name | Type | Description |
|---|---|---|
| variable Required | string | Variable to download. Use the Variables endpoint to list what's available for your model. Set all to retrieve all native variables at all heights. Specify a surface variable (e.g., temperature_2m) or combine with level for upper-level variables (e.g., temperature at 500 hPa). On wm-6, derived variables (e.g., thermal_strength, or edr at 500 hPa) must be requested by name and are available only for non-archived forecasts. |
| level Optional | integer | Pressure level for upper-level variables. Models: wm-6, wm-6-3km; Unit: hPa |
| include_distribution Optional | boolean | If true, adds distribution outputs such as percentiles, standard deviation, thresholds, and precipitation-type probabilities. Only available for selected variables. Available only with format=zarr. Models: wm-6; Default: false |
| include_deterministic Optional | boolean | If true, adds the deterministic forecast to the output. Only available for WM-6 variables reported with det by the Variables endpoint. Available only with format=zarr. Models: wm-6; Default: false |
| include_members Optional | boolean | If true, adds all 128 ensemble members to the output. Only available for selected variables. Available only with format=zarr. Models: wm-6; Default: false |
| skip_mean Optional | boolean | If true, omits the ensemble mean from the output. Requires include_deterministic or include_members. Cannot be combined with include_distribution. Only available for WM-6 with format=zarr. Models: wm-6; Default: false |
| time Conditional | string (ISO 8601) | The time at which the forecast is valid. Alternatively, you can specify initialization_time and forecast_hour. |
| initialization_time Conditional | string (ISO 8601) | The initialization time for the forecast. Must be used with forecast_hour. Cannot be used with time. |
| forecast_hour Conditional | integer | Hours from forecast zero for which to get the forecast. Must be used with initialization_time. Cannot be used with time. Unit: hours |
| format Optional | string | Output file format. Allowed: zarr, netcdf; Default: zarr on wm-6 and wm-6-3km, netcdf on other models |
| domain Optional | string | Regional domain to retrieve. Models: wm-6-3km; Allowed: conus; Default: conus |
| as_url Optional | boolean | If true, returns a JSON response with a temporary download URL instead of the file directly. On wm-6 and wm-6-3km, for a single variable or level, the response also lists the byte ranges in that file (parts) that hold your selection. On other models, only available with variable=all; the URL is the whole file. Useful for MCP clients and programmatic access. Default: false |
| Name | Type | Description |
|---|---|---|
| variable Required | string | Variable to download. Use the Variables endpoint to list what's available for your model. Set all to retrieve all native variables at all heights. Specify a surface variable (e.g., temperature_2m) or combine with level for upper-level variables (e.g., temperature at 500 hPa). On wm-6, derived variables (e.g., thermal_strength, or edr at 500 hPa) must be requested by name and are available only for non-archived forecasts. |
| -m , --model Required | string | Weather model to use. Allowed: wm-6, wm-6-3km, ecmwf-det, ecmwf-ens, aifs, gfs, hrrr |
| level Optional | integer | Pressure level for upper-level variables. Models: wm-6, wm-6-3km; Unit: hPa |
| --include-distribution Optional | flag | If true, adds distribution outputs such as percentiles, standard deviation, thresholds, and precipitation-type probabilities. Only available for selected variables. Available only with format=zarr. Models: wm-6; Default: false |
| --include-deterministic Optional | flag | If true, adds the deterministic forecast to the output. Only available for WM-6 variables reported with det by the Variables endpoint. Available only with format=zarr. Models: wm-6; Default: false |
| --include-members Optional | flag | If true, adds all 128 ensemble members to the output. Only available for selected variables. Available only with format=zarr. Models: wm-6; Default: false |
| --skip-mean Optional | flag | If true, omits the ensemble mean from the output. Requires include_deterministic or include_members. Cannot be combined with include_distribution. Only available for WM-6 with format=zarr. Models: wm-6; Default: false |
| time Conditional | string (ISO 8601) | The time at which the forecast is valid. Alternatively, you can specify initialization_time and forecast_hour. |
| initialization_time Conditional | string (ISO 8601) | The initialization time for the forecast. Must be used with forecast_hour. Cannot be used with time. |
| forecast_hour Conditional | integer | Hours from forecast zero for which to get the forecast. Must be used with initialization_time. Cannot be used with time. Unit: hours |
| -f , --format Optional | string | Output file format. Allowed: zarr, netcdf; Default: zarr on wm-6 and wm-6-3km, netcdf on other models |
| --domain Optional | string | Regional domain to retrieve. Models: wm-6-3km; Allowed: conus; Default: conus |
| --as-url Optional | flag | If true, returns a JSON response with a temporary download URL instead of the file directly. Then output_file must end in .json; it receives the link details, not the forecast file. Default: false |
| output_file Required | string | Path to save the response data. |
| Name | Type | Description |
|---|---|---|
| variable Required | str | Variable to download. Use the Variables endpoint to list what's available for your model. Set all to retrieve all native variables at all heights. Specify a surface variable (e.g., temperature_2m) or combine with level for upper-level variables (e.g., temperature at 500 hPa). On wm-6, derived variables (e.g., thermal_strength, or edr at 500 hPa) must be requested by name and are available only for non-archived forecasts. |
| model Required | str | Weather model to use. Allowed: wm-6, wm-6-3km, ecmwf-det, ecmwf-ens, aifs, gfs, hrrr |
| level Optional | int | Pressure level for upper-level variables. Models: wm-6, wm-6-3km; Unit: hPa |
| include_distribution Optional | bool | If true, adds distribution outputs such as percentiles, standard deviation, thresholds, and precipitation-type probabilities. Only available for selected variables. Available only with format=zarr. Models: wm-6; Default: false |
| include_deterministic Optional | bool | If true, adds the deterministic forecast to the output. Only available for WM-6 variables reported with det by the Variables endpoint. Available only with format=zarr. Models: wm-6; Default: false |
| include_members Optional | bool | If true, adds all 128 ensemble members to the output. Only available for selected variables. Available only with format=zarr. Models: wm-6; Default: false |
| skip_mean Optional | bool | If true, omits the ensemble mean from the output. Requires include_deterministic or include_members. Cannot be combined with include_distribution. Only available for WM-6 with format=zarr. Models: wm-6; Default: false |
| time Conditional | str (ISO 8601) | The time at which the forecast is valid. Alternatively, you can specify initialization_time and forecast_hour. |
| initialization_time Conditional | str (ISO 8601) | The initialization time for the forecast. Must be used with forecast_hour. Cannot be used with time. |
| forecast_hour Conditional | int | Hours from forecast zero for which to get the forecast. Must be used with initialization_time. Cannot be used with time. Unit: hours |
| format Optional | str | Output file format. Allowed: zarr, netcdf; Default: zarr on wm-6 and wm-6-3km, netcdf on other models |
| domain Optional | str | Regional domain to retrieve. Models: wm-6-3km; Allowed: conus; Default: conus |
| as_url Optional | bool | If true, returns a JSON response with a temporary download URL instead of the file directly. Then output_file must end in .json; it receives the link details, not the forecast file. Default: false |
| output_file Required | str | Path to save the response data. |
Returns a netCDF (.nc) or Zarr (.zarr.zip) file containing gridded forecast data for the specified variable. This will generally redirect to a presigned download URL, so you will need to follow the redirect to get the file. Use the -L flag in curl. Only in the short time it takes for the file to be uploaded will it be served directly.