Airport METAR & TAF Weather avatar

Airport METAR & TAF Weather

Pricing

from $1.05 / 1,000 weather reports

Go to Apify Store
Airport METAR & TAF Weather

Airport METAR & TAF Weather

Live and historical aviation weather for any airport: decoded METAR observations (7 days back), TAF forecasts, pilot reports (PIREPs) and SIGMET/G-AIRMET hazard advisories by ICAO code, from NOAA's Aviation Weather Center API. Wind, visibility, turbulence and icing, as clean JSON.

Pricing

from $1.05 / 1,000 weather reports

Rating

0.0

(0)

Developer

Tabulary

Tabulary

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

What does Airport METAR & TAF Weather do?

It returns live and historical aviation weather for any airport: decoded METAR observations (the latest report, or every report from up to 7 days back), the current TAF forecast, nearby PIREPs (pilot reports of turbulence, icing and more) and active SIGMET, international SIGMET and G-AIRMET hazardous-weather advisories, looked up by ICAO airport code. The data comes from NOAA's official Aviation Weather Center API, and every report is turned into clean JSON with wind, visibility, clouds, flight category, turbulence, icing and hazard areas, plus the raw report text. Pilots, flight schools, dispatchers, drone operators, airline and logistics teams, developers and AI agents use it for dashboards, flight planning tools and weather history. No API key needed.

What you get

  • One row per METAR, TAF, PIREP, SIGMET or G-AIRMET report, for up to 100 airports per run.
  • Temperature and dewpoint (°C), wind direction, speed and gusts (knots), visibility (statute miles), altimeter (hPa) and cloud layers with their bases.
  • Flight category (VFR, MVFR, IFR, LIFR) for METARs.
  • TAF forecast periods with their own wind, visibility, weather and clouds.
  • Pilot reports (PIREPs) near each airport: aircraft type, flight level and phase, and any reported turbulence or icing layers, with intensity and type.
  • Active SIGMET (including international SIGMET) and G-AIRMET hazard advisories: hazard type, qualifier/severity, altitude range, movement and the affected area or line.
  • The raw report text, the station name, latitude, longitude and elevation (where applicable).
  • History: every METAR from the last 1 to 168 hours, newest first.
  • Export as JSON, CSV or Excel, send to Google Sheets or a webhook, or call it as a tool from AI agents through the Apify MCP server.

How much does it cost?

You pay per weather report saved, with no monthly fee: $1.50 per 1,000 weather reports on Apify's free plan, and 10–40% less on paid Apify plans. Each run also costs $0.001 to start. Apify's free plan includes $5 of credit every month, enough for about 3,300 weather reports. Prices as of October 2026; the price shown on this page is the one that applies.

UseWeather reportsCost on the free plan
Current METAR and TAF for 10 airports20about $0.03
24 hours of METAR history for 5 airportsabout 120–240about $0.20–0.36
Hourly METAR and TAF for 3 airports for a monthabout 4,300about $7.20 with run starts
PIREPs and hazard advisories (SIGMET + G-AIRMET) for 2 airportsabout 150–250about $0.23–0.38

Set Maximum cost per run to cap any run; the Actor stops cleanly at the cap and keeps everything it saved.

Ready-made inputs

Paste one of these into the JSON input tab, or set the same fields in the form.

Current conditions and forecasts for three US hubs · open this example

{ "stations": "KJFK,KLAX,KORD", "includeTaf": true }

The last 24 hours of observations at London Heathrow and Gatwick · open this example

{ "stations": "EGLL,EGKK", "hoursBack": 24, "includeTaf": false }

A week of weather history for one airfield (training, incident review, analysis) · open this example

{ "stations": "KBOS", "hoursBack": 168, "includeTaf": false }

Pilot reports and hazard advisories near two airports (turbulence, icing, SIGMET and G-AIRMET) · open this example

{ "stations": "KJFK,KORD", "includeTaf": false, "includePireps": true, "includeHazards": true }

Input

