GFS & HRRR Forecast API

Global GFS model combined with hourly HRRR updates at 3-km resolution

Location and Time

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

This API uses global NOAA GFS weather forecast and combines them with high-resolution HRRR forecasts. HRRR is a rapid-refresh model and updates every hour. High-resolution data are only available for the United States. For other locations, only GFS is used. For GFS, values are interpolated from 3-hourly to 1-hourly after 120 hours.

Weather ModelRegionSpatial ResolutionTemporal ResolutionForecast LengthUpdate frequency
GFSGlobal0.11° (~13 km)Hourly, 3-hourly after 120 hours16 daysEvery 6 hours
GFS Pressure VariablesGlobal0.25° (~25 km)Hourly, 3-hourly after 120 hours16 daysEvery 6 hours
HRRR ConusU.S. Conus3 kmHourly18 hours (48 hours for 0, 6, 12, 18z)Every hour
NBM ConusU.S. Conus2.5 kmHourly, 3-Hourly after 36 hours, 6-Hourly after 8 days11 daysEvery hour
GFS GraphCast (experimental)Global0.25° (~25 km)6-hourly10 daysEvery 6 hours
HRRR U.S.Conus Model Area
HRRR U.S.Conus Model Area. Source: Open-Meteo.
NBM U.S. Conus Model Area
NBM U.S. Conus Model Area. Source: Open-Meteo.

API Documentation

The API endpoint /v1/gfs 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:

You can find the update timings in the model updates documentation.
ParameterFormatRequiredDefaultDescription
latitude, longitudeFloating pointYesGeographical 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.
elevationFloating pointNoThe 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.
hourlyString arrayNoA list of weather variables which should be returned. Values can be comma separated, or multiple &hourly= parameter in the URL can be used.
dailyString arrayNoA 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.
currentString arrayNoA list of weather variables to get current conditions.
temperature_unitStringNocelsiusIf fahrenheit is set, all temperature values are converted to Fahrenheit.
wind_speed_unitStringNokmhOther wind speed speed units: ms, mph and kn
precipitation_unitStringNommOther precipitation amount units: inch
timeformatStringNoiso8601If 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.
timezoneStringNoGMTIf 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_daysIntegerNo0If past_days is set, past weather data can be returned.
forecast_daysInteger (0-16)No7Per 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)NoSimilar 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)NoThe 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)NoThe 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).
cell_selectionStringNolandSet 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.
apikeyStringNoOnly 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!

Variable Per Model Availability

Various weather variables and levels may be available for each NOAA NCEP model. Certain variables for the high-resolution GFS013 model are unavailable, so the standard GFS025 model is used instead. The local area models HRRR and NBM differentiate between rain and shower precipitation types. Probability data is directly available only for NBM, while Open-Meteo calculates precipitation probability for the GFS025 model.

VariableGFS016GFS025HRRRNBMGraphCast
boundary_layer_heightxx
capexxx
categorical_freezing_rainxx
cloud_coverxxxx
cloud_cover low/mid/highxxx
convective_inhibitionxx
direct/diffuse radiationxx
freezing_level_heightxx
latent_heat_fluxxx
lifted_indexxx
mass_density_8mx
precipitationxxxx
pressure_mslxxx
relative_humidity_2mxxx
sensible_heat_fluxxx
shortwave_radiationxxx
showersx
snow_depthxx
snow_fallxxx
surface_temperaturexx
temperature_2mxxxx
total_column_integrated_water_vapourxx
uv_indexx
visibilityxxx
wind 1000hPaxxx
wind 10mxx
wind 80mxx
wind_gusts_10m/xx
Pressure Variables on hPa Levels
geopotential_heightxxx
relative_humidityxxx
vertical_velocityxxx
temperaturexxx
cloud_coverx
windxx
Soil Variables
soil_moisturex
soil_temperaturex
Probabilities
freezing_rain_probabilityx
ice_pellets_probabilityx
precipitation_probabilityxx
rain_probabilityx
snowfall_probabilityx
thunderstorm_probabilityx

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.

