Aviation Weather Center

App · Weather & Space · 20 actions

Read official US aviation weather from the National Weather Service's Aviation Weather Center, through its keyless public Data API: METARs and TAFs, pilot reports, SIGMETs and AIRMETs, center advisories, the convective forecast, winds and temperatures aloft, area forecasts and forecast discussions, plus airport, station, navaid, fix, and obstacle lookups. No account or API key required.

Actions

ActionWhat it does
Get airport infoLook up airports: name, position, elevation, magnetic variation, ownership, and the runways with their dimensions and surface.
Get Alaska AIRMETsRead the domestic AIRMETs issued for Alaska, decoded with their hazard, altitude band, and area.
Get area forecastRead the textual Area Forecast (FA) for one Alaskan region: the synopsis, clouds, and weather covering a whole area rather than a single airport.
Get center weather advisoriesRead the Center Weather Advisories (CWAs) issued by the NWS Center Weather Service Units: the short-fuse, en-route advisories for conditions affecting one air route traffic control center.
Get convective forecastRead the Traffic Flow Management Convective Forecast (TCF): the polygons of expected thunderstorm activity, with coverage, tops, and confidence, that air traffic flow decisions are planned around.
Get domestic SIGMETsRead the SIGMETs in force over the contiguous United States in domestic format: convective SIGMETs and the non-convective ones for turbulence, icing, and IFR conditions.
Get forecast discussionRead a Weather Forecast Office's forecast discussion: the forecaster's own reasoning behind the products.
Get geographic featuresLook up the additional geographic features the Aviation Weather Center charts inside a bounding box, such as the named points and boundaries advisories are described against.
Get graphical AIRMETsRead Graphical AIRMETs (G-AIRMETs) for the contiguous United States: the three-hourly snapshots of turbulence, icing, freezing level, IFR conditions, mountain obscuration, low-level wind shear, and strong surface winds.
Get international SIGMETsRead SIGMETs issued worldwide in the international format, decoded with their hazard, altitude band, valid period, and area.
Get METARsRead surface observations (METARs) for one or more airports, or for everything inside a bounding box: wind, visibility, cloud layers, temperature, altimeter setting, the raw observation, and the derived flight category (VFR, MVFR, IFR, LIFR).
Get meteorological information statementsRead the Meteorological Information Statements (MIS) issued by a Center Weather Service Unit: the longer-range outlook of conditions expected to affect an air route traffic control center, issued ahead of any advisory.
Get navigational aidsLook up navigational aids (VORs, VORTACs, NDBs and the like) with their type, frequency, position, elevation, and magnetic variation.
Get navigational fixesLook up navigational fixes and waypoints by their five-letter names, or find every fix inside a bounding box.
Get obstaclesLook up the charted obstacles inside a bounding box (towers, stacks, and other tall structures) with their position and height.
Get pilot reportsRead pilot reports (PIREPs and AIREPs), which record what crews actually encountered: turbulence, icing, cloud layers, visibility, and ride quality, with the aircraft type and flight level.
Get station infoLook up the weather stations behind the reports: position, elevation, state and country, the ICAO, IATA, and FAA identifiers, and which products the site issues.
Get TAFsRead Terminal Aerodrome Forecasts for one or more airports, or for everything inside a bounding box.
Get winds and temperatures aloftRead the FD winds-and-temperatures-aloft bulletin for a region: forecast wind direction, speed, and temperature at each reporting altitude, for every station in that region.
Query the legacy data serverRun a query against the compatibility layer for the retired Text Data Server.

Get airport info

Look up airports: name, position, elevation, magnetic variation, ownership, and the runways with their dimensions and surface. Airport IDs or a bounding box are required.

Inputs

