Temporary Flight Restrictions

Background

Temporary Flight Restrictions (TFRs) are a subset of  Notices to Air Missions (NOTAMs). The purpose of NOTAMs are to “distribute information regarding unanticipated or temporary changes to services, components of, or hazards in, the National Airspace System”. TFRs are used by the FAA to restrict flight operations within designated areas, and are issued for a variety of reasons such as:

  • protecting aircraft from surface-based hazards such as toxic gas spills or volcanic eruptions
  • restricting overflights through certain airspace for reasons of national security
  • providing a safe environment for the operation of disaster relief aircraft, e.g. firefighting activities, avalanche control, and search/rescue missions
  • separating “non-participating” aircraft from those engaged in law enforcement operations
  • protection of persons or property on the surface and preventing unsafe aerial congestion in the vicinity of major sporting events or aerial demonstrations

TFRs are continually being published, changed, expired, and cancelled. In order to provide the most recent official information, when you query one of the DFlight API /restrictions endpoints we in turn retrieve the current TFRs in real time from the Federal NOTAM System (FNS). Note that this means the response time for /restrictions endpoints could be several seconds instead of the few milliseconds experienced with other DFlight API endpoints. Be sure to set an appropriate timeout value.

The restrictions request body

Request bodies for /restrictions endpoints are “basic”,  meaning the only information you need to provide are those parameters that define your area of interest (point/distance, route, or poly). For this example we will use a distance request. Here is our request body:
{
    "longitude": -85.80,
    "latitude": 38.21,
    "distance": 5000}
}

and we’ll send our POST request to the /restrictions/distance-query endpoint. 

As with all request types (except airspace), the response body is a json object containing a single element named found. The contents of found will be a GeoJSON FeatureCollection with one Feature per TFR found in the requested area of interest. Below shows our returned results, with the dashed circle indicating our requested area. 