FieldTypeDefaultDescription
stationsstringrequiredComma- or space-separated 4-letter ICAO codes, e.g. KJFK, EGLL, EDDF. Up to 100 per run.
includeTafbooleantrueAlso fetch the current TAF forecast for each airport, saved as a separate row.
hoursBackinteger00 returns the latest METAR per airport. Up to 168 (7 days) returns every METAR in that period.
includePirepsbooleanfalseAlso fetch pilot reports (PIREPs) near each airport. Limited to the first 25 airports per run.
pirepRadiusSminteger200Search radius around each airport for PIREPs, in statute miles. Only used when includePireps is on.
pirepHoursBackinteger3How many hours of PIREPs to fetch around each airport (1–24). Only used when includePireps is on.
includeHazardsbooleanfalseAlso fetch every currently active SIGMET (including international SIGMETs, worldwide) and G-AIRMET (contiguous United States) hazard advisory. These cover regions and flight information areas, not single airports, so this one set of advisories is the same regardless of which stations you list.

ICAO codes are 4 letters: US airports add a K to the 3-letter code (JFK is KJFK), and UK codes start with EG. Three-letter IATA codes are not accepted.

Output

One dataset item per report. All report types (METAR, TAF, PIREP, SIGMET, G-AIRMET) share the same set of fields; fields that don't apply to a given report type are null. A real METAR from a test run on 13 October 2026:

{
"icaoId": "KJFK",
"stationName": "New York/JF Kennedy Intl, NY, US",
"reportType": "metar",
"issuedAt": "2026-10-13T21:00:00.000Z",
"validFrom": null,
"validTo": null,
"rawText": "METAR KJFK 132051Z 17013G19KT 10SM FEW016 FEW030 SCT220 19/17 A2990 RMK AO2 SLP125 T01940167 56022",
"tempC": 19.4,
"dewpointC": 16.7,
"windDirDeg": 170,
"windSpeedKt": 13,
"windGustKt": 19,
"visibilitySm": "10+",
"altimeterHpa": 1012.6,
"flightCategory": "VFR",
"clouds": [{ "cover": "FEW", "base": 1600 }, { "cover": "FEW", "base": 3000 }, { "cover": "SCT", "base": 22000 }],
"forecastPeriods": null,
"latitude": 40.6392,
"longitude": -73.7639,
"elevationM": 3
}

TAF items use reportType: "taf", fill validFrom and validTo (the forecast's valid period) and forecastPeriods (an array of

{ from, to, windDirDeg, windSpeedKt, windGustKt, visibilitySm, altimeterHpa, weather, clouds }
), and leave the METAR-only fields (tempC, dewpointC, flightCategory and so on) as null.

A real PIREP from a test run on 24 October 2026, showing light chop turbulence reported by a regional jet near New York (icing uses the same shape as turbulence when a pilot reports icing instead):

{
"icaoId": "KWBC",
"reportType": "pirep",
"issuedAt": "2026-10-24T03:35:00.000Z",
"rawText": "DEN UA /OV 20N/TM 0335/FL160/TP CRJ2/TB OCNL LGT CHOP",
"latitude": 41.9853,
"longitude": -73.9643,
"aircraftType": "CRJ2",
"flightLevelFt": 16000,
"flightPhase": "OTHER",
"turbulence": [{ "base": null, "top": null, "intensity": "LGT", "type": "CHOP", "frequency": "OCNL" }],
"icing": null
}

