{"openapi":"3.1.0","info":{"title":"FAA Airport Status + TFR corridor (x402)","version":"1.2.0","contact":{"email":"quietworklabs@outlook.com"},"description":"Pay-per-call x402 API built on free FAA public data: live US airport status (ground stops, ground delay programs, arrival/departure delays, closures) parsed into JSON with severity and delay minutes, plus US TFRs in a bounding box as GeoJSON with altitude band and valid_until fused onto each polygon. Free live samples at /sample/*; MCP tools give 5 free calls/day per client. By Quietwork Labs (see /about, /terms).","x-guidance":"GET /v1/airport-status?code=JFK for one US airport (IATA or ICAO), $0.002. GET /v1/disruptions?minSeverity=2 for all current US disruptions ranked by severity, $0.003. GET /v1/tfr-corridor?bbox=minLon,minLat,maxLon,maxLat for active/upcoming TFR polygons with altitude band + valid_until, $0.005. Pay per call with x402 v2 (USDC on Base mainnet); unpaid calls get HTTP 402 and are never charged. Try first for free: GET /sample/airport-status, /sample/disruptions, /sample/tfr-corridor (live data, fixed inputs). MCP at /mcp: 5 free calls/day per client per tool, then x402. Underlying FAA data is free at nasstatus.faa.gov and tfr.faa.gov; this API adds parsing, fusion and filtering. Severity: 5 ground stop/closure, 3-4 ground delay program or long delays, 2 delays, 1 GA-only closure."},"servers":[{"url":"https://faa-x402.quietworklabs.workers.dev"}],"x-discovery":{"ownershipProofs":["0x81e20c15ef61252211b54af149857a15e19c8c36788e56ee922b1195b043e00866097352963a3596f1f972281aacd7ed0171c515d4b52c54de154dd294069c0c1c"]},"paths":{"/v1/airport-status":{"get":{"operationId":"airport_status","summary":"Live FAA status for one US airport","tags":["Aviation"],"x-free-sample":"https://faa-x402.quietworklabs.workers.dev/sample/airport-status","description":"Current FAA NAS status for one US airport by IATA (JFK) or ICAO (KJFK): normal/advisory/disrupted, max severity 0-5 and each active event (ground stop, ground delay program with average/max minutes, arrival/departure delays, closure). GA-only NOTAM closures are flagged. Deterministic parse of free FAA public data, cached <=60s. Free sample: /sample/airport-status.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"code","required":true,"schema":{"type":"string","example":"EWR"},"description":"US airport IATA (EWR) or ICAO (KEWR) code"}],"responses":{"200":{"description":"Airport status","content":{"application/json":{"schema":{"type":"object","properties":{"airport":{"type":"string"},"faaUpdateTime":{"type":["string","null"]},"fetchedAt":{"type":"string"},"status":{"type":"string","enum":["normal","advisory","disrupted"]},"maxSeverity":{"type":"integer"},"events":{"type":"array","items":{"type":"object","properties":{"airport":{"type":"string"},"type":{"type":"string","enum":["ground_stop","ground_delay_program","arrival_delay","departure_delay","closure","airspace_flow_program","other"]},"severity":{"type":"integer","minimum":1,"maximum":5},"reason":{"type":["string","null"]},"detail":{"type":"object"}},"required":["airport","type","severity"]}},"source":{"type":"string"}},"required":["airport","status","maxSeverity","events"]}}}},"400":{"description":"Invalid code"},"402":{"description":"Payment Required"}}}},"/v1/disruptions":{"get":{"operationId":"disruptions","summary":"All current FAA disruptions in US airspace ranked by severity","tags":["Aviation"],"x-free-sample":"https://faa-x402.quietworklabs.workers.dev/sample/disruptions","description":"Every current FAA disruption in US airspace in one call (ground stops, ground delay programs, arrival/departure delays, airspace flow programs, closures) ranked by severity with delays parsed to minutes. Deterministic parse of free FAA public data, cached <=60s. Free sample: /sample/disruptions.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"minSeverity","required":false,"schema":{"type":"string","example":"2"},"description":"Only events with severity >= this (1-5). Default 2."},{"in":"query","name":"includeGaOnlyClosures","required":false,"schema":{"type":"string","enum":["true","false"]},"description":"Include NOTAM closures restricting only non-scheduled GA. Default false."}],"responses":{"200":{"description":"Disruption list","content":{"application/json":{"schema":{"type":"object","properties":{"faaUpdateTime":{"type":["string","null"]},"fetchedAt":{"type":"string"},"count":{"type":"integer"},"events":{"type":"array","items":{"type":"object","properties":{"airport":{"type":"string"},"type":{"type":"string","enum":["ground_stop","ground_delay_program","arrival_delay","departure_delay","closure","airspace_flow_program","other"]},"severity":{"type":"integer","minimum":1,"maximum":5},"reason":{"type":["string","null"]},"detail":{"type":"object"}},"required":["airport","type","severity"]}},"source":{"type":"string"}},"required":["count","events"]}}}},"402":{"description":"Payment Required"}}}},"/v1/tfr-corridor":{"get":{"operationId":"tfr_corridor","summary":"Active/upcoming US TFRs intersecting a geographic box, as GeoJSON","tags":["Aviation"],"x-free-sample":"https://faa-x402.quietworklabs.workers.dev/sample/tfr-corridor","description":"Active and upcoming US Temporary Flight Restrictions whose area intersects a bbox, as a GeoJSON FeatureCollection. Each polygon carries its altitude band (lower/upper feet + AGL/MSL reference), effective time and valid_until, NOTAM id, type and facility. The FAA publishes TFR lists and per-NOTAM geometry free (tfr.faa.gov); this endpoint fuses them per polygon and filters by bbox, altitude and buffer in one call. Not for operational flight planning. Free sample: /sample/tfr-corridor.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"parameters":[{"in":"query","name":"bbox","required":true,"schema":{"type":"string","example":"-85.0,33.4,-84.0,34.1"},"description":"Query box minLon,minLat,maxLon,maxLat (WGS84 decimal degrees)"},{"in":"query","name":"alt_ft","required":false,"schema":{"type":"string","example":"500"},"description":"Only TFRs whose altitude band includes this height in feet"},{"in":"query","name":"buffer_nm","required":false,"schema":{"type":"string","example":"2"},"description":"Expand the query box by this many nautical miles"},{"in":"query","name":"active_only","required":false,"schema":{"type":"string","enum":["true","false"]},"description":"true to drop upcoming (not-yet-effective) TFRs"}],"responses":{"200":{"description":"GeoJSON FeatureCollection of TFR areas (served as application/json)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","const":"FeatureCollection"},"fetchedAt":{"type":"string"},"count":{"type":"integer"},"candidates_scanned":{"type":"integer"},"truncated":{"type":"boolean"},"query":{"type":"object","properties":{"bbox":{"type":"array","items":{"type":"number"}},"alt_ft":{"type":["number","null"]},"buffer_nm":{"type":"number"},"active_only":{"type":"boolean"}}},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"bbox":{"type":"array","items":{"type":"number"}},"geometry":{"type":"object","properties":{"type":{"type":"string"},"coordinates":{"type":"array"}}},"properties":{"type":"object","properties":{"notam_id":{"type":"string"},"tfr_type":{"type":"string"},"facility":{"type":"string"},"state":{"type":"string"},"area_name":{"type":["string","null"]},"lower_ft":{"type":["number","null"]},"upper_ft":{"type":["number","null"]},"alt_ref_lower":{"type":["string","null"]},"alt_ref_upper":{"type":["string","null"]},"effective":{"type":["string","null"]},"valid_until":{"type":["string","null"]},"status":{"type":"string","enum":["active","upcoming"]},"description":{"type":"string"},"detail_url":{"type":"string"}}}}}},"notes":{"type":"string"},"source":{"type":"string"}},"required":["type","count","features"]}}}},"400":{"description":"Invalid bbox"},"402":{"description":"Payment Required"}}}},"/sample/airport-status":{"get":{"operationId":"sample_airport_status","summary":"FREE live sample of /v1/airport-status (fixed input JFK)","tags":["Aviation","Free sample"],"security":[],"description":"Free, no payment. Same response shape as /v1/airport-status for a fixed airport (JFK), plus a sample object. Use it to check the output before paying.","responses":{"200":{"description":"Airport status sample","content":{"application/json":{"schema":{"type":"object","properties":{"airport":{"type":"string"},"faaUpdateTime":{"type":["string","null"]},"fetchedAt":{"type":"string"},"status":{"type":"string","enum":["normal","advisory","disrupted"]},"maxSeverity":{"type":"integer"},"events":{"type":"array","items":{"type":"object","properties":{"airport":{"type":"string"},"type":{"type":"string","enum":["ground_stop","ground_delay_program","arrival_delay","departure_delay","closure","airspace_flow_program","other"]},"severity":{"type":"integer","minimum":1,"maximum":5},"reason":{"type":["string","null"]},"detail":{"type":"object"}},"required":["airport","type","severity"]}},"source":{"type":"string"}},"required":["airport","status","maxSeverity","events"]}}}}}}},"/sample/disruptions":{"get":{"operationId":"sample_disruptions","summary":"FREE live sample of /v1/disruptions (top 3 events)","tags":["Aviation","Free sample"],"security":[],"description":"Free, no payment. Same response shape as /v1/disruptions, limited to the 3 most severe current events (count is the full total).","responses":{"200":{"description":"Disruptions sample","content":{"application/json":{"schema":{"type":"object","properties":{"faaUpdateTime":{"type":["string","null"]},"fetchedAt":{"type":"string"},"count":{"type":"integer"},"events":{"type":"array","items":{"type":"object","properties":{"airport":{"type":"string"},"type":{"type":"string","enum":["ground_stop","ground_delay_program","arrival_delay","departure_delay","closure","airspace_flow_program","other"]},"severity":{"type":"integer","minimum":1,"maximum":5},"reason":{"type":["string","null"]},"detail":{"type":"object"}},"required":["airport","type","severity"]}},"source":{"type":"string"}},"required":["count","events"]}}}}}}},"/sample/tfr-corridor":{"get":{"operationId":"sample_tfr_corridor","summary":"FREE live sample of /v1/tfr-corridor (fixed Washington DC box, max 3 areas)","tags":["Aviation","Free sample"],"security":[],"description":"Free, no payment. Same GeoJSON shape as /v1/tfr-corridor for a fixed box around Washington DC (-77.6,38.6,-76.6,39.3), at most 3 features, cached up to 10 minutes.","responses":{"200":{"description":"TFR corridor sample","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","const":"FeatureCollection"},"fetchedAt":{"type":"string"},"count":{"type":"integer"},"candidates_scanned":{"type":"integer"},"truncated":{"type":"boolean"},"query":{"type":"object","properties":{"bbox":{"type":"array","items":{"type":"number"}},"alt_ft":{"type":["number","null"]},"buffer_nm":{"type":"number"},"active_only":{"type":"boolean"}}},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"bbox":{"type":"array","items":{"type":"number"}},"geometry":{"type":"object","properties":{"type":{"type":"string"},"coordinates":{"type":"array"}}},"properties":{"type":"object","properties":{"notam_id":{"type":"string"},"tfr_type":{"type":"string"},"facility":{"type":"string"},"state":{"type":"string"},"area_name":{"type":["string","null"]},"lower_ft":{"type":["number","null"]},"upper_ft":{"type":["number","null"]},"alt_ref_lower":{"type":["string","null"]},"alt_ref_upper":{"type":["string","null"]},"effective":{"type":["string","null"]},"valid_until":{"type":["string","null"]},"status":{"type":"string","enum":["active","upcoming"]},"description":{"type":"string"},"detail_url":{"type":"string"}}}}}},"notes":{"type":"string"},"source":{"type":"string"}},"required":["type","count","features"]}}}}}}},"/health":{"get":{"operationId":"health_check","summary":"Health check (add ?deep=1 to check the FAA upstream)","security":[],"responses":{"200":{"description":"OK"}}}},"/":{"get":{"operationId":"landing","summary":"Service description","security":[],"responses":{"200":{"description":"OK"}}}}}}