METAR

METAR is a format for reporting current weather information.

METAR weather reports are predominantly used by pilots in fulfillment of a part of a pre-flight weather briefing, and by meteorologists, who use aggregated METAR information to assist in weather forecasting.

METARs typically come from airports or permanent weather observation stations. Reports are generated once an hour or half-hour, but if conditions change significantly, a report known as a special (SPECI) may be issued. Some METARs are encoded by automated airport weather stations located at airports, military bases, and other sites. Some locations still use augmented observations, which are recorded by digital sensors, encoded via software, and then reviewed by certified weather observers or forecasters prior to being transmitted. Observations may also be taken by trained observers or forecasters who manually observe and encode their observations prior to transmission.

A typical METAR contains data for the temperature, dew point, wind direction and speed, precipitation, cloud cover and heights, visibility, and barometric pressure. A METAR may also contain information on precipitation amounts, lightning, and other information that would be of interest to pilots or meteorologists.

METAR is the most common format in the world for the transmission of observational weather data. It is highly standardized through the International Civil Aviation Organization, which allows it to be understood throughout most of the world.

Our decoded METAR, decodes the raw METAR string to create keys and values for each part in a METAR. We also include additional weather information and conversions in the response data.

 

METAR Raw vs Decoded

By default all METAR endpoints return data in a raw string format.

By adding the /decoded URL Parameter to the end of any METAR endpoint, both the raw and decoded METAR will be included in the response data.

 

METAR Fields

The following table lists the fields which are returned by all /decoded METAR endpoints.

Fields marked as Conditional will not be included in the JSON response data if no value exists for that field.

Therefore your code should check for the existence of these fields before attempting to access the data value to avoid any errors.

Field Type Description Conditional
raw_text string Raw METAR text string
icao string ICAO airport code or station indicator
station.name string Station name
location GeoJSON GeoJSON location object
.coordinates array GeoJSON array of coordinates: [longitude, latitude]
.type string GeoJSON object type: "POINT"
observed datetime METAR observed ISODate in UTC
barometer.hg decimal Barometer in inches of mercury
barometer.kpa decimal Barometer in kilopascals
barometer.mb decimal Barometer in millibars
clouds array Array of cloud levels each with the following properties
code string Cloud abbreviation code
text string Cloud description text
feet decimal Base feet above ground level (AGL)
meters decimal Base meters above ground level (AGL)
ceiling.feet decimal Ceiling feet above ground level (AGL)
ceiling.meters decimal Ceiling meters above ground level (AGL)
conditions array Array of conditions levels each with the following properties
code string Condition abbreviation code
text string Condition description text
temperature.celsius integer Temperature in celsius
temperature.fahrenheit integer Temperature in fahrenheit
dewpoint.celsius integer Dewpoint in celsius
dewpoint.fahrenheit integer Dewpoint in fahrenheit
elevation.feet decimal Elevation of weather recording instrument in feet
elevation.meters decimal Elevation of weather recording instrument in meters
humidity.percent integer Humidity percentage
rain.inches integer Rainfall in inches
snow.inches integer Snowfall in inches
visibility.miles string Visibility in miles (Expressed as a string to support values like '1/2 mile')
visibility.miles_float float Visibility in miles
visibility.meters string Visibility in meters (Expressed as a string to support values like '> 9000')
visibility.meters_float float Visibility in meters
wind.degrees integer Wind direction in degrees
wind.speed_kts integer Wind speed in knots
wind.speed_kph integer Wind speed in kilometers per hour
wind.speed_mph integer Wind speed in miles per hour
wind.speed_mps integer Wind speed in meters per second
wind.gust_kts integer Wind gust in knots
wind.gust_kph integer Wind gust in kilometers per hour
wind.gust_mph integer Wind gust in miles per hour
wind.gust_mps integer Wind gust in meters per second
flight_category string One of the following flight category codes:
  • VFR
  • MVFR
  • IFR
  • LIFR
 

/metar/:icao

Method
GET

Returns the latest METAR report for a one or more ICAO codes.

Included in Plans
Basic
Yes
Plus
Yes
Premium
Yes
Parameter Description
icao A single ICAO code or multiple ICAO codes seperated by commas.
Maximum of 20 ICAO codes per request. Search for ICAO codes
Required
Parameter Description
X-API-Key Your unique API key Required

Example


###### single station - raw METAR
curl 'https://api.checkwx.com/metar/KJFK' -H 'X-API-Key: YOUR_API_KEY'

