METAR Weather Observations API - Airport Temperature, Hourly
Pricing
from $2.19 / 1,000 observation returneds
METAR Weather Observations API - Airport Temperature, Hourly
For aviation dashboards, weather-market traders and climate analysts: airport weather by ICAO or IATA code with temperature, dewpoint, wind, pressure, visibility, clouds, flight category and raw METAR, latest or up to 30 days back (KJFK: 772 reports in 30 days). Monitoring returns only new reports.
Pricing
from $2.19 / 1,000 observation returneds
Rating
0.0
(0)
Developer
NeverEmpty
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 minutes ago
Last modified
Categories
Share
Weather observations from airports worldwide, read from the public API of aviationweather.gov (the NOAA / US National Weather Service Aviation Weather Center). Give airport codes, get one row per observation: temperature, dewpoint, humidity, wind, pressure, visibility, clouds, flight category and the original METAR text.
- Any airport that sends METAR reports, by 4-letter ICAO code (
KJFK,EGLL,RJTT) or 3-letter IATA code (JFK,LHR,HND) - The latest report, or every report up to 30 days back (
hoursBackup to 720) - Monitoring mode: run it on a schedule and receive only observations you have not received yet
- No API key, no browser, no scraping of web pages
What a row looks like
{"icaoCode": "KJFK", "iataCode": "JFK", "stationName": "New York/JF Kennedy Intl", "country": "US","observedAt": "2026-09-18T14:51:00.000Z", "reportType": "METAR","temperatureC": 26.1, "temperatureF": 79, "dewpointC": 17.8, "relativeHumidityPct": 60.3,"windDirectionDeg": 10, "windSpeedKt": 12, "windSpeedKmh": 22.2, "windGustKt": null,"visibilityMiles": 10, "visibilityMilesOrMore": true,"altimeterHpa": 1018.7, "altimeterInHg": 30.08, "seaLevelPressureHpa": 1018.5,"cloudCover": "BKN", "ceilingFtAgl": 8000, "flightCategory": "VFR","rawMetar": "METAR KJFK 181451Z 01012KT 10SM SCT020 BKN080 BKN250 26/18 A3008 RMK AO2 SLP185 T02610178 51007"}
Output fields
| Field | |
|---|---|
icaoCode / iataCode / inputCode | the station, and the code you typed |
stationName / country / region | from aviationweather.gov's official station list (region is the state or province code as listed there, e.g. NY, or 13 for Tokyo) |
latitude / longitude / elevationM | station position as given with each report |
observedAt | observation time in UTC (matches the day and time group of the METAR, e.g. 181451Z) |
reportType / isSpecialReport / isCorrection / isAutomated | METAR or SPECI (special report when the weather changes), COR, AUTO |
temperatureC / temperatureF / dewpointC / dewpointF | °C and °F. US stations report tenths of a degree, most others whole degrees |
relativeHumidityPct | computed from temperature and dewpoint (Magnus formula); METAR does not report humidity |
windDirectionDeg / isWindVariable / isCalm | degrees true; null and isWindVariable: true for variable wind (VRB); null and isCalm: true for calm wind (00000KT), so calm is never read as a north wind |
windSpeedKt / windSpeedKmh / windGustKt / windGustKmh | knots as given by aviationweather.gov, and km/h (for stations reporting in m/s, km/h is computed from the original m/s value) |
windUnitInReport / windSpeedInReport / windGustInReport | the unit and numbers in the METAR itself. Stations that report in m/s (Russia, China and others) are converted to knots by aviationweather.gov in whole knots (4 m/s becomes 8 kt), so the original is kept here |
visibilityMiles / visibilityMilesOrMore / visibilityText | statute miles; 10+ and 6+ mean "at least" |
visibilityMeters / visibilityMetersOrMore | for stations that report meters: 9999 and CAVOK are 10,000 m or more. null for stations that report miles |
altimeterHpa / altimeterInHg / seaLevelPressureHpa / pressureTendency3hHpa | pressure |
weather | present weather codes such as -SHRA (light rain showers), BR (mist) |
cloudCover / cloudLayers / ceilingFtAgl / verticalVisibilityFt | cloud layers with base in feet above ground; ceiling = lowest broken or overcast layer (or vertical visibility) |
flightCategory | VFR, MVFR, IFR or LIFR |
maxTemp6hC / minTemp6hC / maxTemp24hC / minTemp24hC | when the station reports them (mostly US stations, at synoptic hours) |
precipLastHourIn / precip3hIn / precip6hIn / precip24hIn / snowDepthIn | inches, when reported. 0.005 means a trace (less than 0.01 inch, reported as P0000), not a measured amount: do not add it up as rain |
rawMetar | the original report |
observationId | stable id of the report (station, time, type and text) |
monitorStatus | monitoring mode only: first-check or new |
requestedHours / scrapedAt | what was asked and when |
Missing readings stay null. A value that is not in the report is never filled with 0. aviationweather.gov's own API specification gives temperature a default of 0, so the temperature is returned only when the METAR text itself has a temperature group and the two agree within 1 °C; otherwise temperature, dewpoint and humidity are null.
Input
{ "airports": ["KJFK", "LHR", "RJTT"], "hoursBack": 24 }
| Input | |
|---|---|
airports | ICAO codes (KJFK) or IATA codes (JFK), one per line or separated by commas. IATA codes are converted with aviationweather.gov's station list; a code that belongs to two stations is not guessed. Up to 500 per run. |
hoursBack | Every report from the last N hours, newest first. 0 = only the latest report. Up to 720 (30 days). |
maxResults | Stop after this many observation rows (monitoring off). Default 1,000. |
monitoringMode | Return only observations not returned by an earlier monitoring run. See below. |
resetMonitoringState | Forget what monitoring remembered. |
useProxy | Retry through a proxy only if aviationweather.gov refuses the connection (HTTP 403). |
Monitoring mode
Schedule the Actor (for example every hour) with monitoringMode: true. The first run returns the hoursBack window as a baseline. Every later run returns only observations that were not returned before: new hourly reports, special reports, and reports that arrived late or were corrected. Rows come oldest first in this mode.
A run that was delayed does not skip anything: each airport is read back to the last observation already returned (up to 30 days). If nothing is new, you get one free no-new-observations row.
Observations are remembered per airport. Do not put the same airport in two schedules that can run at the same time.
Rows that explain instead of guessing (free)
status | when |
|---|---|
no-reports | aviationweather.gov answered that there is no report in the window (HTTP 204). The row says whether the code is in the official station list at all |
invalid-input / unknown-iata-code / ambiguous-iata-code | the code could not be used; nothing was requested for it |
blocked / unreadable / refused | the request failed after retries; the airport is not reported as having no weather |
incomplete | part of a long window could not be read |
duplicate / not-checked / budget-reached / no-new-observations | what was not returned and why |
Reliability and conduct
aviationweather.gov asks clients to send their own User-Agent, to stay under 100 requests per minute, and returns at most 400 reports per request. This Actor sends its own User-Agent, waits between requests, waits 30 seconds after a "too many requests" answer, retries outages, and reads long windows page by page so a 30-day request is not silently cut at 400 reports.
Measured on 2026-09-18: 30 days of KJFK were 772 reports in two requests; five airports on four continents were read twice 20 seconds apart and returned identical reports.
Pricing
- $3.00 per 1,000 observation rows returned
- Monitoring mode: $0.30 per 1,000 airport checks (one check per airport whose reports were read in a run), plus the rows returned
Explanation rows are free. If you set a maximum total charge on the run, the Actor stops before exceeding it and says so in a free row and in the run status.
Data source
Aviation Weather Center, NOAA / National Weather Service: https://aviationweather.gov/api/data/metar and the station list https://aviationweather.gov/data/cache/stations.cache.json.gz. This Actor is not affiliated with NOAA or the National Weather Service. METAR reports are observations for aviation; this data is not an official source for flight planning.