Previous Model Runs API
Weather Forecasts from Previous Days to Compare Run-To-Run Performance
Data Availability
Most models are archived from January 2024. Some models were added to the archive later in 2024 or 2025 and have correspondingly shorter coverage. Exceptions with longer history:
- GFS 2 m temperature — available from March 2021
- JMA GSM and MSM — available from 2018
Additional historical coverage can be reconstructed on request, subject to upstream availability from the originating weather service.
API Documentation
The Previous Runs API exposes forecast data at fixed lead-time offsets rather than as a seamless time-series. _previous_day0 is the current model run (equivalent to the live Forecast API). _previous_day1 is the value that was predicted 24 hours before valid time, _previous_day2 48 hours before, and so on up to day 7. For local models with shorter forecast horizons (2–5 days), only offsets within that horizon are populated.
This structure is suited to aggregated skill analysis — for example, computing the mean absolute error of all _previous_day3 forecasts against ERA5 over a calendar year. For workflows that need the complete output of a specific model run (initialisation datetime, all forecast hours, multiple variables), use the Single Runs API instead, which stores each run independently and is queryable by its UTC initialisation time via the &run= parameter.
Models: The Previous Runs API supports the same models as the Weather Forecast API. See the Forecast API documentation for the full model and variable list.
Update cadence: Global models update every 6 hours; regional models (e.g. ICON-D2, HRRR, AROME) update every 1–3 hours. The available lead-time window for each model is limited to its forecast horizon, so a model with a 3-day horizon will have at most _previous_day3 populated.