Weather Forecast API

Seamless integration of high-resolution weather models with up 16 days forecast

Location and Time

By default, we provide forecasts for 7 days, but you can access forecasts for up to 16 days. If you're interested in past weather data, you can use the Past Days feature to access archived forecasts.

Hourly Weather Variables

Daily Weather Variables

Current Weather

Note: Current conditions are based on 15-minutely weather model data. Every weather variable available in hourly data, is available as current condition as well.

Settings

API Response

Loading...
(Open in new tab or copy this URL into your application).

Data Source

Open-Meteo weather forecast APIs use weather models from multiple national weather providers. For each location worldwide, the best models will be combined to provide the best possible forecast.

Weather models cover different geographic areas at different resolutions and provide different weather variables. Depending on the model, data have been interpolated to hourly values or not all weather variables are available. With the drop down Weather models (just below the hourly variables), you can select and compare individual weather models.

You can find the update timings in the model updates documentation.
Weather Model National Weather Provider Origin Country Resolution Forecast Length Update frequency
ICON Deutscher Wetterdienst (DWD) Germany 2 - 11 km 7.5 days Every 3 hours
GFS & HRRR NOAA United States 3 - 25 km 16 days Every hour
ARPEGE & AROME Météo-France France 1 - 25 km 4 days Every hour
IFS & AIFS ECMWF European Union 25 km 15 days Every 6 hours
UKMO UK Met Office United Kingdom 2 - 10 km 7 days Every hour
MSM & GSM JMA Japan 5 - 55 km 11 days Every 3 hours
MET Nordic MET Norway Norway 1 km 2.5 days Every hour
HARMONIE KNMI Netherlands 2 km 2.5 days Every hour
HARMONIE DMI Denmark 2 km 2.5 days Every 3 hours
GEM Canadian Weather Service Canada 2.5 km 10 days Every 6 hours
GFS GRAPES China Meteorological Administration (CMA) China 15 km 10 days Every 6 hours
ACCESS-G Australian Bureau of Meteorology (BOM) Australia 15 km 10 days Every 6 hours
COSMO 2I & 5M AM ARPAE ARPAP Italy 2 km 3 days Every 3 hours

API Documentation

The API endpoint /v1/forecast 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. If &forecast_days=16 is set, up to 16 days of forecast can be returned. All URL parameters are listed below:

Parameter Format Required Default Description
latitude, longitude Floating point Yes Geographical WGS84 coordinates of the location. Multiple coordinates can be comma separated. E.g. &latitude=52.52,48.85&longitude=13.41,2.35. To return data for multiple locations the JSON output changes to a list of structures. CSV and XLSX formats add a column location_id.
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. For multiple locations, elevation can also be comma separated.
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.
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 String array No A list of weather variables to get current conditions.
temperature_unit String No celsius If fahrenheit is set, all temperature values are converted to Fahrenheit.
wind_speed_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. For multiple coordinates, a comma separated list of timezones can be specified.
past_days Integer (0-92) No 0 If past_days is set, yesterday or the day before yesterday data are also returned.
forecast_days Integer (0-16) No 7 Per default, only 7 days are returned. Up to 16 days of forecast are possible.
forecast_hours
forecast_minutely_15
past_hours
past_minutely_15
Integer (>0) No Similar to forecast_days, the number of timesteps of hourly and 15-minutely data can controlled. Instead of using the current day as a reference, the current hour or the current 15-minute time-step is used.
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).
start_hour
end_hour
start_minutely_15
end_minutely_15
String (yyyy-mm-ddThh:mm) No The time interval to get weather data for hourly or 15 minutely data. Time must be specified as an ISO8601 date (e.g. 2022-06-30T12:00).
models String array No auto Manually select one or more weather models. Per default, the best suitable weather models will be combined.
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
relative_humidity_2m Instant % Relative humidity at 2 meters above ground
dew_point_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.
cloud_cover Instant % Total cloud cover as an area fraction
cloud_cover_low Instant % Low level clouds and fog up to 3 km altitude
cloud_cover_mid Instant % Mid level clouds from 3 to 8 km altitude
cloud_cover_high Instant % High level clouds from 8 km altitude
wind_speed_10m
wind_speed_80m
wind_speed_120m
wind_speed_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.
wind_direction_10m
wind_direction_80m
wind_direction_120m
wind_direction_180m
Instant ° Wind direction at 10, 80, 120 or 180 meters above ground
wind_gusts_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
global_tilted_irradiance Preceding hour mean W/m² Total radiation received on a tilted pane as average of the preceding hour. The calculation is assuming a fixed albedo of 20% and in isotropic sky. Please specify tilt and azimuth parameter. Tilt ranges from 0° to 90° and is typically around 45°. Azimuth should be close to 0° (0° south, -90° east, 90° west). If azimuth is set to "nan", the calculation assumes a horizontal tracker. If tilt is set to "nan", it is assumed that the panel has a vertical tracker. If both are set to "nan", a bi-axial tracker is assumed.
vapour_pressure_deficit Instant kPa Vapour Pressure Deficit (VPD) in kilopascal (kPa). For high VPD (>1.6), water transpiration of plants increases. For low VPD (<0.4), transpiration decreases
cape Instant J/kg Convective available potential energy. See Wikipedia.
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
precipitation_probability Preceding hour probability % Probability of precipitation with more than 0.1 mm of the preceding hour. Probability is based on ensemble weather models with 0.25° (~27 km) resolution. 30 different simulations are computed to better represent future weather conditions.
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
weather_code 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
freezing_level_height Instant meters Altitude above sea level of the 0°C level
visibility Instant meters Viewing distance in meters. Influenced by low clouds, humidity and aerosols.
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_to_1cm
soil_moisture_1_to_3cm
soil_moisture_3_to_9cm
soil_moisture_9_to_27cm
soil_moisture_27_to_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.
is_day Instant Dimensionless 1 if the current time step has daylight, 0 at night.