Response JSON
{
  "found": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "geometry": {
          "type": "GeometryCollection",
          "geometries": [
            {
              "type": "Polygon",
              "heightInformation": {
                "upperLevel": "1000",
                "uomUpperLevel": "FT",
                "lowerLevel": "0",
                "uomLowerLevel": "FT"
              },
              "coordinates": [
                [
                  [
                    -85.77,
                    38.21974
                  ],
                  [
                    -85.766328,
                    38.219487
                  ],
                  [
                    -85.762767,
                    38.218734
                  ],
                  [
                    -85.759426,
                    38.217504
                  ],
                  [
                    -85.756406,
                    38.215836
                  ],
                  [
                    -85.7538,
                    38.213779
                  ],
                  [
                    -85.751687,
                    38.211396
                  ],
                  [
                    -85.75013,
                    38.20876
                  ],
                  [
                    -85.749176,
                    38.205951
                  ],
                  [
                    -85.748856,
                    38.203054
                  ],
                  [
                    -85.749178,
                    38.200156
                  ],
                  [
                    -85.750133,
                    38.197347
                  ],
                  [
                    -85.751691,
                    38.194712
                  ],
                  [
                    -85.753805,
                    38.19233
                  ],
                  [
                    -85.756411,
                    38.190274
                  ],
                  [
                    -85.75943,
                    38.188606
                  ],
                  [
                    -85.76277,
                    38.187377
                  ],
                  [
                    -85.766329,
                    38.186624
                  ],
                  [
                    -85.77,
                    38.186371
                  ],
                  [
                    -85.773671,
                    38.186624
                  ],
                  [
                    -85.77723,
                    38.187377
                  ],
                  [
                    -85.78057,
                    38.188606
                  ],
                  [
                    -85.783589,
                    38.190274
                  ],
                  [
                    -85.786195,
                    38.19233
                  ],
                  [
                    -85.788309,
                    38.194712
                  ],
                  [
                    -85.789867,
                    38.197347
                  ],
                  [
                    -85.790822,
                    38.200156
                  ],
                  [
                    -85.791144,
                    38.203054
                  ],
                  [
                    -85.790824,
                    38.205951
                  ],
                  [
                    -85.78987,
                    38.20876
                  ],
                  [
                    -85.788313,
                    38.211396
                  ],
                  [
                    -85.7862,
                    38.213779
                  ],
                  [
                    -85.783593,
                    38.215836
                  ],
                  [
                    -85.780574,
                    38.217504
                  ],
                  [
                    -85.777233,
                    38.218734
                  ],
                  [
                    -85.773672,
                    38.219487
                  ],
                  [
                    -85.77,
                    38.21974
                  ]
                ]
              ]
            }
          ]
        },
        "properties": {
          "notam_number": "3/8960",
          "startDateTime": "2023-05-04T13:00:00.000Z",
          "endDateTime": "2023-05-04T17:00:00.000Z",
          "text": "KY..AIRSPACE LOUISVILLE, KY..TEMPORARY FLIGHTRESTRICTIONS. MAY 4, 2023 LOCAL. PURSUANT TO 49 USC 40103(B)(3), THE FEDERAL AVIATION ADMINISTRATION (FAA) CLASSIFIES THE AIRSPACE DEFINED IN THIS NOTAM AS 'NTL DEFENSE AIRSPACE'. PILOTS WHO DO NOT ADHERE TO THE FOLLOWING PROC MAY BE INTERCEPTED, DETAINED AND INTERVIEWED BY LAW ENFORCEMENT/SECURITY PERSONNEL. ANY OF THE FOLLOWING ADDITIONAL ACTIONS MAY ALSO BE TAKEN AGAINST A PILOT WHO DOES NOT COMPLY WITH THE RQMNTS OR ANY SPECIAL INSTRUCTIONS OR PROC ANNOUNCED IN THIS NOTAM: A) THE FAA MAY TAKE ADMINISTRATIVE ACTION, INCLUDING IMPOSING CIVIL PENALTIES AND THE SUSPENSION OR REVOCATION OF AIRMEN CERTIFICATES; OR B) THE UNITED STATES GOVERNMENT MAY PURSUE CRIMINAL CHARGES, INCLUDING CHARGES UNDER 49 USC SECTION 46307; OR C) THE UNITED STATES GOVERNMENT MAY USE DEADLY FORCE AGAINST THE AIRBORNE ACFT, IF IT IS DETERMINED THAT THE ACFT POSES AN IMMINENTEND PART 1 OF 4KY..AIRSPACE LOUISVILLE, KY..TEMPORARY FLIGHTSECURITY THREAT. PURSUANT TO 14 CFR 99.7, SPECIAL SECURITY INSTRUCTIONS (SSI), ALL UNMANNED ACFT SYSTEM (UAS) FLT OPS ARE PROHIBITED: WI AN AREA DEFINED AS 1NM RADIUS OF 381211N0854612W (IIU302010.9) SFC-1000FT AGL EFFECTIVE 2305041300 UTC (0900 LOCAL 05/04/23) UNTIL 2305041700 UTC (1300 LOCAL 05/04/23). EXC AS SPECIFIED BLW:A. UAS OPS MAY BE AUTH WI THE DEFINED SSI AIRSPACE IF IN COMPLIANCE WITH THE RQMNTS LISTED BLW: 1) UAS OPS IN DCT SUPPORT OF AN ACT NTL DEFENSE, HOMELAND SECURITY, LAW ENFORCEMENT, FIREFIGHTING, SAR, OR DISASTER RESPONSE MISSION; 2) UAS OPS IN SUPPORT OF EVENT OPS; 3) COMMERCIAL UAS OPS WITH A VALID STATEMENT OF WORK; 4) MUST BE IN POSSESSION OF AN APPROVED SPECIAL GOVERNMENTAL INTEREST(SGI)END PART 2 OF 4KY..AIRSPACE LOUISVILLE, KY..TEMPORARY FLIGHT AIRSPACE WAIVER; 5) AND COMPLY WITH ALL OTHER APPLICABLE FEDERAL AVIATION REGULATIONS.B. UAS OPR IDENTIFIED IN A.1, A.2 OR A.3 ABV MUST APPLY FOR A SGI WAIVER VIA EMAIL AT 9-ATOR-HQ-SOSC@FAA.GOV.C. UAS OPR WHO DO NOT COMPLY WITH APPLICABLE AIRSPACE RESTRICTIONS ARE WARNED THAT PURSUANT TO 10 U.S.C.SECTION 130I AND 6 U.S.C.SECTION 124N, THE DEPARTMENT OF DEFENSE(DOD), THE DEPARTMENT OF HOMELAND SECURITY(DHS) OR THE DEPARTMENT OF JUSTICE(DOJ) MAY TAKE SECURITY ACTION THAT RESULTS IN THE INTERFERENCE, DISRUPTION, SEIZURE, DAMAGING, OR DESTRUCTION OF UNMANNED ACFT DEEMED TO POSE A CREDIBLE SAFETY OR SECURITY THREAT TO PROTECTED PERSONNEL, FAC, OR ASSETS.D. THE SYSTEM OPS SUPPORT CENTER (SOSC), IS THE CDN FAC FOR OPR ACCESS AND IS AVBL DLY FM 0600-2359 EASTERN, TEL 202-267-8276 FOR CDN.E. THE FAA RECOMMENDS THAT ALL ACFT OPR CK NOTAMSEND PART 3 OF 4KY..AIRSPACE LOUISVILLE, KY..TEMPORARY FLIGHT FREQUENTLY FOR POSSIBLE CHANGES TO THIS TFR PRIOR TO OPS WI THIS REGION.OPR MAY REVIEW THE TFR DETAILS ON THE INTERNET AT HTTPS://TFR.FAA.GOV/ OR HTTPS://WWW.1800WXBRIEF.COM. IF QUESTIONS REMAIN, CTC FSS, TEL 800-992-7433.END PART 4 OF 4"
        }
      },
      {
        "type": "Feature",
        "geometry": {
          "type": "GeometryCollection",
          "geometries": [
            {
              "type": "Polygon",
              "heightInformation": {
                "upperLevel": "2000",
                "uomUpperLevel": "FT",
                "lowerLevel": "0",
                "uomLowerLevel": "FT"
              },
              "coordinates": [
                [
                  [
                    -85.77,
                    38.236425
                  ],
                  [
                    -85.762653,
                    38.235918
                  ],
                  [
                    -85.75553,
                    38.234411
                  ],
                  [
                    -85.748848,
                    38.231952
                  ],
                  [
                    -85.742808,
                    38.228615
                  ],
                  [
                    -85.737596,
                    38.2245
                  ],
                  [
                    -85.733369,
                    38.219734
                  ],
                  [
                    -85.730256,
                    38.214462
                  ],
                  [
                    -85.728351,
                    38.208843
                  ],
                  [
                    -85.727712,
                    38.203048
                  ],
                  [
                    -85.728358,
                    38.197254
                  ],
                  [
                    -85.730268,
                    38.191636
                  ],
                  [
                    -85.733386,
                    38.186365
                  ],
                  [
                    -85.737615,
                    38.181602
                  ],
                  [
                    -85.742827,
                    38.17749
                  ],
                  [
                    -85.748864,
                    38.174155
                  ],
                  [
                    -85.755543,
                    38.171698
                  ],
                  [
                    -85.76266,
                    38.170193
                  ],
                  [
                    -85.77,
                    38.169686
                  ],
                  [
                    -85.77734,
                    38.170193
                  ],
                  [
                    -85.784457,
                    38.171698
                  ],
                  [
                    -85.791136,
                    38.174155
                  ],
                  [
                    -85.797173,
                    38.17749
                  ],
                  [
                    -85.802385,
                    38.181602
                  ],
                  [
                    -85.806614,
                    38.186365
                  ],
                  [
                    -85.809732,
                    38.191636
                  ],
                  [
                    -85.811642,
                    38.197254
                  ],
                  [
                    -85.812288,
                    38.203048
                  ],
                  [
                    -85.811649,
                    38.208843
                  ],
                  [
                    -85.809744,
                    38.214462
                  ],
                  [
                    -85.806631,
                    38.219734
                  ],
                  [
                    -85.802404,
                    38.2245
                  ],
                  [
                    -85.797192,
                    38.228615
                  ],
                  [
                    -85.791152,
                    38.231952
                  ],
                  [
                    -85.78447,
                    38.234411
                  ],
                  [
                    -85.777347,
                    38.235918
                  ],
                  [
                    -85.77,
                    38.236425
                  ]
                ]
              ]
            }
          ]
        },
        "properties": {
          "notam_number": "3/8961",
          "startDateTime": "2023-05-05T14:00:00.000Z",
          "endDateTime": "2023-05-07T02:00:00.000Z",
          "text": "KY..AIRSPACE LOUISVILLE, KY..TEMPORARY FLIGHTRESTRICTIONS. MAY 5-6, 2023 LOCAL. PURSUANT TO 49 USC 40103(B)(3), THE FEDERAL AVIATION ADMINISTRATION (FAA) CLASSIFIES THE AIRSPACE DEFINED IN THIS NOTAM AS 'NTL DEFENSE AIRSPACE'. PILOTS WHO DO NOT ADHERE TO THE FOLLOWING PROC MAY BE INTERCEPTED, DETAINED AND INTERVIEWED BY LAW ENFORCEMENT/SECURITY PERSONNEL. ANY OF THE FOLLOWING ADDITIONAL ACTIONS MAY ALSO BE TAKEN AGAINST A PILOT WHO DOES NOT COMPLY WITH THE RQMNTS OR ANY SPECIAL INSTRUCTIONS OR PROC ANNOUNCED IN THIS NOTAM: A) THE FAA MAY TAKE ADMINISTRATIVE ACTION, INCLUDING IMPOSING CIVIL PENALTIES AND THE SUSPENSION OR REVOCATION OF AIRMEN CERTIFICATES; OR B) THE UNITED STATES GOVERNMENT MAY PURSUE CRIMINAL CHARGES, INCLUDING CHARGES UNDER 49 USC SECTION 46307; OR C) THE UNITED STATES GOVERNMENT MAY USE DEADLY FORCE AGAINST THE AIRBORNE ACFT, IF IT IS DETERMINED THAT THE ACFT POSES AN IMMINENT SECURITY THREAT. PURSUANT TO 14 CFR 99.7, SPECIAL SECURITY INSTRUCTIONS (SSI), ALLEND PART 1 OF 4KY..AIRSPACE LOUISVILLE, KY..TEMPORARY FLIGHTUNMANNED ACFT SYSTEM (UAS) FLT OPS ARE PROHIBITED: WI AN AREA DEFINED AS 2NM RADIUS OF 381211N0854612W (IIU302010.9) SFC-2000FT AGL EFFECTIVE 2305051400 UTC (1000 LOCAL 05/05/23) UNTIL 2305070200 UTC (2200 LOCAL 05/06/23) DLY 1400-0200 (1000-2200 LOCAL). EXC AS SPECIFIED BLW:A. UAS OPS MAY BE AUTH WI THE DEFINED SSI AIRSPACE IF IN COMPLIANCE WITH THE RQMNTS LISTED BLW: 1) UAS OPS IN DCT SUPPORT OF AN ACT NTL DEFENSE, HOMELAND SECURITY, LAW ENFORCEMENT, FIREFIGHTING, SAR, OR DISASTER RESPONSE MISSION; 2) UAS OPS IN SUPPORT OF EVENT OPS; 3) COMMERCIAL UAS OPS WITH A VALID STATEMENT OF WORK; 4) MUST BE IN POSSESSION OF AN APPROVED SPECIAL GOVERNMENTAL INTEREST(SGI) AIRSPACE WAIVER; 5) AND COMPLY WITH ALL OTHEREND PART 2 OF 4KY..AIRSPACE LOUISVILLE, KY..TEMPORARY FLIGHT APPLICABLE FEDERAL AVIATION REGULATIONS.B. UAS OPR IDENTIFIED IN A.1, A.2 OR A.3 ABV MUST APPLY FOR A SGI WAIVER VIA EMAIL AT 9-ATOR-HQ-SOSC@FAA.GOV.C. UAS OPR WHO DO NOT COMPLY WITH APPLICABLE AIRSPACE RESTRICTIONS ARE WARNED THAT PURSUANT TO 10 U.S.C.SECTION 130I AND 6 U.S.C.SECTION 124N, THE DEPARTMENT OF DEFENSE(DOD), THE DEPARTMENT OF HOMELAND SECURITY(DHS) OR THE DEPARTMENT OF JUSTICE(DOJ) MAY TAKE SECURITY ACTION THAT RESULTS IN THE INTERFERENCE, DISRUPTION, SEIZURE, DAMAGING, OR DESTRUCTION OF UNMANNED ACFT DEEMED TO POSE A CREDIBLE SAFETY OR SECURITY THREAT TO PROTECTED PERSONNEL, FAC, OR ASSETS.D. THE SYSTEM OPS SUPPORT CENTER (SOSC), IS THE CDN FAC FOR OPR ACCESS AND IS AVBL DLY FM 0600-2359 EASTERN, TEL 202-267-8276 FOR CDN.E. THE FAA RECOMMENDS THAT ALL ACFT OPR CK NOTAMS FREQUENTLY FOR POSSIBLE CHANGES TO THIS TFR PRIOREND PART 3 OF 4KY..AIRSPACE LOUISVILLE, KY..TEMPORARY FLIGHT TO OPS WI THIS REGION.OPR MAY REVIEW THE TFR DETAILS ON THE INTERNET AT HTTPS://TFR.FAA.GOV/ OR HTTPS://WWW.1800WXBRIEF.COM. IF QUESTIONS REMAIN, CTC FSS, TEL 800-992-7433.END PART 4 OF 4"
        }
      }
    ]
  }
}

The feature properties given for restrictions are:

  • notam_number: composed as year-of-issuance/serial-number (only last digit of the year)
  • startDateTime: day/time when restriction starts
  • endDateTime: day/time when the restriction ends
  • text: will include the purpose or reason for the restriction, textual description of the area impacted, and the FAA coordination facility telephone number

Be aware of the following conventions applicable to TFRs:

    •  Multiple areas may be specified in one TFR when the areas are in the same ARTCC airspace
    • A separate TFR will be given for each effective period when there are multiple
    •  The impacted altitudes are included in the Geometry element of the GeoJSON feature as heightInformation
    • Given that a single TFR can apply to multiple separate areas, the GeoJSON type used for all geometries will be a GeometryCollection (even if it contains only a single item in the “geometries” list).
{
  "found": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "geometry": {
          "type": "GeometryCollection",
          "geometries": [
            {
              "type": "Polygon",
              "heightInformation": {
                "upperLevel": "1000",
                "uomUpperLevel": "FT",
                "lowerLevel": "0",
                "uomLowerLevel": "FT"
              },
              "coordinates": [
                [ [-85.77, 38.21974], [-85.766328, 38.219487], ....