SourceFinch Verified · Transport & logistics

Active temporary flight restrictions

Monitor active temporary flight restrictions with publisher identifiers, documented fields, retained source evidence and repeatable change detection.

  • Healthy · 100% of observed runs successful
  • United States
  • Publisher's public API
  • 6 typed fields

Monitor this sourceAPI, CLI, SDK and MCP

At a glance

Publisher
Federal Aviation Administration
Jurisdiction
United States
Publisher updates
Publisher updates; monitor daily
SourceFinch checks
Daily by default
Records per run
84 in the latest run
Record key
notam_id
Acquired from
Publisher's public API: https://tfr.faa.gov/tfrapi/exportTfrList
Recipe
v1.0.0, approved October 7, 2026
Verified since
October 7, 2026
Last green run
October 7, 2026

What the data contains

Captures the current FAA temporary flight restriction list. This summary omits authoritative geometry and detailed NOTAM instructions; follow FAA publications before flight planning. A restriction leaving the active list does not establish why it ended. Creation date is not an effective start time. Publisher descriptions are retained without safety interpretation. SourceFinch is independent of Federal Aviation Administration. Customer edits create private recipe versions and must retain applicable attribution and source rights.

Fields and types

Every record has these fields. The key field notam_id identifies a record across runs, so changes are reported field by field.

FieldTypeDescription
notam_idkeystringPublisher NOTAM identifier; retained as text including the slash.
restriction_typestringPublisher-reported restriction type; retained without independent normalization.
facilitystring, nullablePublisher-reported facility; retained without independent normalization.
statestring, nullablePublisher-reported state; retained without independent normalization.
descriptionstringPublisher-reported description; retained without independent normalization.
creation_datestring, nullableOriginal publisher creation-date text; not a parsed UTC activation time.

Sample output

The first 5 of 84 records from SourceFinch's own run on October 7, 2026, exactly as delivered.

FieldRecord 1Record 2Record 3Record 4Record 5
notam_id6/78136/76556/76346/75326/7530
restriction_typeHAZARDSHAZARDSHAZARDSHAZARDSUAS PUBLIC GATHERING
facilityZLCZDVZKCZMPZDC
stateMTCOMOMNNC
description20NM E MISSOULA, MT, Wednesday, October 7, 2026 through Friday, October 9, 2026 UTC40NM NW DENVER, CO, Tuesday, October 6, 2026 through Wednesday, October 7, 2026 UTCCENTRALIA, MO, Monday, October 12, 2026 UTCBABBITT, MN, Thursday, October 8, 2026 UTCRaleigh, NC, Saturday, October 10, 2026 UTC
creation_date10/06/202610/06/202610/06/202610/06/202610/06/2026
Sample as JSON
[
  {
    "state": "MT",
    "facility": "ZLC",
    "notam_id": "6/7813",
    "description": "20NM E MISSOULA, MT, Wednesday, October 7, 2026 through Friday, October 9, 2026 UTC",
    "creation_date": "10/06/2026",
    "restriction_type": "HAZARDS"
  },
  {
    "state": "CO",
    "facility": "ZDV",
    "notam_id": "6/7655",
    "description": "40NM NW DENVER, CO, Tuesday, October 6, 2026 through Wednesday, October 7, 2026 UTC",
    "creation_date": "10/06/2026",
    "restriction_type": "HAZARDS"
  },
  {
    "state": "MO",
    "facility": "ZKC",
    "notam_id": "6/7634",
    "description": "CENTRALIA, MO, Monday, October 12, 2026 UTC",
    "creation_date": "10/06/2026",
    "restriction_type": "HAZARDS"
  },
  {
    "state": "MN",
    "facility": "ZMP",
    "notam_id": "6/7532",
    "description": "BABBITT, MN, Thursday, October 8, 2026 UTC",
    "creation_date": "10/06/2026",
    "restriction_type": "HAZARDS"
  },
  {
    "state": "NC",
    "facility": "ZDC",
    "notam_id": "6/7530",
    "description": "Raleigh, NC, Saturday, October 10, 2026 UTC",
    "creation_date": "10/06/2026",
    "restriction_type": "UAS PUBLIC GATHERING"
  }
]

Evidence behind every value

  • Each run keeps the publisher's exact response, hashed with SHA-256. This sample came from a response with hash 911f278af9a55992d6cf078f6590747c302e4282a75689b8c1e35728de7eb8c6.
  • Every value records where it came from in that response: a JSON Pointer into the retained capture.
  • Each run gets a signed manifest (Ed25519) timestamped by an RFC 3161 authority: this run's manifest hash is 0c4b1bdd1c253e49c2dfb630daac2f21be40f5d98f08783cd6b1a22711c5450d, 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
Terms are silent on automated access · publisher's terms
robots.txt
None published (HTTP 404); access allowed under RFC 9309
AI-preference signals
None observed at review
Public record
Yes. U.S. government-authored Federal Aviation Administration data; 17 U.S.C. 105. Third-party content and trademarks excluded.
Reviewed
October 7, 2026; next review April 7, 2027
Licence basis
U.S. government work (public domain)
Commercial use
Allowed
Redistribution
Allowed
Attribution
Required (text below)

Publisher government data only; third-party linked materials, logos and trademarks are excluded. The policy disclaims accuracy and endorsement. Public-domain basis applies to government-authored records, not every item on the website.

Federal Aviation Administration: Active temporary flight restrictions. SourceFinch is independent of 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
2
Green
100%
Failed
0
Median run time
0.9 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 7, 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": "Active temporary flight restrictions",
  "url": "https://tfr.faa.gov/tfrapi/exportTfrList",
  "recipe": {
    "mode": "http",
    "format": "json",
    "items": "$[*]",
    "fields": {
      "state": "state",
      "facility": "facility",
      "notam_id": "notam_id",
      "description": "description",
      "creation_date": "creation_date",
      "restriction_type": "type"
    },
    "required": [
      "notam_id"
    ],
    "types": {
      "creation_date": "string",
      "description": "string",
      "facility": "string",
      "notam_id": "string",
      "restriction_type": "string",
      "state": "string"
    }
  },
  "schedule": "daily",
  "key_field": "notam_id"
}

source.json

The request body used by the API, CLI and SDK examples.

{
  "name": "Active temporary flight restrictions",
  "url": "https://tfr.faa.gov/tfrapi/exportTfrList",
  "recipe": {
    "mode": "http",
    "format": "json",
    "items": "$[*]",
    "fields": {
      "state": "state",
      "facility": "facility",
      "notam_id": "notam_id",
      "description": "description",
      "creation_date": "creation_date",
      "restriction_type": "type"
    },
    "required": [
      "notam_id"
    ],
    "types": {
      "state": "string",
      "facility": "string",
      "notam_id": "string",
      "description": "string",
      "creation_date": "string",
      "restriction_type": "string"
    }
  },
  "key_field": "notam_id",
  "schedule": "daily",
  "rights": true,
  "catalog": {
    "slug": "faa-active-flight-restrictions",
    "version_id": "449f3638-f8b6-4eac-9160-1b2ebcaaf568"
  }
}

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/faa-active-flight-restrictions -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 faa-active-flight-restrictions --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_ID

TypeScript 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("faa-active-flight-restrictions");
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 Active temporary flight restrictions: get_catalog_source faa-active-flight-restrictions,
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 daily schedule this source uses about 30 runs a month, which fits the Free plan's 300 runs. It uses HTTP acquisition, so no browser runs are needed. See plans.

SourceFinch is independent and is not affiliated with or endorsed by Federal Aviation Administration. This page describes active temporary flight restrictions as SourceFinch acquires it.