Climate Normals API

This API returns 30 year historical climate normals ranging from hourly to monthly intervals. The period of calculation is 1981 to 2010, and 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.

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 of days between the requested start/end periods. For example, a request for 1 year of data = 365 requests.

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 (Celcius, 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
callback=[function] (optional: JSON-P callback)

API Endpoints

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

Example Request:

https://api.weatherbit.io/v2.0/normals?lat=38.0&lon=-78.0&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)
  • ... ]