NOAA Weather Data API

Decoded weather information

Documentation

Specifications

SDKs

Schemas & Data

Other Resources

OpenAPI Specification

noaa-weather-data-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: AviationWeather.gov Alerts Weather Data API
  description: Schema for public data API of AviationWeather.gov.
  termsOfService: /data/api/
  version: v4.0
tags:
- name: Weather Data
  description: Decoded weather information
paths:
  /api/data/metar:
    get:
      tags:
      - Weather Data
      summary: METARs
      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: 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: 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: 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: 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: 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: 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: TFM Convective Forecast (TCF)
      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: 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: Wind/Temp 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:\n * `us` - All contiguous US sites\n * `bos` - Northeast\n * `mia` - Southeast\n * `chi` - North central\n * `dfw` - South central\n * `slc` - Rocky Mountain\n * `sfo` - Pacific Coast\n * `alaska` - Alaska\n * `hawaii` - Hawaii\n * `other_pac` - Western Pacific\n"
      - 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: US Area Forecasts
      description: Text Area Forecasts for the United States outside the contiguous states (Alaska)
      parameters:
      - name: region
        in: query
        description: "Date\n * `aknorth` - Northern half of Alaska\n * `akcentral` - Interior Alaska\n * `aksouth` - Southcentral Alaska\n * `aksouthwest` - Alaska Peninsula\n * `aksoutheast` - Eastern Gulf of Alaska\n * `akpanhandle` - Alaska\n"
        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: 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:\n * `afd` - aviation discussion\n * `af` - full discussion\n"
        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: 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/dataserver:
    get:
      tags:
      - Weather Data
      summary: 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\n * `yyyymmdd_hhmm`\n * `yyyy-mm-ddThh:mm:ssZ`\n"
        required: false
        examples:
          '-':
            value: ''
          epoch_secs:
            summary: A Unix epoch time in seconds
            value: 1703052000
          iso_date:
            summary: ISO8601 Date
            value: 2023-12-23 23:57:29+00:00
        schema:
          type: string
      - name: endTime
        in: query
        description: "End time\n * `yyyymmdd_hhmm`\n * `yyyy-mm-ddThh:mm:ssZ`\n"
        required: false
        examples:
          '-':
            value: ''
          epoch_secs:
            summary: A Unix epoch time in seconds
            value: 1703383049
          iso_date:
            summary: ISO8601 Date
            value: 2023-12-20 00:00:00+00:00
        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:
  schemas:
    METARproperties:
      type: object
      properties:
        icaoId:
          type: string
          default: ''
          description: ICAO identifier
          examples:
          - KORD
        receiptTime:
          type: string
          default: ''
          description: The time the observation was received (yyyy-mm-dd hh:mm:ss.sssZ)
          examples:
          - '2023-11-03 21:54:03.000Z'
        obsTime:
          type: integer
          description: The observation time (UNIX timestamp)
          examples:
          - 1699048260
        reportTime:
          type: string
          default: ''
          description: The time of the report (yyyy-mm-dd hh:mm:ss.sssZ)
          examples:
          - '2023-11-03 22:00:00.000Z'
        temp:
          type: number
          default: 0
          description: Temperature in Celsius
          examples:
          - 14.4
        dewp:
          type: number
          default: null
          description: Dewpoint temperature in Celsius
          examples:
          - 2.8
        wdir:
          minimum: 0
          default: null
          description: Wind direction in degrees or VRB for variable winds
          anyOf:
          - type: integer
          - type: string
          examples:
          - 230
        wspd:
          type: integer
          default: null
          minimum: 0
          description: Wind speed in knots
          examples:
          - 6
        wgst:
          type: integer
          default: null
          minimum: 0
          description: Wind gusts in knots
          examples:
          - 12
        visib:
          default: null
          description: Visibility in statute miles, 10+ is greater than 10 sm
          anyOf:
          - type: number
          - type: string
          examples:
          - 3
        altim:
          type: number
          default: null
          description: Altimeter setting in hectopascals
          examples:
          - 1016.3
        slp:
          type: number
          default: null
          description: Sea level pressure in hectopascals
          examples:
          - 1016.2
        wxString:
          type: string
          default: null
          description: Encoded present weather string
          examples:
          - -RA
        presTend:
          type: number
          default: null
          description: Pressure tendency over last 3 hours in hectopascals
          examples:
          - null
        maxT:
          type: number
          default: null
          description: Maximum temperature over last 6 hours in Celsius
          examples:
          - 23.4
        minT:
          type: number
          default: null
          description: Minimum temperature over last 6 hours in Celsius
          examples:
          - 12.3
        maxT24:
          type: number
          default: null
          description: Maximum temperature over last 24 hours in Celsius
          examples:
          - 23.4
        minT24:
          type: number
          default: null
          description: Minimum temperature over last 24 hours in Celsius
          examples:
          - 12.3
        precip:
          type: number
          default: null
          minimum: 0
          description: Precipitation over last hour in inches
          examples:
          - 0.01
        pcp3hr:
          type: number
          default: null
          minimum: 0
          description: Precipitation over last 3 hours in inches
          examples:
          - 0.1
        pcp6hr:
          type: number
          default: null
          minimum: 0
          description: Precipitation over last 6 hours in inches
          examples:
          - 0.23
        pcp24hr:
          type: number
          default: null
          minimum: 0
          description: Precipitation over last 24 hours in inches
          examples:
          - 0.53
        snow:
          type: number
          default: null
          minimum: 0
          description: Snow depth in inches
          examples:
          - 1
        vertVis:
          type: integer
          default: null
          minimum: 0
          description: Vertical visibility in feet
          examples:
          - 100
        metarType:
          type: string
          default: ''
          description: Type of encoding
          enum:
          - METAR
          - SPECI
          - SYNOP
          - BUOY
          - CMAN
          examples:
          - METAR
        rawOb:
          type: string
          default: ''
          description: Raw text of observation
          examples:
          - KORD 032151Z 23006KT 10SM BKN110 OVC250 14/03 A3000 RMK AO2 SLP162 VIRGA OHD T01440028
        lat:
          type: number
          default: 0
          description: Latitude of site in degrees
          examples:
          - 41.9602
        lon:
          type: number
          default: 0
          description: Longitude of site in degrees
          examples:
          - -87.9316
        elev:
          type: integer
          default: 0
          description: Elevation of site in meters
          examples:
          - 202
        name:
          type: string
          default: ''
          description: Full name of the site
          examples:
          - Chicago/O'Hare Intl
          - IL
          - US
        clouds:
          $ref: '#/components/schemas/CloudInfo'
        fltCat:
          type: string
          default: ''
          description: Flight category restriction
          examples:
          - IFR
    METARGeoJSON:
      type: object
      properties:
        type:
          type: string
          enum:
          - FeatureCollection
        features:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                - Feature
              id:
                type: number
              properties:
                $ref: '#/components/schemas/METARproperties'
              geometry:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - Point
                  coordinates:
                    type: array
                    minItems: 2
                    maxItems: 2
                    items:
                      type: number
                    examples:
                    - - -87.9316
                      - 41.9602
    GairmetJSON:
      type: array
      items:
        type: object
        properties:
          tag:
            type: string
            description: Forecast component tag
            examples:
            - 1C
          forecastHour:
            type: integer
            examples:
            - 0
          validTime:
            type: string
            examples:
            - 2025-09-30 03:00:00+00:00
          hazard:
            type: string
            description: Hazard type
            examples:
            - IFR
          geometryType:
            type: string
            enum:
            - AREA
            - LINE
          latlonpairs:
            type: integer
            examples:
            - 23
          due_to:
            type: string
            examples:
            - CIG BLW 010/VIS BLW 3SM PCPN/BR
          receiptTime:
            type: integer
            examples:
            - 1759200749
          issueTime:
            type: integer
            examples:
            - 1759200300
          expireTime:
            type: integer
            examples:
            - 1759222800
          product:
            type: string
            enum:
            - SIERRA
            - TANGO
            - ZULU
          coords:
            type: array
            items:
              type: object
              parameters:
                lat:
                  type: number
                lon:
                  type: number
    METARtext:
      type: string
      description: Raw text of observation
      examples:
      - KORD 032151Z 23006KT 10SM BKN110 OVC250 14/03 A3000 RMK AO2 SLP162 VIRGA OHD T01440028
    PIREPGeoJSON:
      type: object
      properties:
        type:
          type: string
          enum:
          - FeatureCollection
        features:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                - Feature
              id:
                type: number
              properties:
                type: object
                properties:
                  receiptTime:
                    type: string
                    description: Time received by AWC
                  obsTime:
                    type: number
                    description: Observed time (UNIX epoch)
                  qcField:
                    type: number
                  icaoId:
                    type: string
                  acType:
                    type: string
                  lat:
                    type: number
                  lon:
                    type: number
                  fltLvl:
                    type: string
                  fltLvlType:
                    type: string
                  clouds:
                    $ref: '#/components/schemas/CloudInfo'
                  visib:
                    type: string
                  wxString:
                    type: string
                  temp:
                    type: number
                  wdir:
                    type: number
                  wspd:
                    type: number
                  icgBas1:
                    type: number
                  icgTop1:
                    type: number
                  icgInt1:
                    type: string
                  icgType1:
                    type: string
                  icgBas2:
                    type: number
                  icgTop2:
                    type: number
                  icgInt2:
                    type: string
                  icgType2:
                    type: string
                  tbBas1:
                    type: number
                  tbTop1:
                    type: number
                  tbInt1:
                    type: string
                  tbType1:
                    type: string
                  tbFreq1:
                    type: string
                  tbBas2:
                    type: number
                  tbTop2:
                    type: number
                  tbInt2:
                    type: string
                  tbType2:
                    type: string
                  tbFreq2:
                    type: string
                  vertGust:
                    type: number
                  brkAction:
                    type: string
                  pirepType:
                    type: string
                  rawOb:
                    type: string
              geometry:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - Point
                  coordinates:
                    type: array
                    minItems: 2
                    maxItems: 2
                    items:
                      type: number
                    examples:
                    - - -87.9316
                      - 41.9602
    CwaGeoJSON:
      type: object
      properties:
        type:
          type: string
          enum:
          - FeatureCollection
        features:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                - Feature
              id:
                type: number
              properties:
                type: object
                properties:
                  cwsu:
                    type: string
                    description: Issuing CWSU identifier
                    examples:
                    - ZJX
                  name:
                    type: string
                    description: Issuing CWSU name
                    examples:
                    - Jacksonville
                  validTimeFrom:
                    type: integer
                    examples:
                    - 1733364000
                  validTimeTo:
                    type: integer
                    examples:
                    - 1733378400
                  hazard:
                    type: string
                    description: Hazard type
                    examples:
                    - IFR
                  seriesId:
                    type: integer
           

# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/noaa/refs/heads/main/openapi/noaa-weather-data-api-openapi.yml