Airportsidstext
Airport IDs to look up, separated by commas. Leave blank if you are using a bounding box.
Bounding boxbboxtext
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative.
Formatformattext
Output format. Defaults to JSON, which comes back as one row per airport in 'entries'. GeoJSON returns those rows as features with geometry; decoded is returned verbatim in 'content'.One of: json (JSON (decoded rows)), decoded (Decoded text (human-readable)), geojson (GeoJSON (rows with geometry)). Default: json.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "country": "US",
      "elev": "313",
      "faaId": "MCI",
      "iataId": "MCI",
      "icaoId": "KMCI",
      "lat": "39.2976",
      "lon": "-94.7139",
      "magdec": "02E",
      "name": "KANSAS CITY/KANSAS CITY INTL",
      "owner": "P",
      "runways": [
        {
          "dimension": "10801x150",
          "id": "01L/19R",
          "surface": "CONC"
        }
      ],
      "source": "FAA",
      "state": "MO",
      "type": "ARP"
    }
  ],
  "format": "json"
}

Get Alaska AIRMETs

Read the domestic AIRMETs issued for Alaska, decoded with their hazard, altitude band, and area. The contiguous United States is covered by 'Get graphical AIRMETs' instead. AIRMETs only exist while conditions warrant one, and this is a single region's product, so no advisories in force is a common and correct answer: expect a count of 0 much of the time.

Inputs

Formatformattext
Output format. Defaults to GeoJSON, which comes back as one row per advisory in 'entries', each with the area it covers. This endpoint's plain JSON output is the one format on this API that answers an empty result with nothing at all rather than an empty list, so GeoJSON is the dependable structured choice here. IWXXM is returned verbatim in 'content'.One of: geojson (GeoJSON (rows with geometry)), json (JSON (decoded rows)), iwxxm (IWXXM (ICAO XML)). Default: geojson.
Hazardhazardtext
Only return advisories for this hazard.One of: turb (Turbulence), ifr (IFR conditions), conv (Convection (thunderstorms)), ice (Icing).
Flight levellevelnumber
Only return advisories that touch this level, as a flight level in hundreds of feet (300 means 30,000 ft). The API searches a window of plus or minus 3,000 ft around it.From 0 to 900.
As ofdatedate and time
Point in time to read the products as of, either as the API's own yyyymmdd_hhmm or as an ISO 8601 timestamp. Leave blank for the latest products.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "geometry": {
        "coordinates": [
          [
            [
              -95.1,
              39.2
            ],
            [
              -93.4,
              40.1
            ],
            [
              -92.8,
              38.6
            ],
            [
              -95.1,
              39.2
            ]
          ]
        ],
        "type": "Polygon"
      },
      "properties": {
        "base": 24000,
        "hazard": "TURB",
        "severity": "MOD",
        "top": 38000,
        "validTimeFrom": 1699056000,
        "validTimeTo": 1699070400
      },
      "type": "Feature"
    }
  ],
  "format": "geojson"
}

Get area forecast

Read the textual Area Forecast (FA) for one Alaskan region: the synopsis, clouds, and weather covering a whole area rather than a single airport. Returned as the bulletin text in 'content'.

Inputs

RegionregiontextRequired
Which Alaskan region's area forecast to read.One of: aknorth (Northern half of Alaska), akcentral (Interior Alaska), akaleutian (Aleutians), aksouth (Southcentral Alaska), aksouthwest (Alaska Peninsula), aksoutheast (Eastern Gulf of Alaska), akpanhandle (Alaska Panhandle). Default: aknorth.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "FAAK47 PAFC 041045\nFA9N\nSYNOPSIS AND VFR CLDS/WX\nSYNOPSIS VALID UNTIL 050500\n...LOW PRES OVER THE NORTH SLOPE DRIFTS EAST...",
  "count": 0,
  "entries": [],
  "format": "text"
}

Get center weather advisories

Read the Center Weather Advisories (CWAs) issued by the NWS Center Weather Service Units: the short-fuse, en-route advisories for conditions affecting one air route traffic control center.

Inputs

