Aviation Weather METAR and TAF Scraper avatar

Aviation Weather METAR and TAF Scraper

Pricing

from $2.32 / 1,000 item extracteds

Go to Apify Store
Aviation Weather METAR and TAF Scraper

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

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

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

FieldMeaning
reportTypeMETAR or TAF
stationIdFour-character ICAO station identifier
stationNameAirport or station name from the source
rawReportOriginal raw METAR or TAF text
reportTimeMETAR report or TAF bulletin time
observationTimeMETAR observation timestamp
issueTimeTAF issuance timestamp
validFrom, validToOverall TAF validity window
latitude, longitudeStation coordinates
elevationMetersStation elevation in meters
temperatureC, dewpointCDecoded METAR temperatures
windDirectionDegreesWind direction or a source marker such as VRB
windSpeedKnots, windGustKnotsDecoded wind values
visibilityStatuteMilesDecoded prevailing visibility
altimeterHpa, seaLevelPressureHpaPressure values in hectopascals
weatherPresent-weather code when available
flightCategoryVFR, MVFR, IFR, or LIFR when decoded
cloudLayersMETAR cloud cover, base, and cloud type
forecastPeriodsDecoded TAF change periods with wind, visibility, weather, and clouds
sourceUrlExact official API request URL
retrievedAtTime 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

  1. Open the Actor input page.
  2. Enter one or more four-character ICAO station IDs.
  3. Select METAR, TAF, or both.
  4. Keep the default 1.5-hour METAR lookback, or choose a window up to 168 hours.
  5. Optionally enter a past ISO 8601 date and time for an archive request.
  6. Set the maximum number of report records.
  7. Click Start.
  8. 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:

  • METAR for observations;
  • TAF for 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 start event per run;
  • one item event 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 ApifyClient
client = 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().items
print(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.
  • maxItems stops 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.

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.