Preview and API URL
Data Source
This API uses global DWD ICON weather forecast and combines them with high-resolution ICON Europe and Central Europe forecasts. Information about DWD wearther models is available here. For ICON Global and Europe, values are interpolated from 3-hourly to 1-hourly after 78 hours. 15-minutely data is only available for a small number of weather variables and only in Central Europe.
Weather Model | Region | Spatial Resolution | Temporal Resolution | Forecast Length | Update frequency |
---|---|---|---|---|---|
ICON Global | Global | 0.1° (~11 km) | Hourly, 3-hourly after 78 hours | 7.5 days | Every 6 hours |
ICON Europe | Europe | 0.0625° (~7 km) | Hourly, 3-hourly after 78 hours | 5 days | Every 3 hours |
ICON D2 | Central Europe | 0.02° (~2 km) | 15-Minutely | 2 days | Every 3 hours |
API Documentation
The API endpoint /v1/dwd-icon accepts a geographical coordinate, a list of weather variables and responds with a JSON hourly weather forecast for 7 days. Time always starts at 0:00 today and contains 168 hours. All URL parameters are listed below:
Parameter | Format | Required | Default | Description |
---|---|---|---|---|
latitude, longitude | Floating point | Yes | Geographical WGS84 coordinate of the location | |
elevation | Floating point | No | The elevation used for statistical downscaling. Per default, a 90 meter digital elevation model is used. You can manually set the elevation to correctly match mountain peaks. If &elevation=nan is specified, downscaling will be disabled and the API uses the average grid-cell height. | |
hourly | String array | No | A list of weather variables which should be returned. Values can be comma separated, or multiple &hourly= parameter in the URL can be used. | |
minutely_15 | String array | No | A list of weather variables which should be returned. Values can be comma separated, or multiple &minutely_15= parameter in the URL can be used. | |
daily | String array | No | A list of daily weather variable aggregations which should be returned. Values can be comma separated, or multiple &daily= parameter in the URL can be used. If daily weather variables are specified, parameter timezone is required. | |
current_weather | Bool | No | false | Include current weather conditions in the JSON output. |
temperature_unit | String | No | celsius | If fahrenheit is set, all temperature values are converted to Fahrenheit. |
windspeed_unit | String | No | kmh | Other wind speed speed units: ms, mph and kn |
precipitation_unit | String | No | mm | Other precipitation amount units: inch |
timeformat | String | No | iso8601 | If format unixtime is selected, all time values are returned in UNIX epoch time in seconds. Please note that all timestamp are in GMT+0! For daily values with unix timestamps, please apply utc_offset_seconds again to get the correct date. |
timezone | String | No | GMT | If timezone is set, all timestamps are returned as local-time and data is returned starting at 00:00 local-time. Any time zone name from the time zone database is supported. If auto is set as a time zone, the coordinates will be automatically resolved to the local time zone. |
past_days | Integer (0-2) | No | 0 | If past_days is set, yesterday or the day before yesterday data are also returned. |
start_date end_date | String (yyyy-mm-dd) | No | The time interval to get weather data. A day must be specified as an ISO8601 date (e.g. 2022-06-30). | |
cell_selection | String | No | land | Set a preference how grid-cells are selected. The default land finds a suitable grid-cell on land with similar elevation to the requested coordinates using a 90-meter digital elevation model. sea prefers grid-cells on sea. nearest selects the nearest possible grid-cell. |
apikey | String | No | Only required to commercial use to access reserved API resources for customers. The server URL requires the prefix customer-. See pricing for more information. |
Additional optional URL parameters will be added. For API stability, no required parameters will be added in the future!
Hourly Parameter Definition
The parameter &hourly= accepts the following values. Most weather variables are given as an instantaneous value for the indicated hour. Some variables like precipitation are calculated from the preceding hour as an average or sum.
Variable | Valid time | Unit | Description |
---|---|---|---|
temperature_2m | Instant | °C (°F) | Air temperature at 2 meters above ground |
relativehumidity_2m | Instant | % | Relative humidity at 2 meters above ground |
dewpoint_2m | Instant | °C (°F) | Dew point temperature at 2 meters above ground |
apparent_temperature | Instant | °C (°F) | Apparent temperature is the perceived feels-like temperature combining wind chill factor, relative humidity and solar radiation |
pressure_msl surface_pressure | Instant | hPa | Atmospheric air pressure reduced to mean sea level (msl) or pressure at surface. Typically pressure on mean sea level is used in meteorology. Surface pressure gets lower with increasing elevation. |
cloudcover | Instant | % | Total cloud cover as an area fraction |
cloudcover_low | Instant | % | Low level clouds and fog up to 3 km altitude |
cloudcover_mid | Instant | % | Mid level clouds from 3 to 8 km altitude |
cloudcover_high | Instant | % | High level clouds from 8 km altitude |
windspeed_10m windspeed_80m windspeed_120m windspeed_180m | Instant | km/h (mph, m/s, knots) | Wind speed at 10, 80, 120 or 180 meters above ground. Wind speed on 10 meters is the standard level. |
winddirection_10m winddirection_80m winddirection_120m winddirection_180m | Instant | ° | Wind direction at 10, 80, 120 or 180 meters above ground |
windgusts_10m | Preceding hour max | km/h (mph, m/s, knots) | Gusts at 10 meters above ground as a maximum of the preceding hour |
shortwave_radiation | Preceding hour mean | W/m² | Shortwave solar radiation as average of the preceding hour. This is equal to the total global horizontal irradiation |
direct_radiation direct_normal_irradiance | Preceding hour mean | W/m² | Direct solar radiation as average of the preceding hour on the horizontal plane and the normal plane (perpendicular to the sun) |
diffuse_radiation | Preceding hour mean | W/m² | Diffuse solar radiation as average of the preceding hour |
vapor_pressure_deficit | Instant | kPa | Vapor Pressure Deificit (VPD) in kilopascal (kPa). For high VPD (>1.6), water transpiration of plants increases. For low VPD (<0.4), transpiration decreases |
lightning_potential | Instant | J/kg | The Lightning Potential Index after Lynn and Yair (2010). It is calculated as a vertical integral of the squared updraft velocity weighted by a function that essentially contains the graupel concentration |
updraft | Instant | m/s | The maximum vertical updraft velocity within ground and 10 km altitude. |
evapotranspiration | Preceding hour sum | mm (inch) | Evapotranspration from land surface and plants that weather models assumes for this location. Available soil water is considered. 1 mm evapotranspiration per hour equals 1 liter of water per spare meter. |
et0_fao_evapotranspiration | Preceding hour sum | mm (inch) | ET₀ Reference Evapotranspiration of a well watered grass field. Based on FAO-56 Penman-Monteith equations ET₀ is calculated from temperature, wind speed, humidity and solar radiation. Unlimited soil water is assumed. ET₀ is commonly used to estimate the required irrigation for plants. |
precipitation | Preceding hour sum | mm (inch) | Total precipitation (rain, showers, snow) sum of the preceding hour |
snowfall | Preceding hour sum | cm (inch) | Snowfall amount of the preceding hour in centimeters. For the water equivalent in millimeter, divide by 7. E.g. 7 cm snow = 10 mm precipitation water equivalent |
rain | Preceding hour sum | mm (inch) | Rain from large scale weather systems of the preceding hour in millimeter |
showers | Preceding hour sum | mm (inch) | Showers from convective precipitation in millimeters from the preceding hour |
weathercode | Instant | WMO code | Weather condition as a numeric code. Follow WMO weather interpretation codes. See table below for details. |
snow_depth | Instant | meters | Snow depth on the ground |
snowfall_height | Instant | meters | Height of snowfall limit above mean sea level. It is defined as the height where the wet bulb temperature first exceeds 1.3◦C. |
freezinglevel_height | Instant | meters | Altitude above sea level of the 0°C level |
soil_temperature_0cm soil_temperature_6cm soil_temperature_18cm soil_temperature_54cm | Instant | °C (°F) | Temperature in the soil at 0, 6, 18 and 54 cm depths. 0 cm is the surface temperature on land or water surface temperature on water. |
soil_moisture_0_1cm soil_moisture_1_3cm soil_moisture_3_9cm soil_moisture_9_27cm soil_moisture_27_81cm | Instant | m³/m³ | Average soil water content as volumetric mixing ratio at 0-1, 1-3, 3-9, 9-27 and 27-81 cm depths. |
cape | Instant | J/kg | Convective available potential energy. See Wikipedia. |
15-Minutely Parameter Definition
The parameter &minutely_15= can be used to get 15-minutely data. This data is based on the ICON-D2 model which is only available in Central Europe. If 15-minutely data is requested for locations outside Central Europe, data is interpolated from 1-hourly to 15-minutely.
Variable | Valid time | Unit | Description |
---|---|---|---|
shortwave_radiation | Preceding hour mean | W/m² | Shortwave solar radiation as average of the preceding 15 minutes. This is equal to the total global horizontal irradiation |
direct_radiation direct_normal_irradiance | Preceding hour mean | W/m² | Direct solar radiation as average of the preceding 15 minutes on the horizontal plane and the normal plane (perpendicular to the sun) |
diffuse_radiation | Preceding hour mean | W/m² | Diffuse solar radiation as average of the preceding 15 minutes |
lightning_potential | Instant | J/kg | The Lightning Potential Index after Lynn and Yair (2010). It is calculated as a vertical integral of the squared updraft velocity weighted by a function that essentially contains the graupel concentration |
precipitation | Preceding hour sum | mm (inch) | Total precipitation (rain, showers, snow) sum of the preceding hour |
snowfall | Preceding hour sum | cm (inch) | Snowfall amount of the preceding hour in centimeters. For the water equivalent in millimeter, divide by 7. E.g. 7 cm snow = 10 mm precipitation water equivalent |
rain | Preceding hour sum | mm (inch) | Rain from large scale weather systems of the preceding hour in millimeter |
snowfall_height | Instant | meters | Height of snowfall limit above mean sea level. It is defined as the height where the wet bulb temperature first exceeds 1.3◦C. |
freezinglevel_height | Instant | meters | Altitude above sea level of the 0°C level |
cape | Instant | J/kg | Convective available potential energy. See Wikipedia. |
Pressure Level Variables
Pressure level variables do not have fixed altitudes. Altitude varies with atmospheric pressure. 1000 hPa is roughly between 60 and 160 meters above sea level. Estimated altitudes are given below. Altitudes are in meters above sea level (not above ground). For precise altitudes, geopotential_height can be used.
Level (hPa) | 1000 | 975 | 950 | 925 | 900 | 850 | 800 | 700 | 600 | 500 | 400 | 300 | 250 | 200 | 150 | 100 | 70 | 50 | 30 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Altitude | 110 m | 320 m | 500 m | 800 m | 1000 m | 1500 m | 1900 m | 3 km | 4.2 km | 5.6 km | 7.2 km | 9.2 km | 10.4 km | 11.8 km | 13.5 km | 15.8 km | 17.7 km | 19.3 km | 22 km |
All pressure level have valid times of the indicated hour (instant).
Variable | Unit | Description |
---|---|---|
temperature_1000hPa temperature_975hPa, ... | °C (°F) | Air temperature at the specified pressure level. Air temperatures decrease linearly with pressure. |
relativehumidity_1000hPa relativehumidity_975hPa, ... | % | Relative humidity at the specified pressure level. |
dewpoint_1000hPa dewpoint_975hPa, ... | °C (°F) | Dew point temperature at the specified pressure level. |
cloudcover_1000hPa cloudcover_975hPa, ... | % | Cloud cover at the specified pressure level. Cloud cover is approximated based on relative humidity using Sundqvist et al. (1989). It may not match perfectly with low, mid and high cloud cover variables. |
windspeed_1000hPa windspeed_975hPa, ... | km/h (mph, m/s, knots) | Wind speed at the specified pressure level. |
winddirection_1000hPa winddirection_975hPa, ... | ° | Wind direction at the specified pressure level. |
geopotential_height_1000hPa geopotential_height_975hPa, ... | meter | Geopotential height at the specified pressure level. This can be used to get the correct altitude in meter above sea level of each pressure level. Be carefull not to mistake it with altitude above ground. |
Daily Parameter Definition
Aggregations are a simple 24 hour aggregation from hourly values. The parameter &daily= accepts the following values:
Variable | Unit | Description |
---|---|---|
temperature_2m_max temperature_2m_min | °C (°F) | Maximum and minimum daily air temperature at 2 meters above ground |
apparent_temperature_max apparent_temperature_min | °C (°F) | Maximum and minimum daily apparent temperature |
precipitation_sum | mm | Sum of daily precipitation (including rain, showers and snowfall) |
rain_sum | mm | Sum of daily rain |
showers_sum | mm | Sum of daily showers |
snowfall_sum | cm | Sum of daily snowfall |
precipitation_hours | hours | The number of hours with rain |
weathercode | WMO code | The most severe weather condition on a given day |
sunrise sunset | iso8601 | Sun rise and set times |
windspeed_10m_max windgusts_10m_max | km/h (mph, m/s, knots) | Maximum wind speed and gusts on a day |
winddirection_10m_dominant | ° | Dominant wind direction |
shortwave_radiation_sum | MJ/m² | The sum of solar radiation on a given day in Megajoules |
et0_fao_evapotranspiration | mm | Daily sum of ET₀ Reference Evapotranspiration of a well watered grass field |
JSON Return Object
On success a JSON object will be returned.
"latitude": 52.52,
"longitude": 13.419,
"elevation": 44.812,
"generationtime_ms": 2.2119,
"utc_offset_seconds": 0,
"timezone": "Europe/Berlin",
"timezone_abbreviation": "CEST",
"hourly": {
"time": ["2022-07-01T00:00", "2022-07-01T01:00", "2022-07-01T02:00", ...],
"temperature_2m": [13, 12.7, 12.7, 12.5, 12.5, 12.8, 13, 12.9, 13.3, ...]
},
"hourly_units": {
"temperature_2m": "°C"
},
"current_weather": {
"time": "2022-07-01T09:00",
"temperature": 13.3,
"weathercode": 3,
"windspeed": 10.3,
"winddirection": 262
}
Parameter | Format | Description |
---|---|---|
latitude, longitude | Floating point | WGS84 of the center of the weather grid-cell which was used to generate this forecast. This coordinate might be a few kilometers away from the requested coordinate. |
elevation | Floating point | The elevation from a 90 meter digital elevation model. This effects which grid-cell is selected (see parameter cell_selection). Statistical downscaling is used to adapt weather conditions for this elevation. This elevation can also be controlled with the query parameter elevation. If &elevation=nan is specified, all downscaling is disabled and the averge grid-cell elevation is used. |
generationtime_ms | Floating point | Generation time of the weather forecast in milliseconds. This is mainly used for performance monitoring and improvements. |
utc_offset_seconds | Integer | Applied timezone offset from the &timezone= parameter. |
timezone timezone_abbreviation | String | Timezone identifier (e.g. Europe/Berlin) and abbreviation (e.g. CEST) |
hourly | Object | For each selected weather variable, data will be returned as a floating point array. Additionally a time array will be returned with ISO8601 timestamps. |
hourly_units | Object | For each selected weather variable, the unit will be listed here. |
daily | Object | For each selected daily weather variable, data will be returned as a floating point array. Additionally a time array will be returned with ISO8601 timestamps. |
daily_units | Object | For each selected daily weather variable, the unit will be listed here. |
current_weather | Object | Current weather conditions with the attributes: time, temperature, windspeed, winddirection and weathercode |
Errors
In case an error occurs, for example a URL parameter is not correctly specified, a JSON error object is returned with a HTTP 400 status code.
"error": true,
"reason": "Cannot initialize WeatherVariable from invalid String value tempeture_2m for key hourly"
Weather variable documentation
WMO Weather interpretation codes (WW)
Code | Description |
---|---|
0 | Clear sky |
1, 2, 3 | Mainly clear, partly cloudy, and overcast |
45, 48 | Fog and depositing rime fog |
51, 53, 55 | Drizzle: Light, moderate, and dense intensity |
56, 57 | Freezing Drizzle: Light and dense intensity |
61, 63, 65 | Rain: Slight, moderate and heavy intensity |
66, 67 | Freezing Rain: Light and heavy intensity |
71, 73, 75 | Snow fall: Slight, moderate, and heavy intensity |
77 | Snow grains |
80, 81, 82 | Rain showers: Slight, moderate, and violent |
85, 86 | Snow showers slight and heavy |
95 * | Thunderstorm: Slight or moderate |
96, 99 * | Thunderstorm with slight and heavy hail |
(*) Thunderstorm forecast with hail is only available in Central Europe