Hazardhazardtext
Only return advisories for this hazard.One of: ts (Thunderstorms), turb (Turbulence), ice (Icing), ifr (IFR conditions), pcpn (Precipitation), unk (Unknown or other).
Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw is returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (as issued)), geojson (GeoJSON (rows with geometry)). Default: json.
As ofdatedate and time
Point in time to read the products as of, either as the API's own yyyymmdd_hhmm or as an ISO 8601 timestamp. Leave blank for the latest products.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "cwaText": "ZKC1 CWA 041735 VALID UNTIL 041935 AREA OF EMBEDDED TS MOV FROM 24020KT TOPS TO FL410",
      "cwsu": "ZKC",
      "hazard": "TS",
      "issueTime": "2023-11-04 17:35:00.000Z",
      "series": 1,
      "validTimeFrom": 1699119300,
      "validTimeTo": 1699126500
    }
  ],
  "format": "json"
}

Get convective forecast

Read the Traffic Flow Management Convective Forecast (TCF): the polygons of expected thunderstorm activity, with coverage, tops, and confidence, that air traffic flow decisions are planned around.

Inputs

Formatformattext
Output format. Defaults to GeoJSON, which comes back as one forecast polygon per row in 'entries'. Raw is returned verbatim in 'content'.One of: geojson (GeoJSON (rows with geometry)), raw (Raw text (as issued)). Default: geojson.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "geometry": {
        "coordinates": [
          [
            [
              -97.2,
              35.1
            ],
            [
              -95.6,
              36.4
            ],
            [
              -94.9,
              34.8
            ],
            [
              -97.2,
              35.1
            ]
          ]
        ],
        "type": "Polygon"
      },
      "properties": {
        "conf": "HIGH",
        "coverage": "SCT",
        "tops": 420,
        "valid": "2023-11-04T18:00:00Z"
      },
      "type": "Feature"
    }
  ],
  "format": "geojson"
}

Get domestic SIGMETs

Read the SIGMETs in force over the contiguous United States in domestic format: convective SIGMETs and the non-convective ones for turbulence, icing, and IFR conditions. For SIGMETs the US issues in international format, use 'Get international SIGMETs' instead.

Inputs

Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw, XML, and IWXXM are returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (the bulletin as issued)), geojson (GeoJSON (rows with geometry)), xml, iwxxm (IWXXM (ICAO XML)). Default: json.
Hazardhazardtext
Only return advisories for this hazard.One of: conv (Convection (thunderstorms)), turb (Turbulence), ice (Icing), ifr (IFR conditions).
Flight levellevelnumber
Only return advisories that touch this level, as a flight level in hundreds of feet (300 means 30,000 ft). The API searches a window of plus or minus 3,000 ft around it.From 0 to 900.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "geometry": {
        "coordinates": [
          [
            [
              -95.1,
              39.2
            ],
            [
              -93.4,
              40.1
            ],
            [
              -92.8,
              38.6
            ],
            [
              -95.1,
              39.2
            ]
          ]
        ],
        "type": "Polygon"
      },
      "properties": {
        "base": 24000,
        "hazard": "TURB",
        "severity": "MOD",
        "top": 38000,
        "validTimeFrom": 1699056000,
        "validTimeTo": 1699070400
      },
      "type": "Feature"
    }
  ],
  "format": "geojson"
}

Get forecast discussion

Read a Weather Forecast Office's forecast discussion: the forecaster's own reasoning behind the products. Returns the aviation section, or the full discussion, issued in the past six hours, as text in 'content'.

Inputs

Forecast officecwatext
Which Weather Forecast Office's discussion to read, by the four-letter identifier of the office itself: KEAX for Kansas City, KLOT for Chicago, KSEW for Seattle. That is the office's three-letter County Warning Area code with its K prefix (EAX becomes KEAX), and the bare three-letter code is not accepted. Leave blank for every office.
Sectiontypetext
Whether to return only the aviation section or the full discussion.One of: afd (Aviation section), af (Full discussion). Default: afd.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "AVIATION...(06Z TAFS)\nVFR conditions prevail through the period. Southwest winds 10-15 kt with gusts to 25 kt develop after 18Z.",
  "count": 0,
  "entries": [],
  "format": "text"
}