15-Minutely Parameter Definition

The parameter &minutely_15= can be used to get 15-minutely data. This data is based on NOAA HRRR model for North America and DWD ICON-D2 and Météo-France AROME model for Central Europe. If 15-minutely data is requested for other regions data is interpolated from 1-hourly to 15-minutely.

15-minutely data can be requested for other weather variables that are available for hourly data, but will use interpolation.

Variable Valid time Unit HRRR ICON-D2 AROME
temperature_2m Instant °C (°F) x x
relative_humidity_2m Instant % x x
dew_point_2m Instant °C (°F) x x
apparent_temperature Instant °C (°F) x x
shortwave_radiation Preceding 15 minutes mean W/m² x x
direct_radiation
direct_normal_irradiance
Preceding 15 minutes mean W/m² x x
global_tilted_irradiance
global_tilted_irradiance_instant
Preceding 15 minutes mean W/m² x x
diffuse_radiation Preceding 15 minutes mean W/m² x x
sunshine_duration Preceding 15 minutes sum seconds x x
lightning_potential Instant J/kg x
precipitation Preceding 15 minutes sum mm (inch) x x x
snowfall Preceding 15 minutes sum cm (inch) x x x
rain Preceding 15 minutes sum mm (inch) x x x
showers Preceding 15 minutes sum mm (inch) x
snowfall_height Instant meters x
freezing_level_height Instant meters x
cape Instant J/kg x x x
wind_speed_10m
wind_speed_80m
Instant km/h (mph, m/s, knots) x x
wind_direction_10m
wind_direction_80m
Instant ° x x
wind_gusts_10m Preceding 15 min max km/h (mph, m/s, knots) x
visibility Instant meters x x
weather_code Instant WMO code x x

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) 1000975950925900850800700600500400300250200150100705030
Altitude 110 m320 m500 m800 m1000 m1500 m1900 m3 km4.2 km5.6 km7.2 km9.2 km10.4 km11.8 km13.5 km15.8 km17.7 km19.3 km22 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.
relative_humidity_1000hPa
relative_humidity_975hPa, ...
% Relative humidity at the specified pressure level.
dew_point_1000hPa
dew_point_975hPa, ...
°C (°F) Dew point temperature at the specified pressure level.
cloud_cover_1000hPa
cloud_cover_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.
wind_speed_1000hPa
wind_speed_975hPa, ...
km/h (mph, m/s, knots) Wind speed at the specified pressure level.
wind_direction_1000hPa
wind_direction_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
precipitation_probability_max
precipitation_probability_min
precipitation_probability_mean
% Probability of precipitation
weather_code WMO code The most severe weather condition on a given day
sunrise
sunset
iso8601 Sun rise and set times
sunshine_duration seconds The number of seconds of sunshine per day is determined by calculating direct normalized irradiance exceeding 120 W/m², following the WMO definition. Sunshine duration will consistently be less than daylight duration due to dawn and dusk.
daylight_duration seconds Number of seconds of daylight per day
wind_speed_10m_max
wind_gusts_10m_max
km/h (mph, m/s, knots) Maximum wind speed and gusts on a day
wind_direction_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
uv_index_max
uv_index_clear_sky_max
Index Daily maximum in UV Index starting from 0. uv_index_clear_sky_max assumes cloud free conditions. Please follow the official WMO guidelines for ultraviolet index.

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"
  }

      
    
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.

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