Return to API Services or TAF Request.
Documentation for /cgi-bin/request/taf.py
This service provides access to Terminal Aerodrome Forecast (TAF) data for specified stations and time ranges. The time range limits the TAF issuance timestamps, not the forecast valid times.
Changelog
- 2026-03-05: An edge case was corrected where you request timestamps in a given timezone, which are ambiguous during DST fall back. The field is now set to null instead of erroring.
- 2026-02-13: Added is_amendment to output to denote if the TAF is amended or not.
- 2025-08-12: The parser was improved to delineate forecast types, the is_tempo field remains, but will be removed in the future. See the ftype column for the delineation.
Example Usage
Request all of Des Moines TAF for the month of August 2024 in CSV format and then excel format:
Request the past 240 hours of TAF data for Chicago O'Hare in Excel format:
https://mesonet.agron.iastate.edu/cgi-bin/request/taf.py?station=ORD&hours=240&fmt=excel
Request the last TAF issuance for Des Moines valid prior to 00 UTC on 21 August 2024 in CSV format:
CGI Arguments
The following table lists the CGI arguments that are accepted by this service. A HTTP GET request is required. Fields of type Multi-Params or CSV value can accept either a comma separated list or multiple parameter and value combinations. For example, ?foo=1&foo=2 is equivalent to ?foo=1,2.
| Field | Type | Description |
|---|---|---|
| hours | integer or null | Request data for the time period from now until this many hours in the past. Overrides any sts or ets values. |
| fmt | string | The format of the output file. 'csv' or 'excel' |
| last | boolean | If True, the last TAF issuance for the station(s) is returned, which is defined as last issuance prior to or equal to the end timestamp. |
| tz | string | A time zone string specified by IANA. Common examples include 'America/Chicago', 'UTC', and 'Etc/UTC'. The code implementation passes this provided string to the python ZoneInfo library. |
| sts | string or null | The start timestamp for the data |
| ets | string or null | The end timestamp for the data |
| station | Multi-Params or CSV value (required) | Either provide a single value, multiple parameters each with a single value, or a comma-separated list of values. The context here is a list of station identifiers. All lowercase letters are converted to uppercase. |
| year1 | integer or null | The start year, if not using sts |
| month1 | integer or null | The start month, if not using sts |
| day1 | integer or null | The start day, if not using sts |
| hour1 | integer | The start hour, if not using sts |
| minute1 | integer | The start minute, if not using sts |
| year2 | integer or null | The end year, if not using ets |
| month2 | integer or null | The end month, if not using ets |
| day2 | integer or null | The end day, if not using ets |
| hour2 | integer | The end hour, if not using ets |
| minute2 | integer | The end minute, if not using ets |