Get geographic features

Look up the additional geographic features the Aviation Weather Center charts inside a bounding box, such as the named points and boundaries advisories are described against.

Inputs

Bounding boxbboxtextRequired
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative. Required for this action, which only ever searches an area.
Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw is returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (as issued)), geojson (GeoJSON (rows with geometry)). Default: json.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "id": "CHI",
      "lat": 41.88,
      "lon": -87.63,
      "name": "Chicago"
    }
  ],
  "format": "json"
}

Get graphical AIRMETs

Read Graphical AIRMETs (G-AIRMETs) for the contiguous United States: the three-hourly snapshots of turbulence, icing, freezing level, IFR conditions, mountain obscuration, low-level wind shear, and strong surface winds. For Alaska, use 'Get Alaska AIRMETs' instead.

Inputs

Productproducttext
Which AIRMET product to read: Sierra (IFR and mountain obscuration), Tango (turbulence and winds), or Zulu (icing and freezing level).One of: sierra (Sierra (IFR and mountain obscuration)), tango (Tango (turbulence and surface winds)), zulu (Zulu (icing and freezing level)).
Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw and XML are returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (as issued)), geojson (GeoJSON (rows with geometry)), xml. Default: json.
Hazardhazardtext
Only return advisories for this hazard.One of: turb-hi (Turbulence, high level), turb-lo (Turbulence, low level), llws (Low-level wind shear), sfc_wind (Strong surface winds), ifr (IFR conditions), mtn_obs (Mountain obscuration), ice (Icing), fzlvl (Freezing level).
As ofdatedate and time
Point in time to read the products as of, either as the API's own yyyymmdd_hhmm or as an ISO 8601 timestamp. Leave blank for the latest products.
Forecast hourforetext
Which snapshot of the current forecast package to read, in hours ahead of its issue time.One of: 0 (0 hours (valid now)), 3 (3 hours), 6 (6 hours), 9 (9 hours), 12 (12 hours).

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "geometry": {
        "coordinates": [
          [
            [
              -95.1,
              39.2
            ],
            [
              -93.4,
              40.1
            ],
            [
              -92.8,
              38.6
            ],
            [
              -95.1,
              39.2
            ]
          ]
        ],
        "type": "Polygon"
      },
      "properties": {
        "base": 24000,
        "hazard": "TURB",
        "severity": "MOD",
        "top": 38000,
        "validTimeFrom": 1699056000,
        "validTimeTo": 1699070400
      },
      "type": "Feature"
    }
  ],
  "format": "geojson"
}

Get international SIGMETs

Read SIGMETs issued worldwide in the international format, decoded with their hazard, altitude band, valid period, and area. Does not include the convective and non-convective SIGMETs the United States issues in its own domestic format.

Inputs

Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw, XML, and IWXXM are returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (the bulletin as issued)), geojson (GeoJSON (rows with geometry)), xml, iwxxm (IWXXM (ICAO XML)). Default: json.
Hazardhazardtext
Only return advisories for this hazard.One of: turb (Turbulence), ice (Icing).
Flight levellevelnumber
Only return advisories that touch this level, as a flight level in hundreds of feet (300 means 30,000 ft). The API searches a window of plus or minus 3,000 ft around it.From 0 to 900.
As ofdatedate and time
Point in time to read the products as of, either as the API's own yyyymmdd_hhmm or as an ISO 8601 timestamp. Leave blank for the latest products.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "geometry": {
        "coordinates": [
          [
            [
              -95.1,
              39.2
            ],
            [
              -93.4,
              40.1
            ],
            [
              -92.8,
              38.6
            ],
            [
              -95.1,
              39.2
            ]
          ]
        ],
        "type": "Polygon"
      },
      "properties": {
        "base": 24000,
        "hazard": "TURB",
        "severity": "MOD",
        "top": 38000,
        "validTimeFrom": 1699056000,
        "validTimeTo": 1699070400
      },
      "type": "Feature"
    }
  ],
  "format": "geojson"
}