VariableValid timeUnitDescription
temperature_2mInstant°C (°F)Air temperature at 2 meters above ground
relative_humidity_2mInstant%Relative humidity at 2 meters above ground
dew_point_2mInstant°C (°F)Dew point temperature at 2 meters above ground
apparent_temperatureInstant°C (°F)Apparent temperature is the perceived feels-like temperature combining wind chill factor, relative humidity and solar radiation
pressure_msl
surface_pressure
InstanthPaAtmospheric 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_coverInstant%Total cloud cover as an area fraction
cloud_cover_lowInstant%Low level clouds and fog up to 3 km altitude
cloud_cover_midInstant%Mid level clouds from 3 to 8 km altitude
cloud_cover_highInstant%High level clouds from 8 km altitude
wind_speed_10m
wind_speed_80m
Instantkm/h (mph, m/s, knots)Wind speed at 10 or 80 meters above ground. Wind speed on 10 meters is the standard level.
wind_direction_10m
wind_direction_80m
Instant°Wind direction at 10 or 80 meters above ground
wind_gusts_10mPreceding hour maxkm/h (mph, m/s, knots)Gusts at 10 meters above ground as a maximum of the preceding hour
shortwave_radiationPreceding hour meanW/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 meanW/m²Direct solar radiation as average of the preceding hour on the horizontal plane and the normal plane (perpendicular to the sun). HRRR offers direct radiation directly. In GFS it is approximated based on Razo, Müller Witwer
diffuse_radiationPreceding hour meanW/m²Diffuse solar radiation as average of the preceding hour. HRRR offers diffuse radiation directly. In GFS it is approximated based on Razo, Müller Witwer
global_tilted_irradiancePreceding hour meanW/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.
sunshine_durationPreceding hour sumSecondsNumber of seconds of sunshine of the preceding hour per hour calculated by direct normalized irradiance exceeding 120 W/m², following the WMO definition.
vapour_pressure_deficitInstantkPaVapor Pressure Deificit (VPD) in kilopascal (kPa). For high VPD (>1.6), water transpiration of plants increases. For low VPD (<0.4), transpiration decreases
evapotranspirationPreceding hour summm (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_evapotranspirationPreceding hour summm (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.
weather_codeInstantWMO codeWeather condition as a numeric code. Follow WMO weather interpretation codes. See table below for details. Weather code is calculated from cloud cover analysis, precipitation, snowfall, cape, lifted index and gusts.
precipitationPreceding hour summm (inch)Total precipitation (rain, showers, snow) sum of the preceding hour
snowfallPreceding hour sumcm (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_probabilityPreceding 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.
snow_depthInstantmetersSnow depth on the ground
freezing_level_heightInstantmetersAltitude above sea level of the 0°C level
visibilityInstantmetersViewing distance in meters. Influenced by low clouds, humidity and aerosols.
capeInstantJ/kgConvective available potential energy. See Wikipedia.
lifted_indexInstantdimensionlessAtmospheric stability. See Wikipedia.
soil_temperature_0_to_10cm
soil_temperature_10_to_40cm
soil_temperature_40_to_100cm
soil_temperature_100_to_200cm
Instant°C (°F)Temperature in the soil as an average on 0-10, 10-40, 40-100 and 100-200 cm depths.
soil_moisture_0_to_10cm
soil_moisture_10_to_40cm
soil_moisture_40_to_100cm
soil_moisture_100_to_200cm
Instantm³/m³Average soil water content as volumetric mixing ratio at 0-10, 10-40, 40-100 and 100-200 cm depths.

15-Minutely Parameter Definition

The parameter &minutely_15= can be used to get 15-minutely data. This data is based on the HRRR model which is only available in North America. If 15-minutely data is requested for locations outside North America, 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.

VariableValid timeUnitDescription
temperature_2mInstant°C (°F)Air temperature at 2 meters above ground
relative_humidity_2mInstant%Relative humidity at 2 meters above ground
dew_point_2mInstant°C (°F)Dew point temperature at 2 meters above ground
apparent_temperatureInstant°C (°F)Apparent temperature is the perceived feels-like temperature combining wind chill factor, relative humidity and solar radiation
wind_speed_10m
wind_speed_80m
Instantkm/h (mph, m/s, knots)Wind speed at 10 or 80 meters above ground. Wind speed on 10 meters is the standard level.
wind_direction_10m
wind_direction_80m
Instant°Wind direction at 10 or 80 meters above ground
wind_gusts_10mPreceding 15 minutes maxkm/h (mph, m/s, knots)Gusts at 10 meters above ground as a maximum of the preceding 15 minutes
shortwave_radiationPreceding 15 minutes meanW/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 15 minutes meanW/m²Direct solar radiation as average of the preceding 15 minutes on the horizontal plane and the normal plane (perpendicular to the sun)
diffuse_radiationPreceding 15 minutes meanW/m²Diffuse solar radiation as average of the preceding 15 minutes
global_tilted_irradiancePreceding 15 minutes meanW/m²Total radiation received on a tilted pane as average of the preceding 15 minutes. 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.
sunshine_durationPreceding 15 minutes sumSecondsNumber of seconds of sunshine of the preceding 15-minutes per hour calculated by direct normalized irradiance exceeding 120 W/m², following the WMO definition.
precipitationPreceding 15 minutes summm (inch)Total precipitation (rain, showers, snow) sum of the preceding 15 minutes
snowfallPreceding 15 minutes sumcm (inch)Snowfall amount of the preceding 15 minutes in centimeters. For the water equivalent in millimeter, divide by 7. E.g. 7 cm snow = 10 mm precipitation water equivalent
rainPreceding 15 minutes summm (inch)Rain from large scale weather systems of the preceding 15 minutes in millimeter
capeInstantJ/kgConvective available potential energy. See Wikipedia.
visibilityInstantmetersViewing distance in meters. Influenced by low clouds, humidity and aerosols.
weather_codeInstantWMO codeWeather condition as a numeric code. Follow WMO weather interpretation codes. See table below for details.

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)100097595092590087585082580077575072570067565062560057555052550047545042540037535032530027525022520017515012510070504030201510
Altitude110 m320 m500 m800 m1000 m1200 m1500 m1700 m1900 m2.2 km2.5 km2.7 km3 km3.3 km3.6 km3.9 km4.2 km4.5 km4.9 km5.2 km5.6 km6 km6.3 km6.8 km7.2 km7.6 km8.1 km8.6 km9.2 km9.7 km10.4 km11 km11.8 km12.6 km13.5 km14.6 km15.8 km17.7 km19.3 km20 km22 km23 km24 km26 km

All pressure level have valid times of the indicated hour (instant).

VariableUnitDescription
weather_codeWMO codeThe most severe weather condition on a given day
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. GFS is including parameterised cloud cover directly. HRRR 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, ...
meterGeopotential 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:

VariableUnitDescription
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_summmSum of daily precipitation (including rain, showers and snowfall)
snowfall_sumcmSum of daily snowfall
precipitation_hourshoursThe number of hours with rain
precipitation_probability_max
precipitation_probability_min
precipitation_probability_mean
%Probability of precipitation
sunrise
sunset
iso8601Sun rise and set times
sunshine_durationsecondsThe 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_durationsecondsNumber 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_sumMJ/m²The sum of solar radiation on a given day in Megajoules
et0_fao_evapotranspirationmmDaily 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"
  }

      
    
ParameterFormatDescription
latitude, longitudeFloating pointWGS84 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.
elevationFloating pointThe 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_msFloating pointGeneration time of the weather forecast in milliseconds. This is mainly used for performance monitoring and improvements.
utc_offset_secondsIntegerApplied timezone offset from the &timezone= parameter.
timezone
timezone_abbreviation
StringTimezone identifier (e.g. Europe/Berlin) and abbreviation (e.g. CEST)
hourlyObjectFor each selected weather variable, data will be returned as a floating point array. Additionally a time array will be returned with ISO8601 timestamps.
hourly_unitsObjectFor each selected weather variable, the unit will be listed here.
dailyObjectFor 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_unitsObjectFor 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"