Historical Weather API

Discover how weather has shaped our world from 1940 until now

Select Coordinates or City

Specify Time Interval

Hourly Weather Variables

Note: The default Best Match combines ERA5 and ERA5-Land seamlessly. The CERRA model will also be included in Best Match once real-time updates become available.

Daily Weather Variables (*)

* Parameter timezone is mandatory

Settings

Usage License

Preview and API URL

Tip: You can click and drag to zoom in. Click All on the top, to reset zoom.

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

Data Sources

The Historical Weather API is based on reanalysis datasets and uses a combination of weather station, aircraft, buoy, radar, and satellite observations to create a comprehensive record of past weather conditions. These datasets are able to fill in gaps by using mathematical models to estimate the values of various weather variables. As a result, reanalysis datasets are able to provide detailed historical weather information for locations that may not have had weather stations nearby, such as rural areas or the open ocean.

You can access data dating back to 1940 with a delay of 5 days. If you're looking for weather information from previous days or weeks, our Forecast API offers the &past_days= feature for your convenience.

The spatial resolution of a weather reanalysis dataset refers to the size of the grid cells used to represent the data. In the case of the reanalysis dataset described, the cells covering land have a resolution of 11 km, while those covering the ocean have a resolution of 25 km. For the region of Europe, the resolution is increased to 5 km, although this higher resolution is only available up until June 2021, with real-time updates expected to be available sometime in 2023. In general, a higher spatial resolution means that the data is more detailed and represents the weather conditions more accurately at smaller scales.

Reanalysis Model Region Spatial Resolution Temporal Resolution Data Availability Update frequency
ERA5 Global 0.25° (~25 km) Hourly 1940 to present Daily with 5 days delay
ERA5-Land Global 0.1° (~11 km) Hourly 1950 to present Daily with 5 days delay
CERRA Europe 5 km Hourly 1985 to June 2021 -

Different reanalysis models may include different sets of weather variables in their datasets. For example, the ERA5 model includes all weather variables, while the ERA5-Land model only includes surface variables such as temperature, humidity, soil temperature, and soil moisture. The CERRA model includes most weather variables, but does not include soil temperature and moisture. It is important to be aware of the specific variables that are included in a particular reanalysis model in order to understand the limitations and potential biases of the data.

API Documentation

The API endpoint /v1/archive allows users to retrieve historical weather data for a specific location and time period. To use this endpoint, you can specify a geographical coordinate, a time interval, and a list of weather variables that they are interested in. The endpoint will then return the requested data in a format that can be easily accessed and used by applications or other software. This endpoint can be very useful for researchers and other users who need to access detailed historical weather data for specific locations and time periods.

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.
start_date
end_date
String (yyyy-mm-dd) Yes The time interval to get weather data. A day must be specified as an ISO8601 date (e.g. 2022-12-31).
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.
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 time is then in GMT+0! For daily values with unix timestamp, 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..
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 and 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.
precipitation Preceding hour sum mm (inch) Total precipitation (rain, showers, snow) sum of the preceding hour. Data is stored with a 0.1 mm precision. If precipitation data is summed up to monthly sums, there might be small inconsistencies with the total precipitation amount.
rain Preceding hour sum mm (inch) Only liquid precipitation of the preceding hour including local showers and rain from large scale systems.
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
cloudcover Instant % Total cloud cover as an area fraction
cloudcover_low Instant % Low level clouds and fog up to 2 km altitude
cloudcover_mid Instant % Mid level clouds from 2 to 6 km altitude
cloudcover_high Instant % High level clouds from 6 km altitude
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
windspeed_10m
windspeed_100m
Instant km/h (mph, m/s, knots) Wind speed at 10 or 100 meters above ground. Wind speed on 10 meters is the standard level.
winddirection_10m
winddirection_100m
Instant ° Wind direction at 10 or 100 meters above ground
windgusts_10m Instant km/h (mph, m/s, knots) Gusts at 10 meters above ground of the indicated hour. Wind gusts in CERRA are defined as the maximum wind gusts of the preceding hour. Please consult the ECMWF IFS documentation for more information on how wind gusts are parameterized in weather models.
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.
weathercode Instant WMO code Weather condition as a numeric code. Follow WMO weather interpretation codes. See table below for details. Weather code is calculated from cloud cover analysis, precipitation and snowfall. As barely no information about atmospheric stability is available, estimation about thunderstorms is not possible.
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
soil_temperature_0_to_7cm
soil_temperature_7_to_28cm
soil_temperature_28_to_100cm
soil_temperature_100_to_255cm
Instant °C (°F) Average temperature of different soil levels below ground.
soil_moisture_0_to_7cm
soil_moisture_7_to_28cm
soil_moisture_28_to_100cm
soil_moisture_100_to_255cm
Instant m³/m³ Average soil water content as volumetric mixing ratio at 0-7, 7-28, 28-100 and 100-255 cm depths.

Daily Parameter Definition

Aggregations are a simple 24 hour aggregation from hourly values. The parameter &daily= accepts the following values:

Variable Unit Description
weathercode WMO code The most severe weather condition on a given day
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
snowfall_sum cm Sum of daily snowfall
precipitation_hours hours The number of hours with rain
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 radiaion 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,
  "generationtime_ms": 2.2119,
  "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"

      