Get METARs

Read surface observations (METARs) for one or more airports, or for everything inside a bounding box: wind, visibility, cloud layers, temperature, altimeter setting, the raw observation, and the derived flight category (VFR, MVFR, IFR, LIFR). Station IDs or a bounding box are required.

Inputs

Stationsidstext
Station IDs, separated by commas. Two group shorthands also work here: @IL for every station in a US state, and ~US for every station in a country. Write the @ form in quotes and on its own, as "@IL", because a bare @ starts a variable reference in the builder and would be read as a variable named IL; the ~ form needs no quotes. A country is a lot of weather: ~US answers with every US station, which is around 170 KB of observations or 1.4 MB of forecasts, so prefer a state or a bounding box unless you really want all of it. Leave blank if you are using a bounding box.
Bounding boxbboxtext
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative.
Formatformattext
Output format. Defaults to JSON, which comes back as one decoded row per observation in 'entries'. GeoJSON returns those rows as features with geometry; raw, decoded, XML, and IWXXM are returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (the bulletin as issued)), decoded (Decoded text (human-readable)), geojson (GeoJSON (rows with geometry)), xml, iwxxm (IWXXM (ICAO XML)). Default: json.
Include TAFtaftrue/false
Also return each station's current Terminal Aerodrome Forecast alongside its observation. Defaults to off.Default: false.
Hours backhoursnumber
How many hours of observations to return, counting back from now. Defaults to 1.5, which is the most recent observation for most stations.From 0 to 1000. Default: 1.5.
As ofdatedate and time
Point in time to read the products as of, either as the API's own yyyymmdd_hhmm or as an ISO 8601 timestamp. Leave blank for the latest products.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "altim": 1016.3,
      "clouds": [
        {
          "base": 11000,
          "cover": "BKN"
        },
        {
          "base": 25000,
          "cover": "OVC"
        }
      ],
      "dewp": 2.8,
      "elev": 202,
      "fltCat": "VFR",
      "icaoId": "KORD",
      "lat": 41.9602,
      "lon": -87.9316,
      "metarType": "METAR",
      "name": "Chicago/O'Hare Intl",
      "obsTime": 1699048260,
      "rawOb": "KORD 032151Z 23006KT 10SM BKN110 OVC250 14/03 A3000 RMK AO2 SLP162 VIRGA OHD T01440028",
      "receiptTime": "2023-11-03 21:54:03.000Z",
      "reportTime": "2023-11-03 22:00:00.000Z",
      "slp": 1016.2,
      "temp": 14.4,
      "visib": 10.0,
      "wdir": 230,
      "wgst": 12,
      "wspd": 6,
      "wxString": "-RA"
    }
  ],
  "format": "json"
}

Get meteorological information statements

Read the Meteorological Information Statements (MIS) issued by a Center Weather Service Unit: the longer-range outlook of conditions expected to affect an air route traffic control center, issued ahead of any advisory. A CWSU issues one only when it has something to flag, so a count of 0 is a common and correct answer rather than a failure.

Inputs

Centerloctext
Which CWSU's statements to read, by its center identifier such as ZKC or ZNY. Leave blank for every center.
Formatformattext
Output format. Defaults to JSON, which comes back as one row per statement in 'entries'. Text is returned verbatim in 'content'.One of: json (JSON (decoded rows)), text (Plain text). Default: json.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "cwsu": "ZKC",
      "issueTime": "2023-11-04 11:02:00.000Z",
      "misText": "ZKC MIS 01 VALID 041102-041900. AREA OF MVFR CIGS EXPECTED TO DEVELOP ACROSS THE WESTERN HALF OF ZKC.",
      "validTimeFrom": 1699095720,
      "validTimeTo": 1699124400
    }
  ],
  "format": "json"
}

Get navigational aids