###### multiple stations - raw METAR
curl 'https://api.checkwx.com/metar/KJFK,KLAX,KMIA' -H 'X-API-Key: YOUR_API_KEY'

###### single station - decoded METAR
curl 'https://api.checkwx.com/metar/KJFK/decoded' -H 'X-API-Key: YOUR_API_KEY'

###### multiple stations - decoded METAR
curl 'https://api.checkwx.com/metar/KJFK,KLAX,KMIA/decoded' -H 'X-API-Key: YOUR_API_KEY'

Try it Online

 

/metar/:icao/radius/:radius

Method
GET

Returns one or more METAR reports within a specified radius of a single ICAO code.

The results are sorted based on the distance from the requested ICAO code.

Additional response fields are included in the response data to show the distance and direction from the requested ICAO.

Included in Plans
Basic
Yes
Plus
Yes
Premium
Yes

Additional Response Fields

Field Type Description
radius object Object with the following properties
.from string Base location ICAO
.miles float Distance from base location in miles
.meters float Distance from base location in meters
.bearing integer Bearing from base location (0-360)
.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Parameter Description
icao A single ICAO code. (Multiple ICAO codes are not allowed for this endpoint) Required
radius The surrounding radius in miles from the ICAO code.
250 miles is the maximum radius.
Required
decoded The response data will include decoded METAR key value pairs Optional
Parameter Description
filter=A Filter the results by station type (A, H, G, S, W, O)

A = Airport
H = Heliport
G = Gliderport
S = Seaplane Base
W = Weather Station
O = Other
Optional
Parameter Description
X-API-Key Your unique API key Required

Example


###### single station
curl 'https://api.checkwx.com/metar/KJFK/radius/20' -H 'X-API-Key: YOUR_API_KEY'

###### single station with 'Airport' only filter
curl 'https://api.checkwx.com/metar/KJFK/radius/20?filter=A' -H 'X-API-Key: YOUR_API_KEY'

Try it Online

 

/metar/lat/:latitude/lon/:longitude

Method
GET

Returns a single METAR report nearest to the parameters latitude and longitude.

Additional response fields are included in the response data to show the distance and direction from the requested latitude and longitude.

Included in Plans
Basic
Yes
Plus
Yes
Premium
Yes

Additional Response Fields

Field Type Description
radius object Object with the following properties
.from.latitude float Base location latitude
.from.longitude float Base location longitude
.miles float Distance from base location in miles
.meters float Distance from base location in meters
.bearing integer Bearing from base location (0-360)
.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Parameter Description
latitude The decimal latitude Required
longitude The decimal longitude Required
Parameter Description
filter=A Filter the results by station type (A, H, G, S, W, O)

A = Airport
H = Heliport
G = Gliderport
S = Seaplane Base
W = Weather Station
O = Other
Optional
Parameter Description
X-API-Key Your unique API key Required

Example


# latitude / longitude
curl 'https://api.checkwx.com/metar/lat/40.72/lon/-73.99' -H 'X-API-Key: YOUR_API_KEY'

# latitude / longitude with 'Airport' only filter
curl 'https://api.checkwx.com/metar/lat/40.72/lon/-73.99?filter=A' -H 'X-API-Key: YOUR_API_KEY'

Try it Online

 

/metar/lat/:latitude/lon/:longitude/radius/:radius

Method
GET

Returns one or more METAR reports within a specified radius of the parameters latitude and longitude.

Additional response fields are included in the response data to show the distance and direction from the requested latitude and longitude.

Included in Plans
Basic
No
Plus
Yes
Premium
Yes

Additional Response Fields

Field Type Description
radius object Object with the following properties
.from.latitude float Base location latitude
.from.longitude float Base location longitude
.miles float Distance from base location in miles
.meters float Distance from base location in meters
.bearing integer Bearing from base location (0-360)
.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Parameter Description
latitude The decimal latitude Required
longitude The decimal longitude Required
radius The surrounding radius in miles from the ICAO code.
250 miles is the maximum radius.
Required
Parameter Description
filter=A Filter the results by station type (A, H, G, S, W, O)

A = Airport
H = Heliport
G = Gliderport
S = Seaplane Base
W = Weather Station
O = Other
Optional
Parameter Description
X-API-Key Your unique API key Required

Example


curl 'https://api.checkwx.com/metar/lat/40.72/lon/-73.99/radius/10' -H 'X-API-Key: YOUR_API_KEY'

curl 'https://api.checkwx.com/metar/lat/40.72/lon/-73.99/radius/10?filter=A' -H 'X-API-Key: YOUR_API_KEY'

Try it Online