METAR Airport Weather API: Decoded Aviation Observations avatar

METAR Airport Weather API: Decoded Aviation Observations

Pricing

from $1.00 / 1,000 observations

Go to Apify Store
METAR Airport Weather API: Decoded Aviation Observations

METAR Airport Weather API: Decoded Aviation Observations

Decoded METAR and SPECI airport weather observations for any ICAO station (KJFK, EGLL...): temperature, dew point, wind, visibility, cloud layers, ceiling, flight category and raw METAR, up to 72 hours back. Data from NOAA / NWS Aviation Weather Center. Not for flight planning.

Pricing

from $1.00 / 1,000 observations

Rating

0.0

(0)

Developer

Aerion

Aerion

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

METAR Aviation Weather Observations

Get decoded METAR airport weather for any list of ICAO station codes (e.g. KJFK, KLAX, EGLL) as clean rows: temperature, dew point, wind, visibility, cloud layers, ceiling and VFR/IFR flight category, with the unaltered raw METAR text on every row. Data comes from the NOAA / NWS Aviation Weather Center Data API, worldwide where reports exist, looking back up to 72 hours. Stations with no report are not charged. Not for flight planning or navigation.

What does METAR Aviation Weather Observations do?

Give it a list of 4-character ICAO station IDs (for example KJFK, KLAX, EGLL) and it returns one row per METAR / SPECI weather observation published by the NOAA / National Weather Service Aviation Weather Center Data API: station, observation time, temperature, dew point, wind, visibility, cloud layers, ceiling, flight category and the unaltered raw METAR text. Coverage is worldwide wherever the source has reports. Typical uses: weather features for data pipelines, monitoring a fixed list of airports, or looking back up to 72 hours per run.

How fresh is the data? Most stations report once per hour, plus special reports (SPECI) when conditions change. The Actor returns what the source has published at the time of the run. This Actor looks back at most 72 hours (hoursBack); the source itself keeps about 30 days. Stations without a report in the chosen time window are skipped and not charged; when other stations in the same request do return reports, the skipped ones are listed in the run log (the first 20).

How much does it cost?

This Actor uses pay-per-event pricing: a small fee per run start and a fee per observation saved to the dataset.

EventWhenPrice (USD)
observationone observation row saved to the dataset0.001
Actor startcharged by the platform when a run starts0.00005

Runs that find no data or fail before saving anything charge no observation events. Set Maximum results (maxItems) or a run spending limit to cap your cost; the Actor stops cleanly and keeps the results collected so far.

Input

FieldTypeDescription
stationIdsarray of stringsRequired. 4-character ICAO station IDs (1-500). Requested in batches of up to 50 stations.
hoursBackintegerOptional, 1-72. Hours of past reports to request. Empty = source default window (about 1.5 hours).
latestOnlybooleanDefault true: only the newest report per station. Set false to get every report in the window.
maxItemsintegerStop after this many observations (default 100, max 10000).

Example input:

{ "stationIds": ["KJFK", "KLAX", "KORD"], "hoursBack": 3, "latestOnly": false, "maxItems": 100 }

Output

Each observation is one record in the dataset. Example (from a local test run on saved source data):

{
"stationId": "KATL",
"stationName": "Atlanta/Hartsfield-Jackson Intl, GA, US",
"latitude": 33.6297,
"longitude": -84.4422,
"elevationM": 309,
"reportType": "METAR",
"observationTime": "2026-10-09T14:52:00.000Z",
"reportTime": "2026-10-09T15:00:00.000Z",
"temperatureC": 20.6,
"dewpointC": 16.1,
"windDirectionDeg": 80,
"windVariable": false,
"windSpeedKt": 14,
"windGustKt": 22,
"visibility": "10+",
"visibilityMiles": 10,
"visibilityAtLeast": true,
"altimeterHpa": 1021.1,
"seaLevelPressureHpa": 1020.2,
"weather": null,
"skyCover": "OVC",
"clouds": [{ "cover": "SCT", "baseFtAgl": 18000, "type": null }, { "cover": "OVC", "baseFtAgl": 21000, "type": null }],
"verticalVisibilityFt": null,
"ceilingFtAgl": 21000,
"flightCategory": "VFR",
"rawMetar": "METAR KATL 091452Z 08014G22KT 10SM SCT180 OVC210 21/16 A3015 RMK AO2 SLP202 VIRGA OHD-ALQDS T02060161 51010",
"source": "NOAA / National Weather Service Aviation Weather Center",
"notice": "Decoded fields are reformatted from the source by this Actor (ceilingFtAgl is derived); rawMetar is the unaltered report. Not official government material; no endorsement by NOAA or the National Weather Service.",
"scrapedAt": "2026-10-09T15:52:30.736Z"
}

Units are the source's: temperature in degrees Celsius, wind in knots, visibility in statute miles, pressure in hectopascals, cloud bases and ceiling in feet above ground, elevation in meters. Times are UTC. Missing values are null (for example when an automated station does not report visibility).

What we change and what we do not:

  • rawMetar is the report text exactly as published.
  • Decoded values are passed through as published by the source; we only reformat them (epoch time to ISO 8601, vertical visibility from hundreds of feet to feet, visibility text split into number + "at least" flag).
  • ceilingFtAgl is derived by this Actor (lowest broken, overcast or obscured layer). flightCategory comes from the source.

Every run also writes a RUN_SUMMARY record (counts, success rate, why the run stopped) and an errors dataset with one row per problem (no personal data, no stack traces).

Data source and license

Data source: Aviation Weather Center (AWC), National Weather Service (NWS), NOAA. This Actor reformats the data and is not an official NWS product. Not affiliated with or endorsed by NOAA or the NWS.

The NWS allows its information to be used as long as it is not claimed as your own, not used in a way that implies endorsement by or affiliation with NOAA/NWS, and not modified and then presented as official government material. For official aviation weather, use the official dissemination systems. The Actor makes at most about 1 request per second (the source allows 100 per minute), batches up to 50 stations per request, and identifies itself with its own User-Agent.

Limitations

  • Not for flight planning or navigation; not an official weather briefing.
  • Only 4-character ICAO station IDs; no search by state, country or map area in this version.
  • The source returns at most 400 reports per request; long hoursBack windows use smaller batches, and a warning is logged if a response reaches the limit.
  • History: at most 72 hours back per run (hoursBack); older reports are not available through this Actor.
  • Values the source does not decode (for example some remarks) appear only in rawMetar.
  • TAF forecasts are not included.
  • Station IDs with a valid format that the source does not know return no rows and are not charged. If no requested station has a report, the run ends with 0 results and the log does not list the stations.

Support

Found a problem or need a field? Open an issue in the Issues tab of this Actor. We aim to respond within 48 hours.


This Actor was developed with AI assistance and is covered by automated tests.