Airspace
Beta
POST /v1/airspace/route
The airspace a flight enters, where, when and at what level: special use airspace (prohibited, restricted, warning and alert areas, military operations areas, and the danger areas the FAA publishes for the Bahamas), Class B, C and D airspace, and TFRs. United States only, from FAA data: special use and class airspace from the FAA's airspace datasets, checked every day and imported again when the FAA publishes a change, and TFRs from the FAA's TFR service, polled every 5 minutes with every version kept, so a past briefing replays with what was known then. Airspace is placed along the flight as the weather route check places hazards: an airspace is entered where the track itself is inside its area while it is in force and the aircraft is within its vertical limits there.
Request: the flight object (see Flight object) and:
half_width_nm(default 5, 1 to 50): airspace within this distance of the track that the flight does not enter is listed asnear.kinds: only these kinds:prohibited,restricted,warning,alert,moa,danger,class_b,class_c,class_d,tfr. Default all.as_of: replay: only the TFRs known at that time.include_geometry(default false): each airspace's area as GeoJSON.
Levels come from the flight object as for the weather route check: waypoints carry alt_ft, fl or alt_m; a route string with a cruise level climbs to a top of climb and descends from a top of descent added as points (see Flight object). Without any level nothing is left out by level. With waypoints, give your own top of climb and top of descent for a realistic profile: between points the level is interpolated by distance.
{
"waypoints": [
{ "id": "KLAS", "lat": 36.08, "lon": -115.1522, "alt_ft": 2181 },
{ "id": "TOC", "lat": 35.75, "lon": -115.75, "fl": 250 },
{ "id": "TOD", "lat": 34.35, "lon": -117.6, "fl": 250 },
{ "id": "KLAX", "lat": 33.9425, "lon": -118.4081, "alt_ft": 128 }
],
"departure": "2026-10-14T18:00:00Z",
"speed_kt": 300
}
Response (shortened; waypoints KLAS, top of climb, top of descent, KLAX at FL250):
{
"summary": "The flight enters 11 airspaces (2 restricted areas, 6 class B areas, 3 TFRs), first LAS VEGAS CLASS B at 0 NM (18:00Z, 2181 ft); 20 more are near; 12 in force during the flight cannot be placed (see unplaced).",
"airspaces": [
{
"id": "faa_sua:10FDAEFA-40E3-4810-B1D9-A71CB0F97F74",
"source": "faa_sua",
"kind": "restricted",
"name": "R-2508",
"lower": {"ft": 20000, "ref": "MSL", "text": "20000 ft MSL", "inclusive": true, "matched_ft": 20000},
"upper": {"ft": null, "ref": "UNL", "text": "unlimited", "inclusive": true, "matched_ft": null},
"times_of_use": "CONTINUOUS",
"controlling": "FAA, JOSHUA CONTROL FACILITY, EDWARDS AFB, CA",
"state": "CA",
"placement": "enters",
"chainage_nm": 72.4,
"entries": [{ "from_nm": 72.4, "to_nm": 91.5, "from_time": "2026-10-14T18:14:29Z", "to_time": "2026-10-14T18:18:18Z", "level_from_ft": 25000, "level_to_ft": 25000, "track_inside": true }],
"min_offset_nm": 0,
"clear_by": null,
"notes": []
}
],
"unplaced": [{ "source": "faa_tfr", "id": "faa_tfr:0/0367", "notam": "0/0367", "type": "SECURITY", "text": "!FDC 0/0367 FDC PART 1 OF 4 SECURITY SPECIAL SECURITY INSTRUCTIONS (SSI) FOR SELECT SPORTING EVENTS ...", "why": "no shape published; a national notice (FDC), listed for every flight in or near US airspace", "location": "FDC", "scope": "national" }],
"flight": { "length_nm": 206, "departure": "2026-10-14T18:00:00Z", "arrival": "2026-10-14T18:41:12Z", "half_width_nm": 5, "fixes": [] },
"meta": { "as_of": { "time": "..." }, "sources": { "faa_sua": { "edited_at": "2026-09-28T13:54:26.108Z", "imported_at": "...", "features": 1527 }, "faa_class": {}, "faa_tfr": { "last_poll": "...", "listed": 76, "stale": false } }, "truncated": false, "caveats": [] }
}
airspaces[]: the entered ones in order along the track, then the near ones. Where Class B airspace is built of shelves, each shelf is its own airspace. Each haskind,name,ident,chainage_nm(the first entry, or where the corridor first meets it),lowerandupper,times_of_useandcontrollingfor special use and class airspace, andplacement:enterswith itsentries(the stretches where the aircraft is inside: distance along the track in NM, times and the aircraft's levels), ornearwithmin_offset_nmandclear_by:level(the aircraft is above or below it there),time(not in force then) ordistance(the track passes outside it).lowerandupper:ftas published in its own reference (18000 for FL180, 3000 for 3000 ft AGL, 0 for the surface, null for unlimited),ref(SFC,MSL,AGL,FLorUNL),textas published,inclusive(false for "to but not including" and "above but not including": the limit level itself is outside) andmatched_ft, the level the placement matched in feet above sea level, flight levels taken as pressure altitude. There is no terrain model: a limit given above ground level is widened by the highest terrain in its state, so a flight is never cleared by a guess about the ground, andnotessays so.- A TFR adds
tfr:notam,type,rule,effective_from,effective_to(null for until further notice),schedule,text,areaandshape(published: drawn from the area's own circles, arcs and points;merged: the FAA's outline of the whole TFR). A TFR in force during the flight with no published shape cannot be placed: it is inunplacedwith its text, and the summary counts it. Each carrieslocation, the NOTAM's location, andscope. A notice issued for an ARTCC (such as the Washington DC instructions, location ZDC) is listed only when the route passes through that centre, withscope: "artcc"and the centre inartcc. A national notice (location FDC or ZZZ: the special security instructions for sporting events, unmanned aircraft and national security) is listed for every flight in or near US airspace, withscope: "national".meta.unplaced_filtersays what was picked:route_artccs(the centres the track enters),near_artccs,us_airspace(in,near,outsideorunknown), and the notices left out (left_out_artcc,left_out_by_artcc,left_out_national). The ARTCC boundaries come from the FAA's Boundary_Airspace layer (meta.sources.faa_artcc); until they are loaded every notice is listed, withapplied: false. - Special use airspace counts as in force at all times. Its published times of use are given, but whether it is active is not known here: check NOTAMs or the controlling agency. A TFR with a daily schedule counts as in force over its whole effective window; its hours are in
schedule. meta.sources: when each FAA dataset was edited and imported, and when the TFR list was last polled (stalewhen it is late).meta.truncated: more airspace met the corridor than one answer lists; narrowhalf_width_nmorkinds.meta.caveats: what the answer cannot know. Read them before relying on an answer.