Citation & Acknowledgement

We encourage researchers in the field of meteorology and related disciplines to cite Open-Meteo and its sources in their work. Citing not only gives proper credit but also promotes transparency, reproducibility, and collaboration within the scientific community. Together, let's foster a culture of recognition and support for open-data initiatives like Open-Meteo, ensuring that future researchers can benefit from the valuable resources it provides.

Zippenfenig, P. (2023). Open-Meteo.com Weather API [Computer software]. Zenodo. https://doi.org/10.5281/ZENODO.7970649

Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., Thépaut, J-N. (2023). ERA5 hourly data on single levels from 1940 to present [Data set]. ECMWF. https://doi.org/10.24381/cds.adbb2d47

Muñoz Sabater, J. (2019). ERA5-Land hourly data from 2001 to present [Data set]. ECMWF. https://doi.org/10.24381/CDS.E2161BAC

Schimanke S., Ridal M., Le Moigne P., Berggren L., Undén P., Randriamampianina R., Andrea U., Bazile E., Bertelsen A., Brousseau P., Dahlgren P., Edvinsson L., El Said A., Glinton M., Hopsch S., Isaksson L., Mladek R., Olsson E., Verrelle A., Wang Z.Q. (2021). CERRA sub-daily regional reanalysis data for Europe on single levels from 1984 to present [Data set]. ECMWF. https://doi.org/10.24381/CDS.622A565A

Zippenfenig, Patrick. Open-Meteo.com Weather API., Zenodo, 2023, doi:10.5281/ZENODO.7970649.

Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., Thépaut, J-N. (2023). ERA5 hourly data on single levels from 1940 to present [Data set]. ECMWF. https://doi.org/10.24381/cds.adbb2d47

Muñoz Sabater, J. (2019). ERA5-Land hourly data from 2001 to present [Data set]. ECMWF. https://doi.org/10.24381/CDS.E2161BAC

Schimanke S., Ridal M., Le Moigne P., Berggren L., Undén P., Randriamampianina R., Andrea U., Bazile E., Bertelsen A., Brousseau P., Dahlgren P., Edvinsson L., El Said A., Glinton M., Hopsch S., Isaksson L., Mladek R., Olsson E., Verrelle A., Wang Z.Q. CERRA Sub-Daily Regional Reanalysis Data for Europe on Single Levels from 1984 to Present. ECMWF, 2021, doi:10.24381/CDS.622A565A.

Zippenfenig, P. (2023) Open-Meteo.com Weather API. Zenodo. doi: 10.5281/ZENODO.7970649.

Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., Thépaut, J-N. (2023) “ERA5 hourly data on single levels from 1940 to present.” ECMWF. doi: 10.24381/cds.adbb2d47.

Muñoz Sabater, J. (2019) “ERA5-Land hourly data from 2001 to present.” ECMWF. doi: 10.24381/CDS.E2161BAC.

Schimanke S., Ridal M., Le Moigne P., Berggren L., Undén P., Randriamampianina R., Andrea U., Bazile E., Bertelsen A., Brousseau P., Dahlgren P., Edvinsson L., El Said A., Glinton M., Hopsch S., Isaksson L., Mladek R., Olsson E., Verrelle A., Wang Z.Q. (2021) “CERRA sub-daily regional reanalysis data for Europe on single levels from 1984 to present.” ECMWF. doi: 10.24381/CDS.622A565A.

@software{Zippenfenig_Open-Meteo,
  author = {Zippenfenig, Patrick},
  doi = {10.5281/zenodo.7970649},
  license = {CC-BY-4.0},
  title = {Open-Meteo.com Weather API},
  year = {2023},
  copyright = {Creative Commons Attribution 4.0 International},
  url = {https://open-meteo.com/}
}
@misc{Hersbach_ERA5,
  doi = {10.24381/cds.adbb2d47},
  url = {https://cds.climate.copernicus.eu/doi/10.24381/cds.adbb2d47},
  author = {Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., Thépaut, J-N.},
  title = {ERA5 hourly data on single levels from 1940 to present},
  publisher = {ECMWF},
  year = {2023}
}
@misc{Munoz_ERA5_LAND,
  doi = {10.24381/CDS.E2161BAC},
  url = {https://cds.climate.copernicus.eu/doi/10.24381/cds.e2161bac},
  author = {Muñoz Sabater, J.},
  title = {ERA5-Land hourly data from 2001 to present},
  publisher = {ECMWF},
  year = {2019}
}
@misc{Schimanke_CERRA,
  doi = {10.24381/CDS.622A565A},
  url = {https://cds.climate.copernicus.eu/doi/10.24381/cds.622a565a},
  author = {Schimanke S., Ridal M., Le Moigne P., Berggren L., Undén P., Randriamampianina R., Andrea U., Bazile E., Bertelsen A., Brousseau P., Dahlgren P., Edvinsson L., El Said A., Glinton M., Hopsch S., Isaksson L., Mladek R., Olsson E., Verrelle A., Wang Z.Q.},
  title = {CERRA sub-daily regional reanalysis data for Europe on single levels from 1984 to present},
  publisher = {ECMWF},
  year = {2021}
}

Generated using Copernicus Climate Change Service information 2022.