(icaoId on a PIREP is the issuing weather office, not the airport you searched near; use latitude/longitude for the report's actual position.)

SIGMET and G-AIRMET items use reportType: "sigmet" or "gairmet" and describe a hazard over an area or line rather than a point: hazardType (e.g. TURB, ICE, VA, IFR), qualifier (severity or a short description), altitudeBaseFt/altitudeTopFt, and area (

{ geom: "AREA" | "LINE", coords: [{ lat, lon }, ...] }
). A real international SIGMET from the same test run (coordinates trimmed here for length; the live Actor returns the full polygon):

{
"icaoId": "RJTD",
"stationName": "RJJJ FUKUOKA",
"reportType": "sigmet",
"issuedAt": "2026-10-24T00:10:00.000Z",
"validFrom": "2026-10-24T00:10:00.000Z",
"validTo": "2026-10-24T06:10:00.000Z",
"rawText": "WVJP31 RJTD 240010\nRJJJ SIGMET G01 VALID 240010/240610 RJTD-\nRJJJ FUKUOKA FIR VA ERUPTION MT SAKURAJIMA (AIRA CALDERA) PSN N3136\nE13039 VA CLD OBS AT 2355Z ABV FL050 MOV N=",
"hazardType": "VA",
"qualifier": "ERUPTION MT SAKURAJIMA (AIRA CALDERA)",
"firId": "RJJJ",
"advisoryId": "G01",
"subType": "OBS",
"area": { "geom": "AREA", "coords": [{ "lon": 130.65, "lat": 32.433 }, { "lon": 130.82, "lat": 32.421 }] }
}

Use it from AI agents

Add the Actor to Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server (https://mcp.apify.com?tools=tabulary/airport-weather-metar-taf). Ask in plain language, for example: "What are the current conditions and forecast at Denver and Salt Lake City airports?" The agent fills in the input and gets structured reports back.

Use it from code

curl -X POST "https://api.apify.com/v2/acts/tabulary~airport-weather-metar-taf/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"stations": "KSFO,KSEA", "hoursBack": 6}'

The same works with the Apify Python and JavaScript clients. See the API tab for details.

Data source and limits

  • Source: NOAA's official Aviation Weather Center data API at aviationweather.gov/data/api, no API key required. See the weather.gov disclaimer for terms of use.
  • Coverage is worldwide for airports that publish METAR and TAF reports; small airfields may have METARs but no TAF.
  • PIREPs are searched by radius around each airport, not filed by airport, so coverage depends on how much nearby traffic has filed a report recently; many quiet periods and remote airports will return none. SIGMETs (including international SIGMETs) are issued per flight information region worldwide; G-AIRMETs cover only the contiguous United States.
  • If an airport has no report (for example an unmanned or inactive station), it is skipped. No fake or estimated data is returned.
  • The Actor sends at most about one request per second and identifies itself.
  • Not for operational flight planning: always check official briefings before flight.
  • No personal data: all data is public aviation weather for airport locations.

Other Tabulary tools

Clean data from official and public sources, priced per result:

FAQ

Is this data official? Yes. It comes from NOAA's public Aviation Weather Center API, unchanged except for field names, number formatting and ISO 8601 timestamps.

How fresh is it? Every run fetches live data. METARs are usually issued hourly (more often in changing weather, as SPECI reports); TAFs usually every 6 hours.

Why are there more than 24 METARs a day for some airports? Stations issue extra reports when the weather changes quickly, and some busy airports report every 30 minutes.

What is the difference between METAR and TAF? A METAR is an observation of what the weather is now. A TAF is a forecast for the next 24 to 30 hours around the airport.

What is a PIREP? A pilot report: an observation an aircraft crew radios in, most often about turbulence, icing or cloud tops, which ground stations relay into the official feed. Coverage depends entirely on which aircraft happened to report nearby and recently.

What is the difference between a SIGMET and a G-AIRMET? Both are official hazard advisories. A SIGMET (including international SIGMETs) warns of a specific significant hazard — severe turbulence, icing, volcanic ash, thunderstorms — over a defined area or line, worldwide. A G-AIRMET is a wider, routine forecast of less severe but still operationally significant hazards (icing, turbulence, IFR conditions, mountain obscuration, etc.) issued every few hours for the contiguous United States.

What if I enter an invalid code? The run fails with a clear message listing the invalid codes.

Something broke? Open an issue on the Issues tab. The Actor is tested daily.

Changelog

  • 2026-10-24: Pilot reports (PIREPs, includePireps) near each airport, and worldwide SIGMET/international-SIGMET and contiguous-US G-AIRMET hazard advisories (includeHazards).
  • 2026-10-21: METAR history up to 7 days back (hoursBack), ready-made inputs.
  • 2026-10-15: the airport code field is shown as required to AI agents.
  • 2026-10-13: first version: current METAR and TAF for up to 100 airports.

About Tabulary

This tool is part of Tabulary: clean tables from official public sources. Every Tabulary tool uses the source's official API or open data where one exists, collects no personal data, and is tested on Apify every day. Questions or ideas? Open an issue on the Issues tab.