GGooseAtlasOpenAPI

Weather API

Historical and ongoing weather for Canada and the Caribbean. Station observations from Environment and Climate Change Canada and NOAA's Global Historical Climatology Network, Caribbean hourly from NOAA's Integrated Surface Database and the Iowa State ASOS archive, with solar irradiance and the gridded daily means from NASA POWER at each station's coordinates.

Stations
9,210
Daily observations
65,783,049
Hourly observations
290,178,771
Record begins
1840-03-01
Stations with hourly
1,968
Caribbean hourly stations
309
Stations with solar
1,483

An API key is required

Every data endpoint needs one, including /status and /meta. Without a key the API answers 401 API key required. This page and the OpenAPI contract stay open so you can see exactly what you would be getting first. Request a key →

Getting started

Every endpoint is a GET and returns JSON by default. Send your key as an Authorization: Bearer header, an X-API-Key header, or ?key=. Each key carries its own per-minute and per-day limits, reported back in X-RateLimit-* headers.

# a year of daily weather for one station
curl -H "Authorization: Bearer $GOOSE_KEY" \
  "https://gooseatlas.ca/api/v2/weather/observations\
?station=8329&from=2024-01-01&to=2024-12-31\
&fields=tmax,tmin,precip,wind_mean,ghi,hdd,cdd"
# the live five-minute feed
curl -H "Authorization: Bearer $GOOSE_KEY" \
  "https://gooseatlas.ca/api/v2/weather/observations\
?station=7854&cadence=minute\
&fields=temp,wind_speed,wind_gust,pressure,precip"
# Caribbean hourly: find the station, then pull it
curl -H "Authorization: Bearer $GOOSE_KEY" \
  "https://gooseatlas.ca/api/v2/weather/stations\
?country=TT&min_years=10"
# Piarco, Trinidad — hourly back to July 1941
curl -H "Authorization: Bearer $GOOSE_KEY" \
  "https://gooseatlas.ca/api/v2/weather/observations\
?wmo=78970&cadence=hourly&from=1950-01-01&to=1950-12-31\
&fields=temp,dewpoint,wind_speed,pressure_msl,cloud,ceiling"

Endpoints

PathWhat it answers
/metaSources, every measure with its unit, station counts, what the archive spans.
/statusHoldings, how fresh each network is, and the state of every ingest job.
/stationsFind a station by name, country, region, bounding box, distance, or by which measures it actually carries.
/stations/{id}One station: coverage, a count per measure, and its normals.
/observationsThe archive itself at three cadences — daily, hourly, or the five-minute sub-hourly feed — with field selection, keyset pagination and CSV or NDJSON output.
/monthlyMonthly rollups, optionally beside the 1991-2020 normal and the departure from it.
/normalsWMO climate normals, with the count of years behind each figure.
/degree-daysHeating and cooling degree days on whatever base your model uses.
/solarGHI, DNI, DHI, the clear-sky reference and the clearness index, by day, month or year.
/nearestNearest stations to a point, optionally with each one's latest observation.

How the data is put together

Conditions

Conditional requests are supported: every response carries an ETag, and an If-None-Match that still matches returns 304 without a body. Rate limits are reported in X-RateLimit-* headers. CSV and NDJSON are streamed, so a large export does not wait on the whole result being assembled.

Licensing

ECCC observations under the Open Government Licence – Canada. GHCN-Daily, the Integrated Surface Database and NASA POWER are United States government works in the public domain. The Iowa State ASOS archive is freely available and asks for acknowledgement. Attribution to the original agencies, and to the national meteorological services whose reports these archives carry, is expected and appreciated.

Need a key, a bulk extract, or a measure that is not here yet? Get in touch. Keys are issued per organisation with their own rate limits, and every call is recorded against the key that made it.