Look up navigational aids (VORs, VORTACs, NDBs and the like) with their type, frequency, position, elevation, and magnetic variation. Navaid IDs or a bounding box are required. Be aware that the Aviation Weather Center is publishing no navaid data at present: this endpoint answers every query, by identifier or by area, with an empty list, which is a gap in their data rather than anything to fix in the step. 'Get navigational fixes' covers waypoints and does return results.

Inputs

Navaidsidstext
Navaid identifiers to look up, separated by commas, such as MCI or OJC. Leave blank if you are using a bounding box. Note that the source dataset behind this action is currently empty, so no identifier returns anything today.
Bounding boxbboxtext
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative.
Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw is returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (as issued)), geojson (GeoJSON (rows with geometry)). Default: json.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "country": "US",
      "elev": 310,
      "freq": 113.25,
      "id": "MCI",
      "lat": 39.2853,
      "lon": -94.7371,
      "mag_dec": "05E",
      "name": "Kansas City",
      "state": "MO",
      "type": "VORTAC"
    }
  ],
  "format": "json"
}

Get navigational fixes

Look up navigational fixes and waypoints by their five-letter names, or find every fix inside a bounding box. Fix IDs or a bounding box are required.

Inputs

Fixesidstext
Five-letter fix names to look up, separated by commas. Leave blank if you are using a bounding box.
Bounding boxbboxtext
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative.
Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw is returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (as issued)), geojson (GeoJSON (rows with geometry)). Default: json.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "id": "BARBQ",
      "lat": 39.0811,
      "lon": -94.7681,
      "type": "I"
    }
  ],
  "format": "json"
}

Get obstacles

Look up the charted obstacles inside a bounding box (towers, stacks, and other tall structures) with their position and height.

Inputs

Bounding boxbboxtextRequired
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative. Required for this action, which only ever searches an area.
Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw is returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (as issued)), geojson (GeoJSON (rows with geometry)). Default: json.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "agl": 449,
      "elev": 1105,
      "lat": 41.7402,
      "lon": -87.9711,
      "type": "TOWER"
    }
  ],
  "format": "json"
}

Get pilot reports

Read pilot reports (PIREPs and AIREPs), which record what crews actually encountered: turbulence, icing, cloud layers, visibility, and ride quality, with the aircraft type and flight level. Search a bounding box, or a radius around one airport.

Inputs

Around stationidtext
Station to search around. Use together with 'Radius'. Leave blank if you are using a bounding box.
Radiusdistancenumber
How far around that station to search, in statute miles.From 0 to 5000.
Bounding boxbboxtext
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative.
Formatformattext
Output format. Defaults to JSON, which comes back as one decoded row per report in 'entries'. GeoJSON returns those rows as features with geometry; raw, decoded, and XML are returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (the report as filed)), decoded (Decoded text (human-readable)), geojson (GeoJSON (rows with geometry)), xml. Default: json.
Hours backagenumber
How many hours of reports to return, counting back from now. Reports thin out quickly, so a few hours is usually the useful window.From 0 to 1000.
Flight levellevelnumber
Only return advisories that touch this level, as a flight level in hundreds of feet (300 means 30,000 ft). The API searches a window of plus or minus 3,000 ft around it.From 0 to 900.
Minimum intensityintentext
Only return reports at or above this intensity of turbulence or icing.One of: lgt (Light), mod (Moderate), sev (Severe).
As ofdatedate and time
Point in time to read the products as of, either as the API's own yyyymmdd_hhmm or as an ISO 8601 timestamp. Leave blank for the latest products.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "acType": "E170",
      "fltLvl": "140",
      "icaoId": "KCOU",
      "lat": 40.938,
      "lon": -90.4311,
      "obsTime": 1699379880,
      "pirepType": "PIREP",
      "rawOb": "COU UA /OV COU260020/TM 0012/FL140/TP E170/TB LGT-MOD CHOP 140-170/RM DURC /ZKC FDC/CW",
      "receiptTime": "2023-11-07 18:08:15.000Z",
      "tbInt1": "LGT-MOD",
      "tbType1": "CAT"
    }
  ],
  "format": "json"
}

