{"openapi":"3.1.0","info":{"title":"Airspace API","version":"0.1.0","description":"Decoded METAR/TAF, SIGMETs and PIREPs, FAA airport delays, airport details, live aircraft and flight tracking — aviation from primary sources.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://airspace.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/airspace/docs"},"termsOfService":"https://connectorbay.com/airspace/terms"},"servers":[{"url":"https://airspace.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/airspace/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/metar":{"post":{"operationId":"metar","summary":"Current weather at an airport: the METAR decoded — wind, visibility, weather, clouds and ceiling, temperature/dew","description":"Current weather at an airport: the METAR decoded — wind, visibility, weather, clouds and ceiling, temperature/dew\n    point, altimeter — with the flight category (VFR/MVFR/IFR/LIFR) explained and a one-line plain-English summary, plus\n    the raw report. Any airport worldwide that reports METARs. Use for \"weather at SFO\", \"is JFK IFR right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airports":{"description":"One or more airport codes (ICAO, IATA or FAA), comma-separated: 'KSFO', 'SFO,JFK', 'EGLL VIDP'.","examples":["KSFO","SFO,JFK,ORD","EGLL"],"title":"Airports","type":"string"},"hours":{"default":1,"description":"Hours of history to include (1 = latest only).","maximum":12,"minimum":1,"title":"Hours","type":"integer"}},"required":["airports"],"title":"metarArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/taf":{"post":{"operationId":"taf","summary":"Terminal forecast (TAF) for an airport, decoded period by period — from/temporary/becoming/probability groups with","description":"Terminal forecast (TAF) for an airport, decoded period by period — from/temporary/becoming/probability groups with\n    wind, visibility, weather, clouds and ceiling in plain English — plus the raw TAF and validity window. Use for \"will\n    SFO be foggy tonight\", \"forecast for JFK this evening\", \"when does the wind shift at DEN\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airports":{"description":"One or more airport codes, comma-separated.","examples":["KJFK","SFO,LAX"],"title":"Airports","type":"string"}},"required":["airports"],"title":"tafArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/hazards":{"post":{"operationId":"hazards","summary":"Active SIGMETs, convective SIGMETs and G-AIRMETs — thunderstorms, turbulence, icing, IFR, mountain obscuration,","description":"Active SIGMETs, convective SIGMETs and G-AIRMETs — thunderstorms, turbulence, icing, IFR, mountain obscuration,\n    wind shear — over or within ~60 nm of an airport or place, with altitudes, validity, movement and the raw text.\n    U.S. and adjacent airspace (NOAA AWC). Use for \"any turbulence advisories near Denver\", \"convective SIGMETs right\n    now\", \"is there icing forecast over the Rockies\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Airport code to check hazards over/near; or give a place/coordinates.","examples":["KDEN"],"title":"Airport"},"place":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A city or place instead of an airport.","examples":["Denver"],"title":"Place"},"latitude":{"anyOf":[{"maximum":90,"minimum":-90,"type":"number"},{"type":"null"}],"default":null,"title":"Latitude"},"longitude":{"anyOf":[{"maximum":180,"minimum":-180,"type":"number"},{"type":"null"}],"default":null,"title":"Longitude"},"hazard":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter: convective, turb, ice, ifr, mt_obsc, ash, llws, sfc_wnd.","examples":["turb"],"title":"Hazard"},"all_active":{"default":false,"description":"Return every active SIGMET/G-AIRMET (U.S.), ignoring location.","title":"All Active","type":"boolean"}},"title":"hazardsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/pireps":{"post":{"operationId":"pireps","summary":"Recent pilot reports (PIREPs) near an airport: turbulence and icing intensity, cloud tops/bases, weather, wind and","description":"Recent pilot reports (PIREPs) near an airport: turbulence and icing intensity, cloud tops/bases, weather, wind and\n    temperature aloft, with aircraft type and flight level. U.S. coverage. Use for \"any turbulence reported near\n    Denver\", \"what are pilots reporting around ORD\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airport":{"description":"Airport code at the centre of the search.","examples":["KDEN"],"title":"Airport","type":"string"},"distance_sm":{"default":200,"description":"Search radius in statute miles.","maximum":500,"minimum":10,"title":"Distance Sm","type":"integer"},"hours":{"default":2,"description":"How many hours back.","maximum":12,"minimum":1,"title":"Hours","type":"integer"}},"required":["airport"],"title":"pirepsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/airport":{"post":{"operationId":"airport","summary":"Airport details: name, codes (ICAO/IATA/FAA), location and elevation, runways with length, width and surface,","description":"Airport details: name, codes (ICAO/IATA/FAA), location and elevation, runways with length, width and surface,\n    control tower, radio frequencies (ATIS, ground, tower, approach), magnetic variation, type and Wikipedia link — or\n    a search by name/city returning candidates. Use for \"how long is the runway at Aspen\", \"tower frequency at SFO\",\n    \"what's the airport code for Bengaluru\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Airport code (ICAO/IATA/FAA).","examples":["KASE","SFO"],"title":"Code"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Search by airport name or city instead.","examples":["Aspen","Heathrow"],"title":"Search"}},"title":"airportArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/airport_status":{"post":{"operationId":"airport_status","summary":"FAA airport status right now: ground stops, ground delay programs (average/max delay), arrival and departure delays","description":"FAA airport status right now: ground stops, ground delay programs (average/max delay), arrival and departure delays\n    with trend, and closures with reopen times — for one U.S. airport or all airports currently affected. Use for \"any\n    delays at Newark\", \"is there a ground stop at JFK\", \"which airports have delays right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airport":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"U.S. airport code to check; omit for a nationwide list.","examples":["EWR","KJFK"],"title":"Airport"}},"title":"airport_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/aircraft_nearby":{"post":{"operationId":"aircraft_nearby","summary":"Aircraft currently in the air near a place (community ADS-B): callsign, registration, type, altitude, speed,","description":"Aircraft currently in the air near a place (community ADS-B): callsign, registration, type, altitude, speed,\n    heading, climb/descent, distance and bearing from the point, squawk and any emergency. Use for \"what planes are\n    overhead\", \"what's flying near SFO\", \"is anything circling over downtown\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"place":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Airport code, city or place.","examples":["SFO","Boston","Heathrow"],"title":"Place"},"latitude":{"anyOf":[{"maximum":90,"minimum":-90,"type":"number"},{"type":"null"}],"default":null,"title":"Latitude"},"longitude":{"anyOf":[{"maximum":180,"minimum":-180,"type":"number"},{"type":"null"}],"default":null,"title":"Longitude"},"radius_nm":{"default":25,"description":"Search radius in nautical miles (1–250).","maximum":250,"minimum":1,"title":"Radius Nm","type":"integer"},"airborne_only":{"default":true,"description":"Exclude aircraft on the ground.","title":"Airborne Only","type":"boolean"},"max_results":{"default":30,"maximum":100,"minimum":1,"title":"Max Results","type":"integer"}},"title":"aircraft_nearbyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/track_flight":{"post":{"operationId":"track_flight","summary":"Where a flight or aircraft is right now: position, altitude, speed, heading, vertical rate, squawk, nearest","description":"Where a flight or aircraft is right now: position, altitude, speed, heading, vertical rate, squawk, nearest\n    airport, plus the aircraft's registration, type and owner (hexdb) and the community-reported route for the callsign.\n    Only aircraft currently transmitting are found. Use for \"where is UA604\", \"track N215UA\", \"what is hex a1cdd8\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Callsign/flight (UAL604, BAW117), registration (N215UA, G-XLEA) or ICAO hex (a1cdd8).","examples":["UAL604","N215UA","a1cdd8"],"title":"Query","type":"string"}},"required":["query"],"title":"track_flightArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/aircraft_lookup":{"post":{"operationId":"aircraft_lookup","summary":"What an aircraft is, from its registration or hex code: manufacturer, type, registered owner/operator — and","description":"What an aircraft is, from its registration or hex code: manufacturer, type, registered owner/operator — and\n    whether it is airborne right now (position if so). Use for \"what plane is N215UA\", \"who owns hex a1cdd8\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Registration (N215UA) or ICAO 24-bit hex (a1cdd8).","examples":["N215UA","a1cdd8"],"title":"Query","type":"string"}},"required":["query"],"title":"aircraft_lookupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/special_traffic":{"post":{"operationId":"special_traffic","summary":"Aircraft squawking an emergency right now (7700 general, 7600 radio failure, 7500 hijack) or military aircraft","description":"Aircraft squawking an emergency right now (7700 general, 7600 radio failure, 7500 hijack) or military aircraft\n    currently airborne (optionally near a place), with position, altitude, type and callsign. Use for \"is any plane\n    declaring an emergency\", \"military aircraft over the North Sea\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"kind":{"default":"emergency","description":"'emergency' (squawk 7700/7600/7500) or 'military' (military aircraft airborne worldwide).","examples":["emergency","military"],"title":"Kind","type":"string"},"near":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional place/airport to restrict military results to within ~300 nm.","examples":["Norfolk"],"title":"Near"},"max_results":{"default":40,"maximum":100,"minimum":1,"title":"Max Results","type":"integer"}},"title":"special_trafficArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/briefing":{"post":{"operationId":"briefing","summary":"A quick weather and status briefing for a flight: current METAR and TAF at departure, destination (and alternate),","description":"A quick weather and status briefing for a flight: current METAR and TAF at departure, destination (and alternate),\n    flight categories, SIGMETs/G-AIRMETs over either end or along the straight-line route, recent PIREPs near each end,\n    FAA delays/ground stops (U.S.), and the great-circle distance and bearing. Not an official briefing. Use for \"brief\n    me for SFO to LAX\", \"what's the weather for my flight from JFK to BOS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"departure":{"description":"Departure airport code.","examples":["KSFO"],"title":"Departure","type":"string"},"destination":{"description":"Destination airport code.","examples":["KLAX"],"title":"Destination","type":"string"},"alternate":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional alternate airport.","examples":["KONT"],"title":"Alternate"}},"required":["departure","destination"],"title":"briefingArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}