Climate Averages and Degree Days API New

Climate API: monthly temperature and rainfall averages and records since 2010, and heating, cooling and growing degree days for any date range with comparison to normal. Business plan and above.

Two methods built from our historical weather since 1 January 2010, for energy, agriculture, retail and research. climate.json returns monthly climate averages for a location: average high, low and mean temperature, average rainfall and rain days, record high and low with their dates, and average heating and cooling degree days. degreedays.json returns heating, cooling and growing degree days for each day of a date range, with totals and the average for the same dates in other years.

The averages cover every full year since 2010 at the history point nearest the location, so they are not 30-year WMO climate normals. Degree days use the mean-temperature method: mean = (max + min) / 2, HDD = base − mean and CDD = mean − base when positive. Growing degree days are capped at 30 °C, as in the Agriculture API.

Available on Business plan and above. Keys on other plans receive error code 2009. Each request counts as one API call.


Example requests

https://api.weatherapi.com/v1/climate.json?key=<YOUR_API_KEY>&q=London
https://api.weatherapi.com/v1/degreedays.json?key=<YOUR_API_KEY>&q=Chicago&dt=2026-01-01&end_dt=2026-03-31&hdd_base=18.3

Request parameters

ParameterRequiredDescription
keyYesYour API key.
qYesLocation. Same formats as other APIs (city, lat,lon, postcode, IATA, etc.).
hdd_baseNoBase temperature for heating degree days in °C, -20 to 40. Default 15.5 (the UK convention; use 18.3 for the US 65 °F).
cdd_baseNoBase temperature for cooling degree days in °C, -20 to 40. Default 18.
gdd_baseNodegreedays.json only. Base temperature for growing degree days in °C, -10 to 40. Default 10.
dtNodegreedays.json only. First day, yyyy-MM-dd, on or after 2010-01-01. Without dt and end_dt you get the last 30 days.
end_dtNodegreedays.json only. Last day, yyyy-MM-dd, up to yesterday and at most 366 days after dt.

climate.json response

climate.period (years used), hdd_base_c, cdd_base_c, and climate.month: twelve entries with month, name, avg_maxtemp_c/f, avg_mintemp_c/f, avg_temp_c/f, record_maxtemp_c/f and record_maxtemp_date, record_mintemp_c/f and record_mintemp_date, avg_totalprecip_mm/in, avg_rain_days (days with 1 mm or more), avg_hdd, avg_cdd and years (complete months averaged). climate.year has the yearly rainfall and degree-day totals.

degreedays.json response

degreedays.day: one entry per day with date, maxtemp_c, mintemp_c, hdd, cdd and gdd (or missing: true). degreedays.total: the range's totals and missing_days. degreedays.normal: the average totals for the same dates in the other years since 2010 (years), and how the range compares in percent (hdd_vs_normal_pct, cdd_vs_normal_pct, gdd_vs_normal_pct).

Invalid parameters return HTTP 400 with error code 1014.

Quick and Easy Signup for Weather API

WeatherAPI.com makes it super easy to integrate our realtime, daily, hourly and 15 min interval weather forecast data, historical weather, marine weather, bulk request, air quality data, pollen, evapotranspiration, autocomplete, time zone, astronomy and sports data into your new or existing project.