Get station info

Look up the weather stations behind the reports: position, elevation, state and country, the ICAO, IATA, and FAA identifiers, and which products the site issues. Station IDs or a bounding box are required.

Inputs

Stationsidstext
Station IDs, separated by commas. To cover a region rather than a list of airports, leave this blank and give a bounding box instead: this endpoint matches identifiers one station at a time, with no shorthand for a whole state.
Bounding boxbboxtext
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative.
Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw and XML are returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (as issued)), geojson (GeoJSON (rows with geometry)), xml. Default: json.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "country": "US",
      "elev": 202,
      "faaId": "ORD",
      "iataId": "ORD",
      "icaoId": "KORD",
      "lat": 41.9602,
      "lon": -87.9316,
      "priority": 1,
      "site": "Chicago/O'Hare Intl",
      "siteType": [
        "METAR",
        "TAF"
      ],
      "state": "IL"
    }
  ],
  "format": "json"
}

Get TAFs

Read Terminal Aerodrome Forecasts for one or more airports, or for everything inside a bounding box. Each forecast comes back with its valid period, the raw bulletin, and a decoded list of forecast periods with wind, visibility, weather, and clouds. Station IDs or a bounding box are required.

Inputs

Stationsidstext
Station IDs, separated by commas. Two group shorthands also work here: @IL for every station in a US state, and ~US for every station in a country. Write the @ form in quotes and on its own, as "@IL", because a bare @ starts a variable reference in the builder and would be read as a variable named IL; the ~ form needs no quotes. A country is a lot of weather: ~US answers with every US station, which is around 170 KB of observations or 1.4 MB of forecasts, so prefer a state or a bounding box unless you really want all of it. Leave blank if you are using a bounding box.
Bounding boxbboxtext
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative.
Formatformattext
Output format. Defaults to JSON, which comes back as decoded rows in 'entries'. GeoJSON returns those rows as features with geometry; raw, XML, and IWXXM are returned verbatim in 'content'.One of: json (JSON (decoded rows)), raw (Raw text (the bulletin as issued)), geojson (GeoJSON (rows with geometry)), xml, iwxxm (IWXXM (ICAO XML)). Default: json.
Include METARmetartrue/false
Also return each station's current observation alongside its forecast. Defaults to off.Default: false.
Select bytimetext
Whether to select forecasts by the period they are valid for (the default) or by when they were issued.One of: valid (Valid time), issue (Issuance time). Default: valid.
As ofdatedate and time
Point in time to read the products as of, either as the API's own yyyymmdd_hhmm or as an ISO 8601 timestamp. Leave blank for the latest products.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "",
  "count": 1,
  "entries": [
    {
      "bulletinTime": "2023-11-03 23:20:00.000Z",
      "elev": 202,
      "fcsts": [
        {
          "clouds": [
            {
              "base": 11000,
              "cover": "OVC"
            }
          ],
          "timeFrom": 1699056000,
          "timeTo": 1699077600,
          "visib": 6.0,
          "wdir": "VRB",
          "wspd": 5,
          "wxString": "-SHRA"
        }
      ],
      "icaoId": "KORD",
      "issueTime": "2023-11-03 23:20:00.000Z",
      "lat": 41.9602,
      "lon": -87.9316,
      "mostRecent": 1,
      "name": "Chicago/O'Hare Intl",
      "rawTAF": "KORD 032320Z 0400/0506 VRB05KT P6SM FEW050 SCT080 OVC110 TEMPO 0401/0403 -SHRA BKN050 OVC080 FM040600 34006KT P6SM FEW015 SCT100 BKN150",
      "remarks": "RMK PGG",
      "validTimeFrom": 1699056000,
      "validTimeTo": 1699164000
    }
  ],
  "format": "json"
}

Get winds and temperatures aloft

