SourceFinch Verified · Weather observations & forecasts
Current aviation weather observations
Reads the publisher-recommended complete current METAR cache, one latest report per station keyed by station_id. Retains the complete raw report alongside parsed meteorological measurements. Visibility and wind direction remain publisher text so values such as
- Failing · 23.8% of observed runs successful
- United States; global aviation observations
- Publisher's public bulk file or feed
- 28 typed fields
At a glance
- Jurisdiction
- United States; global aviation observations
- Publisher updates
- Publisher updates current data; monitor hourly
- SourceFinch checks
- Hourly by default
- Records per run
- 5,034 in the latest run
- Record key
station_id- Acquired from
- Publisher's public bulk file or feed:
https://aviationweather.gov/data/cache/metars.cache.xml.gz - Recipe
- v1.0.0, approved October 6, 2026
- Verified since
- October 6, 2026
- Last green run
- October 7, 2026
What the data contains
Reads the publisher-recommended complete current METAR cache, one latest report per station keyed by station_id. Retains the complete raw report alongside parsed meteorological measurements. Visibility and wind direction remain publisher text so values such as 6+ and VRB are not changed into misleading numbers. Changes update the station record; departure from the current cache is not a station closure or deletion. This is an observed snapshot, not a historical backfill. SourceFinch does not provide flight planning or navigation advice.
Fields and types
Every record has these fields. The key field station_id identifies a record across runs, so changes are reported field by field.
| Field | Type | Description |
|---|---|---|
station_idkey | string | Publisher station_id; retained without product-specific enrichment. |
raw_text | string | Publisher raw_text; retained without product-specific enrichment. |
observation_time | datetime | Publisher observation_time; retained without product-specific enrichment. |
latitude | number, nullable | Publisher latitude; retained without product-specific enrichment. |
longitude | number, nullable | Publisher longitude; retained without product-specific enrichment. |
temp_c | number, nullable | Publisher temp_c; retained without product-specific enrichment. |
dewpoint_c | number, nullable | Publisher dewpoint_c; retained without product-specific enrichment. |
wind_dir_degrees | string, nullable | Publisher wind_dir_degrees; retained without product-specific enrichment. |
wind_speed_kt | number, nullable | Publisher wind_speed_kt; retained without product-specific enrichment. |
wind_gust_kt | number, nullable | Publisher wind_gust_kt; retained without product-specific enrichment. |
visibility_statute_mi | string, nullable | Publisher visibility_statute_mi; retained without product-specific enrichment. |
altim_in_hg | string, nullable | Publisher altim_in_hg; retained without product-specific enrichment. |
sea_level_pressure_mb | string, nullable | Publisher sea_level_pressure_mb; retained without product-specific enrichment. |
wx_string | string, nullable | Publisher wx_string; retained without product-specific enrichment. |
flight_category | string, nullable | Publisher flight_category; retained without product-specific enrichment. |
three_hr_pressure_tendency_mb | string, nullable | Publisher three_hr_pressure_tendency_mb; retained without product-specific enrichment. |
maxT_c | string, nullable | Publisher maxT_c; retained without product-specific enrichment. |
minT_c | string, nullable | Publisher minT_c; retained without product-specific enrichment. |
maxT24hr_c | string, nullable | Publisher maxT24hr_c; retained without product-specific enrichment. |
minT24hr_c | string, nullable | Publisher minT24hr_c; retained without product-specific enrichment. |
precip_in | string, nullable | Publisher precip_in; retained without product-specific enrichment. |
pcp3hr_in | string, nullable | Publisher pcp3hr_in; retained without product-specific enrichment. |
pcp6hr_in | string, nullable | Publisher pcp6hr_in; retained without product-specific enrichment. |
pcp24hr_in | string, nullable | Publisher pcp24hr_in; retained without product-specific enrichment. |
snow_in | string, nullable | Publisher snow_in; retained without product-specific enrichment. |
vert_vis_ft | string, nullable | Publisher vert_vis_ft; retained without product-specific enrichment. |
metar_type | string, nullable | Publisher metar_type; retained without product-specific enrichment. |
elevation_m | string, nullable | Publisher elevation_m; retained without product-specific enrichment. |
Sample output
The first 5 of 5,034 records from SourceFinch's own run on October 7, 2026, exactly as delivered.
| Field | Record 1 | Record 2 | Record 3 | Record 4 | Record 5 |
|---|---|---|---|---|---|
station_id | KQFU | KQEQ | KQFV | KQEP | KQEW |
raw_text | METAR KQFU 070310Z AUTO 14001KT 9999 CLR 23/06 A3024 RMK A02 TSNO | METAR KQEQ 070310Z AUTO 29002KT 9999 CLR 21/08 A3024 RMK A02 TSNO | METAR KQFV 070310Z AUTO 11004KT 9999 CLR 21/04 A3022 RMK A02 TSNO | METAR KQEP 070310Z AUTO 36002KT 9999 CLR 21/07 A3022 RMK A02 TSNO | METAR KQEW 070310Z AUTO 22002KT 9999 // CLR 23/05 A3018 RMK A02 TSNO |
observation_time | 2026-10-07T03:10:00.000Z | 2026-10-07T03:10:00.000Z | 2026-10-07T03:10:00.000Z | 2026-10-07T03:10:00.000Z | 2026-10-07T03:10:00.000Z |
latitude | -99.99 | -99.99 | -99.99 | -99.99 | -99.99 |
longitude | -99.99 | -99.99 | -99.99 | -99.99 | -99.99 |
temp_c | 23 | 21 | 21 | 21 | 23 |
dewpoint_c | 6 | 8 | 4 | 7 | 5 |
wind_dir_degrees | 140 | 290 | 110 | 360 | 220 |
wind_speed_kt | 1 | 2 | 4 | 2 | 2 |
wind_gust_kt | — | — | — | — | — |
visibility_statute_mi | 6+ | 6+ | 6+ | 6+ | 6+ |
altim_in_hg | 30.24 | 30.24 | 30.22 | 30.22 | 30.18 |
sea_level_pressure_mb | — | — | — | — | — |
wx_string | — | — | — | — | — |
flight_category | VFR | VFR | VFR | VFR | VFR |
three_hr_pressure_tendency_mb | — | — | — | — | — |
maxT_c | — | — | — | — | — |
minT_c | — | — | — | — | — |
maxT24hr_c | — | — | — | — | — |
minT24hr_c | — | — | — | — | — |
precip_in | — | — | — | — | — |
pcp3hr_in | — | — | — | — | — |
pcp6hr_in | — | — | — | — | — |
pcp24hr_in | — | — | — | — | — |
snow_in | — | — | — | — | — |
vert_vis_ft | — | — | — | — | — |
metar_type | METAR | METAR | METAR | METAR | METAR |
elevation_m | 9999 | 9999 | 9999 | 9999 | 9999 |
Sample as JSON
[
{
"maxT_c": null,
"minT_c": null,
"temp_c": 23,
"snow_in": null,
"latitude": -99.99,
"raw_text": "METAR KQFU 070310Z AUTO 14001KT 9999 CLR 23/06 A3024 RMK A02 TSNO",
"longitude": -99.99,
"pcp3hr_in": null,
"pcp6hr_in": null,
"precip_in": null,
"wx_string": null,
"dewpoint_c": 6,
"maxT24hr_c": null,
"metar_type": "METAR",
"minT24hr_c": null,
"pcp24hr_in": null,
"station_id": "KQFU",
"altim_in_hg": "30.24",
"elevation_m": "9999",
"vert_vis_ft": null,
"wind_gust_kt": null,
"wind_speed_kt": 1,
"flight_category": "VFR",
"observation_time": "2026-10-07T03:10:00.000Z",
"wind_dir_degrees": "140",
"sea_level_pressure_mb": null,
"visibility_statute_mi": "6+",
"three_hr_pressure_tendency_mb": null
},
{
"maxT_c": null,
"minT_c": null,
"temp_c": 21,
"snow_in": null,
"latitude": -99.99,
"raw_text": "METAR KQEQ 070310Z AUTO 29002KT 9999 CLR 21/08 A3024 RMK A02 TSNO",
"longitude": -99.99,
"pcp3hr_in": null,
"pcp6hr_in": null,
"precip_in": null,
"wx_string": null,
"dewpoint_c": 8,
"maxT24hr_c": null,
"metar_type": "METAR",
"minT24hr_c": null,
"pcp24hr_in": null,
"station_id": "KQEQ",
"altim_in_hg": "30.24",
"elevation_m": "9999",
"vert_vis_ft": null,
"wind_gust_kt": null,
"wind_speed_kt": 2,
"flight_category": "VFR",
"observation_time": "2026-10-07T03:10:00.000Z",
"wind_dir_degrees": "290",
"sea_level_pressure_mb": null,
"visibility_statute_mi": "6+",
"three_hr_pressure_tendency_mb": null
},
{
"maxT_c": null,
"minT_c": null,
"temp_c": 21,
"snow_in": null,
"latitude": -99.99,
"raw_text": "METAR KQFV 070310Z AUTO 11004KT 9999 CLR 21/04 A3022 RMK A02 TSNO",
"longitude": -99.99,
"pcp3hr_in": null,
"pcp6hr_in": null,
"precip_in": null,
"wx_string": null,
"dewpoint_c": 4,
"maxT24hr_c": null,
"metar_type": "METAR",
"minT24hr_c": null,
"pcp24hr_in": null,
"station_id": "KQFV",
"altim_in_hg": "30.22",
"elevation_m": "9999",
"vert_vis_ft": null,
"wind_gust_kt": null,
"wind_speed_kt": 4,
"flight_category": "VFR",
"observation_time": "2026-10-07T03:10:00.000Z",
"wind_dir_degrees": "110",
"sea_level_pressure_mb": null,
"visibility_statute_mi": "6+",
"three_hr_pressure_tendency_mb": null
},
{
"maxT_c": null,
"minT_c": null,
"temp_c": 21,
"snow_in": null,
"latitude": -99.99,
"raw_text": "METAR KQEP 070310Z AUTO 36002KT 9999 CLR 21/07 A3022 RMK A02 TSNO",
"longitude": -99.99,
"pcp3hr_in": null,
"pcp6hr_in": null,
"precip_in": null,
"wx_string": null,
"dewpoint_c": 7,
"maxT24hr_c": null,
"metar_type": "METAR",
"minT24hr_c": null,
"pcp24hr_in": null,
"station_id": "KQEP",
"altim_in_hg": "30.22",
"elevation_m": "9999",
"vert_vis_ft": null,
"wind_gust_kt": null,
"wind_speed_kt": 2,
"flight_category": "VFR",
"observation_time": "2026-10-07T03:10:00.000Z",
"wind_dir_degrees": "360",
"sea_level_pressure_mb": null,
"visibility_statute_mi": "6+",
"three_hr_pressure_tendency_mb": null
},
{
"maxT_c": null,
"minT_c": null,
"temp_c": 23,
"snow_in": null,
"latitude": -99.99,
"raw_text": "METAR KQEW 070310Z AUTO 22002KT 9999 // CLR 23/05 A3018 RMK A02 TSNO",
"longitude": -99.99,
"pcp3hr_in": null,
"pcp6hr_in": null,
"precip_in": null,
"wx_string": null,
"dewpoint_c": 5,
"maxT24hr_c": null,
"metar_type": "METAR",
"minT24hr_c": null,
"pcp24hr_in": null,
"station_id": "KQEW",
"altim_in_hg": "30.18",
"elevation_m": "9999",
"vert_vis_ft": null,
"wind_gust_kt": null,
"wind_speed_kt": 2,
"flight_category": "VFR",
"observation_time": "2026-10-07T03:10:00.000Z",
"wind_dir_degrees": "220",
"sea_level_pressure_mb": null,
"visibility_statute_mi": "6+",
"three_hr_pressure_tendency_mb": null
}
]Evidence behind every value
- Each run keeps the publisher's exact response, hashed with SHA-256. This sample came from a response with hash
d0ec9e2e0c9b3c613d772d747c12ce621ccb5a1f9b0ae3c5794c1cbe6eeba273. - Every value records where it came from in that response: a CSS path into the retained capture.
- Each run gets a signed manifest (Ed25519) timestamped by an RFC 3161 authority: this run's manifest hash is
516fe5ac6859387f5bcf25ce1619587316a88dac2c7d1a1bf1f400d5ca06a15e, timestamped October 7, 2026. - The compliance state at capture is recorded with the evidence: robots.txt hash and verdict, AI-preference signals, crawler identity and the usage rights below.
- Download any run as an evidence bundle (WACZ) and check it offline, without trusting SourceFinch:
sourcefinch verify-bundle run.wacz.
Terms posture and usage rights
- Terms
- Automated access permitted · publisher's terms
- robots.txt
- None published (HTTP 404); access allowed under RFC 9309
- AI-preference signals
- None observed at review
- Public record
- Yes. Publisher data-use policy reviewed in browser; official machine-readable data only.
- Reviewed
- October 6, 2026; next review April 6, 2027
- Licence basis
- U.S. government work (public domain)
- Commercial use
- Allowed
- Redistribution
- Allowed
- Attribution
- Required (text below)
Publisher-authored government data are in the public domain unless otherwise marked. Credit the publisher; do not imply affiliation, endorsement or that transformed records are government-issued products. No logos, photographs or third-party imagery are collected.
NOAA / National Weather Service Aviation Weather Center. SourceFinch is independent and is not endorsed by the publisher.
Usage rights travel with every record SourceFinch delivers (API, exports, webhooks and evidence bundles). They are our documented understanding of the publisher's stated terms, not legal advice.
Reliability
- Runs, last 30 days
- 21
- Green
- 23.8%
- Failed
- 16
- Median run time
- 7.8 s
- Latest run
- failed, October 7, 2026
Measured on completed runs of this recipe version across SourceFinch, anonymized, within a rolling 30-day window. First successful observation: October 6, 2026. A new recipe has only the history collected since that date; this is not a 30-day uptime guarantee.
Use it
Every surface creates the same monitor from this Verified recipe. Monitors keep record history, report field-level changes and deliver by webhook, export or email. You confirm you have the right to collect the source (rights: true).
Console
Open this recipe in the console: it preserves the reviewed URL, fields and record key. Review the latest captured sample, confirm source rights, and choose a schedule before creating your monitor.
Portable recipe
Copy into the console's Import or share a recipe panel to customize fields, types and schedules. This configuration contains no captured records or workspace IDs.
{
"schema": "sourcefinch/source@1",
"name": "Current aviation weather observations",
"url": "https://aviationweather.gov/data/cache/metars.cache.xml.gz",
"recipe": {
"mode": "http",
"format": "xml",
"items": "METAR",
"fields": {
"maxT_c": "maxT_c",
"minT_c": "minT_c",
"temp_c": "temp_c",
"snow_in": "snow_in",
"latitude": "latitude",
"raw_text": "raw_text",
"longitude": "longitude",
"pcp3hr_in": "pcp3hr_in",
"pcp6hr_in": "pcp6hr_in",
"precip_in": "precip_in",
"wx_string": "wx_string",
"dewpoint_c": "dewpoint_c",
"maxT24hr_c": "maxT24hr_c",
"metar_type": "metar_type",
"minT24hr_c": "minT24hr_c",
"pcp24hr_in": "pcp24hr_in",
"station_id": "station_id",
"altim_in_hg": "altim_in_hg",
"elevation_m": "elevation_m",
"vert_vis_ft": "vert_vis_ft",
"wind_gust_kt": "wind_gust_kt",
"wind_speed_kt": "wind_speed_kt",
"flight_category": "flight_category",
"observation_time": "observation_time",
"wind_dir_degrees": "wind_dir_degrees",
"sea_level_pressure_mb": "sea_level_pressure_mb",
"visibility_statute_mi": "visibility_statute_mi",
"three_hr_pressure_tendency_mb": "three_hr_pressure_tendency_mb"
},
"required": [
"station_id",
"raw_text",
"observation_time"
],
"types": {
"dewpoint_c": "number",
"latitude": "number",
"longitude": "number",
"observation_time": "datetime",
"temp_c": "number",
"wind_gust_kt": "number",
"wind_speed_kt": "number"
}
},
"schedule": "hourly",
"key_field": "station_id"
}source.json
The request body used by the API, CLI and SDK examples.
{
"name": "Current aviation weather observations",
"url": "https://aviationweather.gov/data/cache/metars.cache.xml.gz",
"recipe": {
"mode": "http",
"format": "xml",
"items": "METAR",
"fields": {
"maxT_c": "maxT_c",
"minT_c": "minT_c",
"temp_c": "temp_c",
"snow_in": "snow_in",
"latitude": "latitude",
"raw_text": "raw_text",
"longitude": "longitude",
"pcp3hr_in": "pcp3hr_in",
"pcp6hr_in": "pcp6hr_in",
"precip_in": "precip_in",
"wx_string": "wx_string",
"dewpoint_c": "dewpoint_c",
"maxT24hr_c": "maxT24hr_c",
"metar_type": "metar_type",
"minT24hr_c": "minT24hr_c",
"pcp24hr_in": "pcp24hr_in",
"station_id": "station_id",
"altim_in_hg": "altim_in_hg",
"elevation_m": "elevation_m",
"vert_vis_ft": "vert_vis_ft",
"wind_gust_kt": "wind_gust_kt",
"wind_speed_kt": "wind_speed_kt",
"flight_category": "flight_category",
"observation_time": "observation_time",
"wind_dir_degrees": "wind_dir_degrees",
"sea_level_pressure_mb": "sea_level_pressure_mb",
"visibility_statute_mi": "visibility_statute_mi",
"three_hr_pressure_tendency_mb": "three_hr_pressure_tendency_mb"
},
"required": [
"station_id",
"raw_text",
"observation_time"
],
"types": {
"temp_c": "number",
"latitude": "number",
"longitude": "number",
"dewpoint_c": "number",
"wind_gust_kt": "number",
"wind_speed_kt": "number",
"observation_time": "datetime"
}
},
"key_field": "station_id",
"schedule": "hourly",
"rights": true,
"catalog": {
"slug": "awc-current-metar-observations",
"version_id": "5424106f-d725-4b96-b88e-728ca01e99b1"
}
}REST API
Create an API key under Console → API keys. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/awc-current-metar-observations -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get awc-current-metar-observations --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDTypeScript SDK
The SDK is not on npm yet; see /docs/sdk.
import { SourceFinch } from "@sourcefinch/sdk";
const sf = new SourceFinch({ apiKey: process.env.SOURCEFINCH_API_KEY });
const entry = await sf.catalog.get("awc-current-metar-observations");
const source = await sf.sources.create({
catalog: { slug: entry.slug, version_id: entry.recipe.version_id },
name: entry.name.slice(0, 100),
url: entry.acquisition_path.endpoint,
recipe: entry.recipe.definition,
key_field: entry.recipe.key_field,
schedule: entry.recipe.schedule,
rights: true, // you confirm you have the right to collect this source
});
const run = await sf.runs.wait((await sf.runs.create(source.id)).id);
console.log(run.status);MCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor Current aviation weather observations: get_catalog_source awc-current-metar-observations,
then create_source with its create_source_args (dry run first), then run_source."Pricing
Each check is one run, whatever the number of records, and failed runs are free. On its default hourly schedule this source uses about 720 runs a month. It uses HTTP acquisition, so no browser runs are needed. See plans.
Related sources
SourceFinch is independent and is not affiliated with or endorsed by NOAA / National Weather Service Aviation Weather Center. This page describes current aviation weather observations as SourceFinch acquires it.