openapi: 3.1.0
info:
title: AviationWeather.gov API
description: |-
Schema for the public data API of AviationWeather.gov, operated by the NOAA/NWS
Aviation Weather Center (AWC). Provides machine-to-machine access to operational
aviation weather products including METARs, TAFs, PIREPs, SIGMETs, AIRMETs,
G-AIRMETs, CWAs, TFM convective forecasts, area forecasts, forecast discussions,
meteorological information statements, and reference data for stations, airports,
NAVAIDs, fixes, features, and obstacles.
Rate limit: 100 requests per minute per user. Most endpoints return a maximum of
400 entries. Historical depth is up to 15 days. No API key required.
termsOfService: https://aviationweather.gov/data/api/
contact:
name: NOAA / NWS Aviation Weather Center
url: https://www.weather.gov/aviation/awc
license:
name: U.S. Government Work (public domain)
url: https://www.weather.gov/disclaimer
version: "v4.0"
servers:
- url: https://aviationweather.gov
description: NOAA Aviation Weather Center production endpoint
tags:
- name: Weather Data
description: Decoded weather information
- name: Navigational Data
description: Decoded navigational information
paths:
/api/data/metar:
get:
tags:
- Weather Data
summary: Get METAR Observations
description: Decoded aviation weather observations. Station identifiers or a bounding box is required.
parameters:
- $ref: '#/components/parameters/ids'
- $ref: '#/components/parameters/bbox'
- name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- raw
- decoded
- json
- geojson
- xml
- iwxxm
default: raw
- name: taf
in: query
description: Include TAF
required: false
schema:
type: boolean
default: false
- $ref: '#/components/parameters/hours'
- $ref: '#/components/parameters/date'
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/METARJSON'
application/geo+json:
schema:
$ref: '#/components/schemas/METARGeoJSON'
application/xml:
schema:
$ref: '#/components/schemas/METARXML'
text/plain:
schema:
$ref: '#/components/schemas/METARtext'
400:
$ref: '#/components/responses/400'
/api/data/taf:
get:
tags:
- Weather Data
summary: Get TAFs
description: Decoded Terminal Aerodrome Forecast products. Station identifiers or a bounding box is required.
parameters:
- $ref: "#/components/parameters/ids"
- $ref: "#/components/parameters/bbox"
- $ref: "#/components/parameters/RawJSONGeoXMLIWXXM"
- name: metar
in: query
description: Include METAR
required: false
schema:
type: boolean
- name: time
in: query
description: Process time by valid (default) or issuance time
required: false
schema:
type: string
enum:
- valid
- issue
- $ref: "#/components/parameters/date"
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/TAFJSON"
application/geo+json:
schema:
$ref: "#/components/schemas/TAFGeoJSON"
text/plain:
schema:
$ref: '#/components/schemas/TAFtext'
400:
$ref: '#/components/responses/400'
/api/data/pirep:
get:
tags:
- Weather Data
summary: Get Pilot Reports
description: Pilot reports issued in PIREP or AIREP format. Bounding box, or center point identifier and radial distance, required.
parameters:
- name: id
in: query
description: Airport ID for center of search
required: false
explode: true
schema:
type: string
- name: distance
in: query
description: Radial distance to search
required: false
explode: true
schema:
type: number
- $ref: "#/components/parameters/bbox"
- name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- raw
- decoded
- json
- geojson
- xml
default: raw
- name: age
in: query
description: Hours Back
required: false
explode: true
schema:
type: number
- name: level
in: query
description: Level +-3000' to search
required: false
explode: true
schema:
type: number
- name: inten
in: query
description: Minimum intensity
required: false
explode: true
schema:
type: string
enum:
- lgt
- mod
- sev
- $ref: "#/components/parameters/date"
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/PIREPJSON"
application/geo+json:
schema:
$ref: "#/components/schemas/PIREPGeoJSON"
application/xml:
schema:
$ref: "#/components/schemas/PIREPXML"
text/plain:
schema:
$ref: '#/components/schemas/PIREPtext'
400:
$ref: '#/components/responses/400'
/api/data/airsigmet:
get:
tags:
- Weather Data
summary: Get Domestic SIGMETs
description: Domestic SIGMETs for the contiguous United States. Does not include SIGMETs issued by the US in international format.
parameters:
- $ref: "#/components/parameters/RawJSONGeoXMLIWXXM"
- name: types
in: query
description: Product type
required: false
deprecated: true
schema:
type: string
enum:
- sigmet
- airmet
- name: hazard
in: query
description: Hazard
required: false
schema:
type: string
enum:
- conv
- turb
- ice
- ifr
- name: level
in: query
description: The level +-3000' to search
required: false
explode: true
schema:
type: number
responses:
200:
description: successful operation
content:
text/plain:
schema:
type: string
application/xml:
schema:
type: object
application/json:
schema:
$ref: "#/components/schemas/AirSigmetJSON"
application/geo+json:
schema:
$ref: "#/components/schemas/AirSigmetGeoJSON"
400:
$ref: '#/components/responses/400'
/api/data/isigmet:
get:
tags:
- Weather Data
summary: Get International SIGMETs
description: Decoded international SIGMETs. This does not include SIGMETs issued by the United States in domestic format (i.e. convective and non-convective domestic SIGMETS).
parameters:
- $ref: "#/components/parameters/RawJSONGeoXMLIWXXM"
- name: hazard
in: query
description: Hazard
required: false
explode: true
schema:
type: string
enum:
- turb
- ice
- name: level
in: query
description: Level +-3000' to search
required: false
explode: true
schema:
type: number
- $ref: "#/components/parameters/date"
responses:
200:
description: Successful operation
content:
text/plain:
schema:
type: string
application/xml:
schema:
type: object
application/json:
schema:
$ref: "#/components/schemas/ISigmetJSON"
application/geo+json:
schema:
$ref: "#/components/schemas/ISigmetGeoJSON"
400:
$ref: '#/components/responses/400'
/api/data/gairmet:
get:
tags:
- Weather Data
summary: Get US Graphical AIRMETs
description: Decoded G-AIRMETs for the contiguous United States. See /api/data/airmet for similar advisories over Alaska.
parameters:
- name: product
in: query
description: Product type
required: false
explode: true
schema:
type: string
enum:
- sierra
- tango
- zulu
- $ref: "#/components/parameters/RawJSONGeoXML"
- name: hazard
in: query
description: Hazard
required: false
explode: true
schema:
type: string
enum:
- turb-hi
- turb-lo
- llws
- sfc_wind
- ifr
- mtn_obs
- ice
- fzlvl
- $ref: "#/components/parameters/date"
- name: fore
in: query
description: Forecast hour from selected forecast package
required: false
schema:
type: number
enum:
- 0
- 3
- 6
- 9
- 12
responses:
200:
description: successful operation
content:
text/plain:
schema:
type: string
application/json:
schema:
$ref: "#/components/schemas/GairmetJSON"
application/geo+json:
schema:
$ref: "#/components/schemas/GairmetGeoJSON"
application/xml:
schema:
type: object
400:
$ref: '#/components/responses/400'
/api/data/airmet:
get:
tags:
- Weather Data
summary: Get AIRMETs
description: Decoded domestic AIRMETs (Alaska only). See /api/data/gairmet for similar advisories over the contiguous United States.
parameters:
- $ref: "#/components/parameters/JSONGeoIWXXM"
- name: hazard
in: query
description: "Hazard"
required: false
explode: true
schema:
type: string
enum:
- turb
- ifr
- conv
- ice
- name: level
in: query
description: Level +-3000' to search
required: false
explode: true
schema:
type: number
- $ref: "#/components/parameters/date"
responses:
200:
description: successful operation
content:
application/xml:
schema:
type: object
application/json:
schema:
type: object
400:
$ref: '#/components/responses/400'
/api/data/tcf:
get:
tags:
- Weather Data
summary: Get TFM Convective Forecast
description: Traffic Flow Management (TFM) Convective Forecast. See https://aviationweather.gov/tcf/ for more information.
parameters:
- $ref: "#/components/parameters/RawGeo"
responses:
200:
description: successful operation
content:
text/plain:
schema:
type: string
application/json:
schema:
$ref: "#/components/schemas/TcfGeoJSON"
400:
$ref: '#/components/responses/400'
/api/data/cwa:
get:
tags:
- Weather Data
summary: Get CWSU Center Advisories
description: Center Weather Advisories issued by NWS Center Weather Service Units (CWSUs)
parameters:
- name: hazard
in: query
description: Hazard
required: false
explode: true
schema:
type: string
enum:
- ts
- turb
- ice
- ifr
- pcpn
- unk
- $ref: "#/components/parameters/RawJSONGeo"
- $ref: "#/components/parameters/date"
responses:
200:
description: successful operation
content:
text/plain:
schema:
type: string
application/json:
schema:
$ref: "#/components/schemas/CwaJSON"
application/geo+json:
schema:
$ref: "#/components/schemas/CwaGeoJSON"
400:
$ref: '#/components/responses/400'
/api/data/windtemp:
get:
tags:
- Weather Data
summary: Get Wind and Temperature Point Data
description: Wind and temperature information from the legacy FD winds
parameters:
- name: region
in: query
required: false
schema:
type: string
enum: [us,bos,mia,chi,dfw,slc,sfo,alaska,hawaii,other_pac]
description: >
Region:
* `us` - All contiguous US sites
* `bos` - Northeast
* `mia` - Southeast
* `chi` - North central
* `dfw` - South central
* `slc` - Rocky Mountain
* `sfo` - Pacific Coast
* `alaska` - Alaska
* `hawaii` - Hawaii
* `other_pac` - Western Pacific
- name: level
in: query
description: Level
required: false
schema:
type: string
enum:
- low
- high
- name: fcst
in: query
description: Forecast cycle
required: false
schema:
type: string
enum:
- "06"
- "12"
- "24"
responses:
200:
description: successful operation
content:
text/plain:
schema:
type: string
400:
$ref: '#/components/responses/400'
/api/data/areafcst:
get:
tags:
- Weather Data
summary: Get US Area Forecasts
description: Text Area Forecasts for the United States outside the contiguous states (Alaska)
parameters:
- name: region
in: query
description: >
Date
* `aknorth` - Northern half of Alaska
* `akcentral` - Interior Alaska
* `aksouth` - Southcentral Alaska
* `aksouthwest` - Alaska Peninsula
* `aksoutheast` - Eastern Gulf of Alaska
* `akpanhandle` - Alaska
required: true
schema:
type: string
enum:
- aknorth
- akcentral
- akaleutian
- aksouth
- aksouthwest
- aksoutheast
- akpanhandle
responses:
200:
description: successful operation
content:
text/plain:
schema:
type: string
400:
$ref: '#/components/responses/400'
/api/data/fcstdisc:
get:
tags:
- Weather Data
summary: Get US Forecast Discussions
description: Aviation Forecast Discussions issued by NWS Weather Forecast Offices. Returns aviation section or full discussion issued within the past six hours.
parameters:
- name: cwa
in: query
description: County Warning Area (WFO)
required: false
examples:
-:
value: ""
KEAX:
summary: Kansas City
value: "keax"
schema:
type: string
- name: type
in: query
description: >
Type of output:
* `afd` - aviation discussion
* `af` - full discussion
required: false
schema:
type: string
enum:
- afd
- af
responses:
200:
description: successful operation
content:
text/plain:
schema:
type: string
400:
$ref: '#/components/responses/400'
/api/data/mis:
get:
tags:
- Weather Data
summary: Get Meteorological Information Statement
description: Meteorological Information Statements issued by NWS Center Weather Service Units (CWSU)
parameters:
- name: loc
in: query
description: CWSU
required: false
examples:
-:
value: ""
zkc:
summary: Kansas City
value: "zkc"
schema:
type: string
- name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- json
- text
default: text
responses:
200:
description: successful operation
content:
text/plain:
schema:
type: string
400:
$ref: '#/components/responses/400'
/api/data/stationinfo:
get:
tags:
- Navigational Data
summary: Get Station Info
description: Station observation location information
parameters:
- $ref: "#/components/parameters/ids"
- $ref: "#/components/parameters/bbox"
- $ref: "#/components/parameters/RawJSONGeoXML"
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/StationInfoJSON"
application/geo+json:
schema:
$ref: "#/components/schemas/StationInfoGeoJSON"
application/xml:
schema:
$ref: "#/components/schemas/StationInfoXML"
400:
$ref: '#/components/responses/400'
/api/data/airport:
get:
tags:
- Navigational Data
summary: Get Airport Info
description: Information about airports
parameters:
- $ref: "#/components/parameters/ids"
- $ref: "#/components/parameters/bbox"
- name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- decoded
- json
- geojson
default: decoded
responses:
200:
description: Successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
icaoId:
type: string
examples: [KMCI]
iataId:
type: string
examples: [MCI]
faaId:
type: string
examples: [MCI]
name:
type: string
examples: [KANSAS CITY/KANSAS CITY INTL]
state:
type: string
examples: [MO]
country:
type: string
examples: [US]
source:
type: string
examples: [FAA]
type:
type: string
examples: [ARP]
lat:
type: string
examples: [39.2976]
lon:
type: string
examples: [-94.7139]
elev:
type: string
examples: [313]
magdec:
type: string
examples: [02E]
owner:
type: string
examples: [P]
runways:
type: array
400:
$ref: '#/components/responses/400'
/api/data/navaid:
get:
tags:
- Navigational Data
summary: Get Navigational Aid Info
description: Navigational aid data
parameters:
- name: ids
in: query
description: three character identifier
required: false
examples:
-:
value: ""
barbq:
summary: MCI
value: MCI
schema:
type: string
- $ref: "#/components/parameters/bbox"
- $ref: "#/components/parameters/RawJSONGeo"
responses:
200:
description: Successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
examples: [MCI]
type:
type: string
examples: [VORTAC]
name:
type: string
examples: [Kansas City]
state:
type: string
examples: [MO]
country:
type: string
examples: [US]
lat:
type: number
examples: [39.2853]
lon:
type: number
examples: [-94.7371]
elev:
type: number
examples: [310]
freq:
type: number
examples: [113.25]
mag_dec:
type: string
examples: [05E]
400:
$ref: '#/components/responses/400'
/api/data/fix:
get:
tags:
- Navigational Data
summary: Get Navigational Fix and Waypoint Info
description: Navigational fix data
parameters:
- name: ids
in: query
description: 5 letter Fix ID(s)
required: false
examples:
-:
value: ""
barbq:
summary: BARBQ
value: BARBQ
schema:
type: string
- $ref: "#/components/parameters/bbox"
- $ref: "#/components/parameters/RawJSONGeo"
responses:
200:
description: Successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
examples: [BARBQ]
type:
type: string
examples: [I]
lat:
type: number
examples: [39.0811]
lon:
type: number
examples: [-94.7681]
400:
$ref: '#/components/responses/400'
/api/data/feature:
get:
tags:
- Navigational Data
summary: Get Feature Info
description: Additional geographic features
parameters:
- $ref: "#/components/parameters/bbox"
- $ref: "#/components/parameters/RawJSONGeo"
responses:
200:
description: successful operation
400:
$ref: '#/components/responses/400'
/api/data/obstacle:
get:
tags:
- Navigational Data
summary: Get Obstacle Info
description: Aviation obstacle information
parameters:
- $ref: "#/components/parameters/bbox"
- $ref: "#/components/parameters/RawJSONGeo"
responses:
200:
description: successful operation
400:
$ref: '#/components/responses/400'
/api/data/dataserver:
get:
tags:
- Weather Data
summary: Get Data Server
description: Compatibility layer with previous Text Data Service. Station identifiers or a bounding box, as well as a time selection, are required.
parameters:
- name: requestType
in: query
required: true
schema:
type: string
enum: [retrieve]
- name: dataSource
in: query
required: true
schema:
type: string
enum: [metars,tafs,aircraftreports,airsigmets,gairmets]
- name: stationString
in: query
description: Station ID(s)
required: false
examples:
-:
value: ""
id:
summary: A single ICAO Id
value: KMCI
ids:
summary: A list of ICAO Ids separated by commas
value: KMCI,KORD,KBOS
states:
summary: A 2 letter state abbreviation preceded by a @
value: "@WA"
schema:
type: string
- name: boundingBox
in: query
description: Geographic bounding box (lat0, lon0, lat1, lon1)
required: false
examples:
-:
value: ""
box:
summary: A small box around Chicago
value: 40,-90,45,-85
schema:
type: string
- name: startTime
in: query
description: >
Start time
* `yyyymmdd_hhmm`
* `yyyy-mm-ddThh:mm:ssZ`
required: false
examples:
-:
value: ""
epoch_secs:
summary: A Unix epoch time in seconds
value: 1703052000
iso_date:
summary: ISO8601 Date
value: 2023-12-23T23:57:29Z
schema:
type: string
- name: endTime
in: query
description: >
End time
* `yyyymmdd_hhmm`
* `yyyy-mm-ddThh:mm:ssZ`
required: false
examples:
-:
value: ""
epoch_secs:
summary: A Unix epoch time in seconds
value: 1703383049
iso_date:
summary: ISO8601 Date
value: 2023-12-20T00:00:00Z
schema:
type: string
- name: hoursBeforeNow
in: query
description: Number of hours before now to search
required: false
explode: true
schema:
type: number
- name: format
in: query
description: Output format (TAFs not available in CSV format)
explode: false
schema:
type: string
default: xml
enum:
- xml
- csv
- name: mostRecentForEachStation
in: query
description: Most recent per station (METARs and TAFs only)
required: false
explode: false
schema:
type: string
enum:
- constraint
- postfilter
- name: radialDistance
in: query
description: Circular bounds defined by latitude, longitude and radial distance in statute miles (PIREPS only)
required: false
examples:
-:
value: ""
radial:
summary: A small area around Denver
value: 20;-105,39
schema:
type: string
responses:
200:
description: successful operation
400:
$ref: '#/components/responses/400'
components:
parameters:
date:
name: date
in: query
description: "String (`yyyymmdd_hhmm`) or ISO 8601 Date (`yyyy-mm-ddThh:mm:ssZ`)"
required: false
explode: true
examples:
-:
value: ""
datim:
summary: Date/time string
value: 20231220_0000
iso_date:
summary: ISO 8601 Date
value: 2023-12-20T00:00:00Z
schema:
type: string
bbox:
name: bbox
in: query
description: Geographic bounding box (lat0, lon0, lat1, lon1)
required: false
examples:
-:
value: ""
box:
summary: A small box around Chicago
value: 40,-90,45,-85
schema:
type: string
hours:
name: hours
in: query
description: Hours back to search
required: false
explode: true
schema:
type: number
default: 1.5
hoursRequired:
name: hours
in: query
description: Hours back to search
required: true
schema:
type: number
RawJSONGeoXML:
name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- raw
- json
- geojson
- xml
default: raw
RawJSONGeo:
name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- raw
- json
- geojson
default: raw
RawGeo:
name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- raw
- geojson
default: raw
RawJSONGeoXMLIWXXM:
name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- raw
- json
- geojson
- xml
- iwxxm
default: raw
JSONGeoIWXXM:
name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- json
- geojson
- iwxxm
default: json
JSONGeoUSWX:
name: format
in: query
description: Format
required: false
explode: true
schema:
type: string
enum:
- json
- geojson
- uswx
default: json
ids:
name: ids
in: query
description: Station ID(s)
required: false
examples:
-:
value: ""
id:
summary: A single ICAO Id
value: KMCI
ids:
summary: A list of ICAO Ids separated by commas
value: KMCI,KORD,KBOS
states:
summary: A 2 letter state abbreviation preceded by a @
value: "@WA"
schema:
type: string
responses:
'success':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum: [success]
400:
description: Input validation errors
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorJSON"
application/xml:
schema:
$ref: "#/com
# --- truncated at 32 KB (86 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aviationweather/refs/heads/main/openapi/aviationweather-openapi.yml