Read the FD winds-and-temperatures-aloft bulletin for a region: forecast wind direction, speed, and temperature at each reporting altitude, for every station in that region. Returned as the bulletin text in 'content'.

Inputs

Regionregiontext
Which region's bulletin to read.One of: us (All contiguous US sites), bos (Northeast (Boston)), mia (Southeast (Miami)), chi (North central (Chicago)), dfw (South central (Dallas-Fort Worth)), slc (Rocky Mountain (Salt Lake City)), sfo (Pacific Coast (San Francisco)), alaska, hawaii, other_pac (Western Pacific).
Altitude bandleveltext
Low altitudes (up to 24,000 ft) or high altitudes (above them).One of: low, high.
Forecast cyclefcsttext
Which forecast cycle to read: the 6, 12, or 24 hour product.One of: 06 (6 hour), 12 (12 hour), 24 (24 hour).

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "DATA BASED ON 041200Z\nVALID 041800Z   FOR USE 1400-2100Z. TEMPS NEG ABV 24000\nFT  3000    6000    9000   12000   18000   24000\nBOS 2116 2222+06 2334+01 2447-05 2578-17 2695-29",
  "count": 0,
  "entries": [],
  "format": "text"
}

Query the legacy data server

Run a query against the compatibility layer for the retired Text Data Server. Its one advantage over the other actions is an explicit start and end time, so it can pull a past window of METARs, TAFs, pilot reports, SIGMETs, or G-AIRMETs rather than only recent ones. Give a start and end time for that; with neither, it reads the last two hours. Answers in XML or CSV, returned in 'content'.

Inputs

Data sourcedataSourcetextRequired
Which product to query.One of: metars, tafs, aircraftreports (Pilot reports), airsigmets (AIRMETs and SIGMETs), gairmets (Graphical AIRMETs). Default: metars.
StationsstationStringtext
Station IDs to query, separated by commas. Give this, a bounding box, or a radial distance.
Bounding boxboundingBoxtext
Bounding box to search, as lat0, lon0, lat1, lon1: the south-west corner followed by the north-east corner. Longitudes in the Americas are negative.
Start timestartTimedate and time
Beginning of the window to query, as yyyymmdd_hhmm or an ISO 8601 timestamp. Give this together with an end time to pull a specific past window; leave both blank to use 'Hours back' instead.
End timeendTimedate and time
End of the window to query, as yyyymmdd_hhmm or an ISO 8601 timestamp.
Hours backhoursBeforeNownumber
Query the last this many hours. Defaults to 2. A start and end time take precedence over this if you give them, so leave those blank to use it.From 0 to 1000. Default: 2.
Formatformattext
Output format. Defaults to XML; TAFs are not available as CSV. Either way the document is returned in 'content'.One of: xml, csv. Default: xml.
Most recent per stationmostRecentForEachStationtext
Return only the latest report for each station, for METARs and TAFs. 'Constraint' asks the server for the newest report directly; 'post-filter' fetches the window and then thins it, which is slower but honours the other filters.One of: constraint (Constraint (faster)), postfilter (Post-filter).
Radial distanceradialDistancetext
Circular bounds for pilot reports, in the legacy server's own spelling: distance in statute miles, a semicolon, then longitude and latitude.

Outputs

contenttext
The response verbatim for the raw, decoded, XML, IWXXM, CSV, and plain-text formats. Empty for JSON and GeoJSON.
countnumber
Number of rows in 'entries'; 0 when a text format was asked for
entrieslist
One row per product for the JSON and GeoJSON formats (GeoJSON rows are features, each with its own geometry). Empty for every other format.
formattext
The format the products were requested in
Example output
{
  "content": "No errors\nNo warnings\n2 ms\ndata source=metars\nraw_text,station_id,observation_time,latitude,longitude\n\"KORD 032151Z 23006KT 10SM BKN110 OVC250 14/03 A3000\",KORD,2023-11-03T21:51:00Z,41.96,-87.93",
  "count": 0,
  "entries": [],
  "format": "csv"
}

On this page