Climate Normals API

This API returns 30 year historical climate normals ranging from hourly to monthly intervals. The data is derived from the ERA-5 9KM Re-analysis. With this API you can retrieve temporal averages for data from the past 30 years for fields including temperature, dew point, wind speed, precipitation, and snowfall. The spatial resolution of the data returned by the API is 9 kilometers. Users may choose either the default 2020 series (1991-2020 calculation), or the 2010 series (1981-2010 calculation).

In order to utilize this API, you must provide the start day, and end day in MM-DD format. Ie. 02-04 = February, 4th.

Calls to this API count as multiple historical requests. The quota deducted from the plan allowance is equal to the number 5 day periods between the requested start/end periods. For example, a request for 366 days = 74 requests against the plan quotas.

All parameters should be supplied to the Weather API as query string parameters.

Base URL

HTTP: http://api.weatherbit.io/v2.0/normals
HTTPS: https://api.weatherbit.io/v2.0/normals
Supported Methods: GET

Request Parameters

key=[key] (REQUIRED)
  • key - Your API Key.
start_day=[MM-DD] (REQUIRED)
end_day=[MM-DD] (REQUIRED)
units=[units](optional)
  • M - [DEFAULT] Metric (Celsius, m/s, mm)
  • S - Scientific (Kelvin, m/s, mm)
  • I - Fahrenheit (F, mph, in)
tp=[time_period] (optional - Time period of each timestamp, default = daily)
  • hourly - Aggregate in hourly time steps
  • daily - [DEFAULT] Aggregate in Daily time steps
  • monthly - Aggregate in Monthly time steps
series_year=[series_year] (optional - Source data series)
  • 2010 - Return data from the 2010 normals dataset (1981-2010)
  • 2020 - [DEFAULT] Return data from the 2020 normals dataset (1991-2020)

API Endpoints

Description Required Parameters Example(s)
Get data by lat/lon lat,lon &lat=35.5&lon=-75.5

Example Request:

https://api.weatherbit.io/v2.0/normals?lat=35.5&lon=-75.5&start_day=02-02&end_day=03-01&tp=daily&key=API_KEY

Example Response (JSON):


          {
             "lat":35.5,
             "lon":-75.5,
             "timezone":"America\/New_York",
             "sources":[
                "era5"
              ],
              "data":[{
                         "dewpt":6.8,
                         "snow":0,
                         "min_wind_spd":0.4,
                         "wind_dir":269,
                         "hour":null,
                         "month":2,
                         "max_temp":13.4,
                         "day":2,
                         "wind_spd":1.4,
                         "temp":11.2,
                         "min_temp":9.4,
                         "max_wind_spd":2.4,
                         "precip":5.32
                      
                },
                {
                         "dewpt":6,
                         "snow":0.6,
                         "min_wind_spd":1.6,
                         "wind_dir":270,
                         "hour":null,
                         "month":2,
                         "max_temp":13,
                         "day":3,
                         "wind_spd":2.1,
                         "temp":10.5,
                         "min_temp":8.6,
                         "max_wind_spd":2.8,
                         "precip":2.85
                      
                }, ...
              ]
        }
        

Field Decriptions:

  • lat: Latitude (Degrees).
  • lon: Longitude (Degrees).
  • timezone: Local IANA Timezone.
  • data: [
    • month: Month of data point (1-12).
    • day: Day of data point (1-31).
    • hour: Hour of data point (0-23).
    • temp: Average Temperature (C)
    • max_temp: Maximum Temperature (C)
    • min_temp: Minimum Temperature (C)
    • dewpt: Average dew point (C)
    • wind_spd: Average wind speed (m/s)
    • max_wind_spd: Maximum wind speed (m/s)
    • min_wind_spd: Minimum wind speed (m/s)
    • wind_dir: Average wind direction (Degrees)
    • precip: Precipitation (mm)
    • snow: Snowfall (mm)
  • ... ]