Aviation Weather METAR and TAF Scraper
Pricing
from $2.32 / 1,000 item extracteds
Aviation Weather METAR and TAF Scraper
Fetch current or historical official METAR observations and TAF forecasts by ICAO station, with raw reports, timestamps, and decoded aviation weather fields.
Pricing
from $2.32 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Fetch current or historical official aviation weather METAR and TAF reports by ICAO station from AviationWeather.gov. The Actor exports raw reports, official timestamps, airport coordinates, decoded observation fields, cloud layers, and TAF forecast periods as structured dataset records.
Use it for scheduled airport-weather monitoring, flight-operations dashboards, dispatch research, or one-time weather analysis without maintaining an API client and data pipeline.
What this Actor does
The Actor sends bounded requests to the official AviationWeather.gov Data API. It supports:
- current METAR observations;
- METAR history through a configurable lookback window;
- current TAF forecasts;
- an optional historical archive date;
- one to 50 ICAO stations per run;
- raw and normalized fields in the same record;
- a combined METAR and TAF dataset suitable for exports and integrations.
Each METAR observation and each TAF report becomes one dataset item.
TAF change periods remain nested in forecastPeriods, so consumers can inspect the complete decoded forecast without reconstructing it from the raw text.
Who is it for?
Flight operations teams
Schedule recurring runs for the airports in an operating network and send new dataset records to a dashboard, database, webhook, or alerting workflow.
Dispatchers and flight planners
Retrieve raw reports alongside decoded wind, visibility, cloud, temperature, pressure, and validity fields. Always use approved operational weather products and procedures for safety-critical decisions.
Airport and FBO teams
Collect repeatable station-level snapshots for local operations reviews and weather trend analysis.
Data engineers and researchers
Export normalized observations and forecasts to JSON, CSV, Excel, Google Sheets, a data warehouse, or another Apify integration.
Why use this Actor
- Official source: data comes from the public AviationWeather.gov Data API.
- Raw plus decoded: preserve the authoritative report text while receiving integration-ready fields.
- METAR and TAF together: one input can retrieve both observations and forecasts.
- Historical controls: request a METAR lookback or use the source's archive date parameter.
- Automation ready: use Apify schedules, API calls, webhooks, Make, Zapier, or MCP.
- Low overhead: direct HTTPS requests need no browser and no proxy.
- Bounded retries: transient network, rate-limit, and server failures retry up to three total attempts; deterministic client errors fail immediately.
Data extracted
| Field | Meaning |
|---|---|
reportType | METAR or TAF |
stationId | Four-character ICAO station identifier |
stationName | Airport or station name from the source |
rawReport | Original raw METAR or TAF text |
reportTime | METAR report or TAF bulletin time |
observationTime | METAR observation timestamp |
issueTime | TAF issuance timestamp |
validFrom, validTo | Overall TAF validity window |
latitude, longitude | Station coordinates |
elevationMeters | Station elevation in meters |
temperatureC, dewpointC | Decoded METAR temperatures |
windDirectionDegrees | Wind direction or a source marker such as VRB |
windSpeedKnots, windGustKnots | Decoded wind values |
visibilityStatuteMiles | Decoded prevailing visibility |
altimeterHpa, seaLevelPressureHpa | Pressure values in hectopascals |
weather | Present-weather code when available |
flightCategory | VFR, MVFR, IFR, or LIFR when decoded |
cloudLayers | METAR cloud cover, base, and cloud type |
forecastPeriods | Decoded TAF change periods with wind, visibility, weather, and clouds |
sourceUrl | Exact official API request URL |
retrievedAt | Time this Actor retrieved the record |
Fields that do not apply to a report type are null or an empty array.
For example, a TAF record normally has forecastPeriods but no METAR temperature.
Getting started
- Open the Actor input page.
- Enter one or more four-character ICAO station IDs.
- Select METAR, TAF, or both.
- Keep the default 1.5-hour METAR lookback, or choose a window up to 168 hours.
- Optionally enter a past ISO 8601 date and time for an archive request.
- Set the maximum number of report records.
- Click Start.
- Open the default dataset to inspect, export, or integrate the results.
A useful first input is:
{"stationIds": ["KJFK", "KLAX"],"reportTypes": ["METAR", "TAF"],"metarHours": 1.5,"maxItems": 20}
Input reference
stationIds
Array of one to 50 ICAO station identifiers.
Values are trimmed, converted to uppercase, deduplicated, and validated as exactly four letters or digits.
Examples include KJFK, KLAX, EGLL, and RJTT.
IATA codes such as JFK are not accepted.
reportTypes
Select at least one of:
METARfor observations;TAFfor terminal aerodrome forecasts.
The default retrieves both.
metarHours
Number from 0 through 168. It controls how far back the source searches for METAR observations. It does not alter TAF output. The default is 1.5 hours.
historicalDate
Optional ISO 8601 past date and time, such as 2026-09-01T12:00:00Z.
The Actor passes its normalized UTC value to the official archive parameter for each selected report type.
Archive availability and retention are controlled by AviationWeather.gov.
maxItems
Maximum combined report records stored in the default dataset, from 1 through 5,000. The default is 20. The limit applies across both report types in their selected order.
Example output
A METAR item has this shape:
{"reportType": "METAR","stationId": "KJFK","stationName": "New York/JF Kennedy Intl, NY, US","rawReport": "METAR KJFK 011251Z 24008KT 10SM FEW050 20/12 A3010","reportTime": "2026-09-01T13:00:00.000Z","observationTime": "2026-09-01T12:51:00.000Z","issueTime": null,"validFrom": null,"validTo": null,"temperatureC": 20,"dewpointC": 12,"windDirectionDegrees": 240,"windSpeedKnots": 8,"visibilityStatuteMiles": "10+","flightCategory": "VFR","cloudLayers": [{ "cover": "FEW", "baseFeet": 5000, "type": null }],"forecastPeriods": [],"sourceUrl": "https://aviationweather.gov/api/data/metar?ids=KJFK&format=json&hours=1.5","retrievedAt": "2026-09-01T13:05:00.000Z"}
The exact values change with official source reports. Nulls are retained so downstream schemas remain stable.
How much does it cost to fetch airport weather reports?
This Actor uses pay per event:
- one
startevent per run; - one
itemevent for each METAR observation or TAF forecast saved.
The one-time start price is $0.005. The BRONZE item price is $0.003864 per saved report; the applicable tier is shown before a run starts. You are never charged an item event for an invalid, duplicate, empty, or rejected source row. Infrastructure usage is covered by the Actor's event pricing under the applicable Apify plan.
At BRONZE, estimated totals are $0.008864 for 1 report, $0.04364 for 10 reports, and $0.3914 for 100 reports, including one start event. A current request for five airports and both report types commonly produces around ten records, while a multi-hour METAR lookback can return several observations per station. Set the maximum-reports input to enforce a hard record and charge ceiling.
Monitoring airport observations and forecasts
Create an Apify schedule for the station set you monitor. For example, run every 15 or 30 minutes with:
{"stationIds": ["KJFK", "KBOS", "KIAD", "KATL", "KMIA"],"reportTypes": ["METAR", "TAF"],"metarHours": 1.5,"maxItems": 50}
Send the resulting dataset to a webhook or database.
Use stationId, reportType, and official observation or issue time as a downstream deduplication key.
The Actor intentionally returns the source's current matching records on every run; it does not maintain a cross-run change database.
Historical weather workflow
For recent observation history, increase metarHours.
For a source archive point, supply historicalDate.
Historical requests are best used for:
- incident timelines;
- airport conditions around an operational event;
- model or dashboard backfills;
- comparison of forecast issuance with later observations.
The source determines historical retention and which stations have records. A valid request can therefore return zero records.
Exports and integrations
From the dataset page, export results as JSON, CSV, Excel, XML, RSS, or JSON Lines. You can also:
- connect an Apify schedule to a webhook;
- send records to Google Sheets;
- use Make or Zapier for alerts;
- load data through the dataset API;
- trigger downstream Actors;
- ingest report records into a warehouse or time-series database.
For stable downstream keys, combine reportType, stationId, and the applicable official timestamp.
Do not use retrievedAt as the identity of the source report.
Run through the Apify API
Replace YOUR_TOKEN with an Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~aviation-weather-metar-taf-scraper/runs?token=YOUR_TOKEN&waitForFinish=120" \-H "Content-Type: application/json" \-d '{"stationIds":["KJFK"],"reportTypes":["METAR","TAF"],"maxItems":10}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/aviation-weather-metar-taf-scraper').call({stationIds: ['KJFK', 'KLAX'],reportTypes: ['METAR', 'TAF'],metarHours: 1.5,maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_TOKEN')run = client.actor('automation-lab/aviation-weather-metar-taf-scraper').call(run_input={'stationIds': ['EGLL', 'RJTT'],'reportTypes': ['TAF'],'maxItems': 10,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Claude Code
Add the Actor to Claude Code through Apify MCP:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/aviation-weather-metar-taf-scraper"
Claude Desktop
Use this JSON configuration in Claude Desktop:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/aviation-weather-metar-taf-scraper"}}}
Cursor and VS Code
Use the same HTTP MCP server URL in Cursor or VS Code's MCP server settings. Name the server apify and keep the Actor-specific tools query parameter shown above.
Example prompts
- "Fetch the latest METAR and TAF for KJFK and summarize material operational conditions."
- "Get six hours of METAR observations for EGLL and return the timestamps and raw reports."
- "Retrieve the current TAF for KLAX and list every forecast change period."
AI-generated summaries are not authoritative aviation weather products. Keep the source records and apply qualified review for operational use.
Limits and reliability
- AviationWeather.gov controls data availability, retention, decoding, and rate limits.
- The Actor accepts station IDs, not airport-name search or three-character IATA codes.
- A station may issue METAR but not TAF, or may have no report in the requested window.
- HTTP 204 from the source is treated as a valid empty result.
- Transient network errors, HTTP 429, and HTTP 5xx retry with bounded backoff.
- Stable HTTP 4xx errors, malformed JSON, and unexpected content types fail the run.
- Requests time out after 30 seconds per attempt.
- The Actor does not use a browser, proxy, credentials, or a hidden data provider.
maxItemsstops saved output but is not a source-side pagination control.
Legality and responsible aviation use
AviationWeather.gov provides public government weather data, but users remain responsible for complying with source terms, applicable law, and Apify policies. Do not use this Actor to collect restricted or personal information.
Weather output may be delayed, missing, amended, superseded, or decoded differently from an approved operational display. This Actor is a data automation tool, not a certified flight-planning or weather-briefing service. For flight decisions, use authorized sources, current official briefings, applicable regulations, and qualified aviation personnel.
Troubleshooting
Why did the run return no records?
Confirm that every value is a four-character ICAO code and that the station issues the selected report type. Reduce the historical constraints or test a current report. A source HTTP 204 means no matching official records were available.
Why was my input rejected?
Three-character IATA codes such as JFK are invalid.
Use KJFK instead.
The Actor also rejects more than 50 stations, future archive dates, empty report types, and out-of-range limits.
Why are some fields null?
METAR and TAF have different field sets, and individual reports omit optional phenomena.
Use reportType to interpret each row and retain rawReport when exact source text matters.
What should I do after a rate-limit or server error?
The Actor already retries eligible failures three times. If all attempts fail, wait before retrying the run and check the AviationWeather.gov service status. Do not start many identical concurrent tasks for the same station set.
Related Automation Lab Actors
- FAA NAS Status & Airport Delays Scraper — combine official delay advisories with airport weather records.
- Ryanair Flight Fares and Cheapest Routes Scraper — monitor fare and route data for a separate commercial aviation workflow.
These Actors provide different records and are not weather substitutes.
FAQ
Does it support airports outside the United States?
Yes, when AviationWeather.gov exposes records for the supplied ICAO station.
Examples include EGLL and RJTT.
Coverage is source-controlled and can vary by report type.
Can it fetch METAR and TAF in one run?
Yes.
Keep both values in reportTypes; each report is stored as a separate typed dataset item.
Can it monitor changes automatically?
Use an Apify schedule to run repeatedly and compare official report timestamps downstream. The Actor returns source records; it does not send alerts or persist a cross-run change ledger itself.
Is raw report text included?
Yes.
Every accepted dataset item contains rawReport alongside decoded fields.
Does it need an API key or proxy?
No source API key or proxy is required. An Apify account and token are required when starting it through the Apify API.
Is the output safe for flight decisions?
Do not treat this Actor as a certified briefing product. Use approved operational sources and procedures for safety-critical decisions.