SourceFinch Verified · Weather observations & forecasts
Current airport terminal forecasts
Reads the publisher-recommended complete current TAF cache. Each record is the current forecast at a station, keyed by station_id; later issues or corrections change that record. The complete raw forecast preserves all forecast periods, including temporary con
- Healthy · 100% of observed runs successful
- United States; global aviation observations
- Publisher's public bulk file or feed
- 10 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
- 3,072 in the latest run
- Record key
station_id- Acquired from
- Publisher's public bulk file or feed:
https://aviationweather.gov/data/cache/tafs.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 TAF cache. Each record is the current forecast at a station, keyed by station_id; later issues or corrections change that record. The complete raw forecast preserves all forecast periods, including temporary conditions and amendments; the recipe does not collapse those periods into a single weather prediction. Departure from this rolling cache is not proof that an airport closed. This is not a historical archive or flight-planning product. SourceFinch is independent of NOAA/NWS.
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. |
issue_time | datetime | Publisher issue_time; retained without product-specific enrichment. |
bulletin_time | datetime, nullable | Publisher bulletin_time; retained without product-specific enrichment. |
valid_time_from | datetime | Publisher valid_time_from; retained without product-specific enrichment. |
valid_time_to | datetime | Publisher valid_time_to; 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. |
elevation_m | number, nullable | Publisher elevation_m; retained without product-specific enrichment. |
remarks | string, nullable | Publisher remarks; retained without product-specific enrichment. |
Sample output
The first 5 of 3,072 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 | KDTW | YBTL | LOWW | SPSO | KMLB |
raw_text | TAF KDTW 072017Z 0720/0824 25014G20KT P6SM SCT060 FM080000 27006KT P6SM SCT250 FM081600 28012G20KT P6SM FEW045 SCT250 | TAF AMD YBTL 072016Z 0720/0818 13007KT 9999 SCT020 FM072230 06012KT 9999 SCT025 FM080900 08008KT 9999 SCT020 | TAF LOWW 072015Z 0721/0903 15008KT CAVOK TX24/0814Z TN12/0805Z TEMPO 0721/0807 VRB03KT TEMPO 0811/0817 18017G27KT FM081800 28015KT 9999 OVC050 FEW050TCU TEMPO 0818/0821 29015G32KT 4000 SHRA FM082100 29015G25KT 9999 SCT030 PROB40 TEMPO 0821/0824 30020G35KT SHRA | TAF COR SPSO 072015Z 0720/0818 31008KT 9999 BKN040 TX25/0720Z TN19/0811Z BECMG 0721/0722 21013KT BECMG 0802/0804 21003KT FM080830 14005KT 8000 OVC020 FM081730 21015KT CAVOK | TAF KMLB 072012Z 0720/0818 04009KT P6SM -SHRA VCTS SCT009 SCT025CB BKN100 TEMPO 0720/0724 1SM TSRA BKN009 OVC020CB FM080000 08007KT P6SM VCSH SCT009 BKN020 BKN130 FM080100 04007KT P6SM VCSH SCT006 BKN010 BKN120 FM080700 06004KT P6SM FEW009 SCT025 BKN120 |
issue_time | 2026-10-07T20:17:00.000Z | 2026-10-07T20:16:00.000Z | 2026-10-07T20:15:00.000Z | 2026-10-07T20:15:00.000Z | 2026-10-07T20:12:00.000Z |
bulletin_time | 2026-10-07T20:17:00.000Z | 2026-10-07T20:00:00.000Z | 2026-10-07T20:00:00.000Z | 2026-10-07T20:21:00.000Z | 2026-10-07T20:12:00.000Z |
valid_time_from | 2026-10-07T20:00:00.000Z | 2026-10-07T20:00:00.000Z | 2026-10-07T21:00:00.000Z | 2026-10-07T20:00:00.000Z | 2026-10-07T20:00:00.000Z |
valid_time_to | 2026-10-09T00:00:00.000Z | 2026-10-08T18:00:00.000Z | 2026-10-09T03:00:00.000Z | 2026-10-08T18:00:00.000Z | 2026-10-08T18:00:00.000Z |
latitude | 42.2311 | -19.248 | 48.117 | -13.744 | 28.0997 |
longitude | -83.3312 | 146.766 | 16.582 | -76.221 | -80.6356 |
elevation_m | 192 | 4 | 179 | 8 | 7 |
remarks | AMD | — | — | COR | AMD |
Sample as JSON
[
{
"remarks": "AMD",
"latitude": 42.2311,
"raw_text": "TAF KDTW 072017Z 0720/0824 25014G20KT P6SM SCT060 FM080000 27006KT P6SM SCT250 FM081600 28012G20KT P6SM FEW045 SCT250",
"longitude": -83.3312,
"issue_time": "2026-10-07T20:17:00.000Z",
"station_id": "KDTW",
"elevation_m": 192,
"bulletin_time": "2026-10-07T20:17:00.000Z",
"valid_time_to": "2026-10-09T00:00:00.000Z",
"valid_time_from": "2026-10-07T20:00:00.000Z"
},
{
"remarks": null,
"latitude": -19.248,
"raw_text": "TAF AMD YBTL 072016Z 0720/0818 13007KT 9999 SCT020 FM072230 06012KT 9999 SCT025 FM080900 08008KT 9999 SCT020",
"longitude": 146.766,
"issue_time": "2026-10-07T20:16:00.000Z",
"station_id": "YBTL",
"elevation_m": 4,
"bulletin_time": "2026-10-07T20:00:00.000Z",
"valid_time_to": "2026-10-08T18:00:00.000Z",
"valid_time_from": "2026-10-07T20:00:00.000Z"
},
{
"remarks": null,
"latitude": 48.117,
"raw_text": "TAF LOWW 072015Z 0721/0903 15008KT CAVOK TX24/0814Z TN12/0805Z TEMPO 0721/0807 VRB03KT TEMPO 0811/0817 18017G27KT FM081800 28015KT 9999 OVC050 FEW050TCU TEMPO 0818/0821 29015G32KT 4000 SHRA FM082100 29015G25KT 9999 SCT030 PROB40 TEMPO 0821/0824 30020G35KT SHRA",
"longitude": 16.582,
"issue_time": "2026-10-07T20:15:00.000Z",
"station_id": "LOWW",
"elevation_m": 179,
"bulletin_time": "2026-10-07T20:00:00.000Z",
"valid_time_to": "2026-10-09T03:00:00.000Z",
"valid_time_from": "2026-10-07T21:00:00.000Z"
},
{
"remarks": "COR",
"latitude": -13.744,
"raw_text": "TAF COR SPSO 072015Z 0720/0818 31008KT 9999 BKN040 TX25/0720Z TN19/0811Z BECMG 0721/0722 21013KT BECMG 0802/0804 21003KT FM080830 14005KT 8000 OVC020 FM081730 21015KT CAVOK",
"longitude": -76.221,
"issue_time": "2026-10-07T20:15:00.000Z",
"station_id": "SPSO",
"elevation_m": 8,
"bulletin_time": "2026-10-07T20:21:00.000Z",
"valid_time_to": "2026-10-08T18:00:00.000Z",
"valid_time_from": "2026-10-07T20:00:00.000Z"
},
{
"remarks": "AMD",
"latitude": 28.0997,
"raw_text": "TAF KMLB 072012Z 0720/0818 04009KT P6SM -SHRA VCTS SCT009 SCT025CB BKN100 TEMPO 0720/0724 1SM TSRA BKN009 OVC020CB FM080000 08007KT P6SM VCSH SCT009 BKN020 BKN130 FM080100 04007KT P6SM VCSH SCT006 BKN010 BKN120 FM080700 06004KT P6SM FEW009 SCT025 BKN120",
"longitude": -80.6356,
"issue_time": "2026-10-07T20:12:00.000Z",
"station_id": "KMLB",
"elevation_m": 7,
"bulletin_time": "2026-10-07T20:12:00.000Z",
"valid_time_to": "2026-10-08T18:00:00.000Z",
"valid_time_from": "2026-10-07T20:00:00.000Z"
}
]Evidence behind every value
- Each run keeps the publisher's exact response, hashed with SHA-256. This sample came from a response with hash
b6046442816b3657aa4b7066f383242b030130df8f351b833ec3d9f88bf8014e. - 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
c562ac661b82e46dbf24169b0dc61411612c7711a4f6bd4820bec932d0812ee7, 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
- 23
- Green
- 100%
- Failed
- 0
- Median run time
- 8.3 s
- Latest run
- success, 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 airport terminal forecasts",
"url": "https://aviationweather.gov/data/cache/tafs.cache.xml.gz",
"recipe": {
"mode": "http",
"format": "xml",
"items": "TAF",
"fields": {
"remarks": "remarks",
"latitude": "latitude",
"raw_text": "raw_text",
"longitude": "longitude",
"issue_time": "issue_time",
"station_id": "station_id",
"elevation_m": "elevation_m",
"bulletin_time": "bulletin_time",
"valid_time_to": "valid_time_to",
"valid_time_from": "valid_time_from"
},
"required": [
"station_id",
"raw_text",
"issue_time",
"valid_time_from",
"valid_time_to"
],
"types": {
"bulletin_time": "datetime",
"elevation_m": "number",
"issue_time": "datetime",
"latitude": "number",
"longitude": "number",
"valid_time_from": "datetime",
"valid_time_to": "datetime"
}
},
"schedule": "hourly",
"key_field": "station_id"
}source.json
The request body used by the API, CLI and SDK examples.
{
"name": "Current airport terminal forecasts",
"url": "https://aviationweather.gov/data/cache/tafs.cache.xml.gz",
"recipe": {
"mode": "http",
"format": "xml",
"items": "TAF",
"fields": {
"remarks": "remarks",
"latitude": "latitude",
"raw_text": "raw_text",
"longitude": "longitude",
"issue_time": "issue_time",
"station_id": "station_id",
"elevation_m": "elevation_m",
"bulletin_time": "bulletin_time",
"valid_time_to": "valid_time_to",
"valid_time_from": "valid_time_from"
},
"required": [
"station_id",
"raw_text",
"issue_time",
"valid_time_from",
"valid_time_to"
],
"types": {
"latitude": "number",
"longitude": "number",
"issue_time": "datetime",
"elevation_m": "number",
"bulletin_time": "datetime",
"valid_time_to": "datetime",
"valid_time_from": "datetime"
}
},
"key_field": "station_id",
"schedule": "hourly",
"rights": true,
"catalog": {
"slug": "awc-current-terminal-forecasts",
"version_id": "1c0d32d3-a94d-4391-8f35-041c24c16b25"
}
}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-terminal-forecasts -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-terminal-forecasts --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-terminal-forecasts");
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 airport terminal forecasts: get_catalog_source awc-current-terminal-forecasts,
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 airport terminal forecasts as SourceFinch acquires it.