The Basics

The AirMap API gives you access to a wide range of airspace services to use in your app or device. The interface strives to be RESTful and easy to use.

Before you can use the AirMap API, you will need to create a free AirMap account and apply to become a developer. If approved, you will then be given an API key, which is required for most API calls and to use the SDK.

Response Format

All of AirMap's REST API responses conform to the JSend Specification. This means that every response will have a status and a data field in the JSON response. The status field will give either a success or fail. In the case of a success, the data field will contain the requested data. In the case of a fail, the data will contain error messages.

For example, in the case of a bad request:

{
  "status": "fail",
  "data": {
    "errors": [
      { "name": "title", "message": "cannot be this ridiculous" },
      { "name": "description", "message": "must be provided" }       
    ]
  }
}

Here is an example of a successful request of a public profile:

{
  "status": "success",
  "data": {
    "id": "auth0|abc123",
    "username": "R2theD2"
  }
}

Errors

The AirMap API returns errors consistent with the standard HTTP status codes along with error objects that describe the error in detail. The following pattern generally applies:

2xx

The request was received, understood, and accepted by AirMap.

4xx

The request has an error. Check the error object for details about what is wrong.

5xx

Something went wrong on AirMap's side. Please open a support ticket or contact AirMap.

Dates

AirMap formats all dates according to the sub-formats of the ISO 8601 standard:

  • yyyy-MM-dd'T'HH:mm:ss.SSSZ
  • yyyy-MM-dd'T'HH:mm:ssZ
Suggest Edits

Authorization

 

Requests to AirMap APIs require authorization; that is, the user must have granted permission for an application to access the requested data. To prove that the user has granted permission, the request header sent by the application must include a valid access token. Additionally, you'll need a valid API key.

The AirMap Developer Portal will allow you to create an organization and manage your applications. Once an application is created, you will be granted an access token and API key for the services desired.

For more information on getting access to our SDKs and APIs, please visit our Getting Started page.

Suggest Edits

Airspace Layers

 

These are all the available airspace layers that can be used in the Map SDK. See the Available Airspace Layers for more info.

Note

These layers are only for use in the Map SDK. If you are using the Status or Airspace API, keep scrolling down to Airspace Types

Airports

Layer
Description

airports_recreational

Public Airports (recreational rules)

airports_commercial

Public Airports (commercial rules)

airports_recreational_private

Private Airports (recreational rules)

airports_commerical_private

Private Airports (commercial rules)

Controlled Airspace

Layer
Description

class_b

Class B Airspace

class_c

Class C Airspace

class_d

Class D Airspace

class_e0

Class E to Ground

Cautionary

Layer
Description

sua_prohibited

Prohibited Special Use Airspace

sua_restricted

Restricted Special Use Airspace

national_parks

National Parks

noaa

NOAA Marine Protection Areas

Advisory

Layer
Description

hospitals

Hospitals

heliports

Heliports

power_plants

Power Plants

schools

Schools

Temporal

Layer
Description

tfrs

Temporary Flight Restrictions

wildfires

Wildfires (realtime)

fires

City and County Fires (realtime)

emergencies

First Responder Activity (realtime)

Suggest Edits

Airspace Types

 

Airspace objects represent all the different advisories in which a UAS operator may be interested. The Airspace objects are returned in both the Status API and the Airspace API. For a detailed look at each type, please see below. A description and example JSON response is given for each type. The JSON response is what is returned from the Airspace API. The Status API is similar, except it will not return the GeoJSON geometry of each object.

Here is a summary of all the different types of airspace objects, and the identifier that you should use when filtering in the APIs:

Type
Identifier

Airports

airport

Controlled Airspace

controlled_airspace

Special Use Airspace

special_use_airspace

Temporary Flight Restrictions

tfr

Wildfires

wildfire

Parks

park

Power Plants

power_plant

Heliports

heliport

Prisons

prison

Schools

school

Hospitals

hospital

Fires

fire

Emergencies

emergency

Identifier: park

Types of parks included in this Airspace object:

• National Park
• City Park
• Marine Protected Area (NOAA)

{
  "status": "success",
  "data": {
    "id": "3621d752-e870-4a5d-8756-781d82568f6f",
    "name": "Yosemite",
    "type": "park",
    "country": "USA",
    "state": "California",
    "city": "",
    "last_updated": "2016-07-20T20:56:47.000Z",
    "properties": {},
    "geometry": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            -119.845562414,
            37.8327833210298
          ],
          [
            -119.850205576,
            37.8326633630297
          ],
          [
            -119.854848738,
            37.8325444040298
          ],
          [
            -119.85481875,
            37.8363413140297
          ],
          [
            -119.854788763,
            37.8401382230297
          ],
          [
            -119.850159602,
            37.8401631840298
          ],
          [
            -119.845530442,
            37.8401881460298
          ],
          [
            -119.840885281,
            37.8403051040297
          ],
          [
            -119.840872297,
            37.8439740170297
          ],
          [
            "..."
          ]
        ]
      ]
    }
  }
}
Suggest Edits

Power Plants

 

Identifier: power_plant

{
  "status": "success",
  "data": {
    "id": "36b57fe5-5714-44d7-83b5-2cb34c88af8c",
    "name": "Scattergood",
    "type": "power_plant",
    "country": "USA",
    "state": "California",
    "city": "Playa Dal Ray",
    "last_updated": "2016-07-22T12:49:00.000Z",
    "properties": {
      "tech": "Natural Gas Steam Turbine",
      "plant_code": 404
    },
    "geometry": {
      "type": "Point",
      "coordinates": [
        -118.427648,
        33.918151
      ]
    }
  }
}
Suggest Edits

Heliports

 

Identifier: heliport

These heliports may not be active, and in some instances may be an empty field where helicopters can land in emergencies. Thus, there may be many objects returned, especially in cities. We include this object as an advisory to help alert UAS operators that they should be particularly alert to helicopter traffic in the area.

{
  "status": "success",
  "data": {
    "id": "bab01b0f-49eb-4422-bd2c-642dd58b380d",
    "name": "PALOMAR MEDICAL CENTER",
    "type": "heliport",
    "country": "USA",
    "state": "California",
    "city": "Escondido",
    "last_updated": "2016-08-11T00:15:38.000Z",
    "properties": {
      "faa": "'6CA7",
      "phone": "+17608024541",
      "use": "private"
    },
    "geometry": {
      "type": "Point",
      "coordinates": [
        -117.121944444444,
        33.1223055555556
      ]
    }
  }
}
 

Identifier: school

Types of schools included in this Airspace object:

• University
• High School
• Middle School
• Elementary School
• Other

{
  "status": "success",
  "data": {
    "id": "186b4201-a64d-4eb1-8a18-456ff6e6d34b",
    "name": "ST MONICA CATHOLIC HIGH SCHOOL",
    "type": "school",
    "country": "USA",
    "state": "California",
    "city": "Santa Monica",
    "last_updated": "2016-07-20T17:46:08.000Z",
    "properties": {},
    "geometry": {
      "type": "Point",
      "coordinates": [
        -118.497281,
        34.024436
      ]
    }
  }
}

Identifier: prison

{
  "status": "success",
  "data": {
    "id": "a943d640-8afd-4ce9-b1dc-864c5325105b",
    "name": "California State Prison - Corcoran",
    "type": "prison",
    "country": "USA",
    "state": "California",
    "city": "Corcoran",
    "last_updated": "2016-07-20T17:46:08.000Z",
    "properties": {},
    "geometry": {
      "type": "Point",
      "coordinates": [
        -119.552849,
        36.060114
      ]
    }
  }
}
Suggest Edits

Temporary Flight Restrictions

 

Identifier: tfr

A temporary flight restriction (TFR) is a regulatory action that temporarily restricts certain aircraft from operating within a defined area in order to protect persons or property in the air or on the ground. Common reasons for a TFR include sporting events and national security incidents.

{
  "status": "success",
  "data": {
    "id": "3176b0d6-37c4-4f06-9fa2-5a54db3f0fa2",
    "name": "Temporary flight restrictions for Special Security Reasons",
    "type": "tfr",
    "country": "USA",
    "state": "California",
    "city": "Anaheim",
    "last_updated": "2016-08-23T23:17:29.000Z",
    "properties": {
      "url": "http://tfr.faa.gov/save_pages/detail_4_3635.html",
      "type": "Security",
      "notam_reason": "Temporary flight restrictions for Special Security Reasons:DISNEYLAND THEME PARK, ANAHEIM"
    },
    "geometry": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            -117.921389,
            33.851479
          ],
          [
            -117.910964,
            33.850718
          ],
          [
            -117.900856,
            33.848457
          ],
          [
            -117.891374,
            33.844765
          ],
          [
            -117.882804,
            33.839754
          ],
          [
            -117.875409,
            33.833578
          ],
          [
            -117.869412,
            33.826423
          ],
          [
            -117.864996,
            33.818508
          ],
          [
            -117.862294,
            33.810073
          ],
          [
            -117.861388,
            33.801374
          ],
          [
            -117.862306,
            33.792677
          ],
          [
            -117.865018,
            33.784244
          ],
          [
            -117.869442,
            33.776333
          ],
          [
            -117.875443,
            33.769183
          ],
          [
            -117.882839,
            33.763011
          ],
          [
            -117.891404,
            33.758005
          ],
          [
            -117.900879,
            33.754317
          ],
          [
            -117.910976,
            33.752059
          ],
          [
            -117.921389,
            33.751298
          ],
          [
            -117.931802,
            33.752059
          ],
          [
            -117.941899,
            33.754317
          ],
          [
            -117.951374,
            33.758005
          ],
          [
            -117.959939,
            33.763011
          ],
          [
            -117.967335,
            33.769183
          ],
          [
            -117.973336,
            33.776333
          ],
          [
            -117.97776,
            33.784244
          ],
          [
            -117.980472,
            33.792677
          ],
          [
            -117.981389,
            33.801374
          ],
          [
            -117.980484,
            33.810073
          ],
          [
            -117.977782,
            33.818508
          ],
          [
            -117.973366,
            33.826423
          ],
          [
            -117.967369,
            33.833578
          ],
          [
            -117.959974,
            33.839754
          ],
          [
            -117.951404,
            33.844765
          ],
          [
            -117.941922,
            33.848457
          ],
          [
            -117.931814,
            33.850718
          ],
          [
            -117.921389,
            33.851479
          ]
        ]
      ]
    }
  }
}
 

Identifier: airport

{
  "status": "success",
  "data": {
    "id": "bdbd3a36-1a36-405c-8733-2cab6d3aa271",
    "name": "San Francisco Intl",
    "type": "airport",
    "country": "USA",
    "state": "California",
    "city": "San Francisco",
    "last_updated": "2016-08-11T23:33:13.000Z",
    "properties": {
      "iata": "SFO",
      "icao": "KSFO",
      "paved": true,
      "phone": "+16508215000",
      "tower": true,
      "runways": [
        {
          "name": "01L",
          "length": 7650,
          "bearing": 14
        },
        {
          "name": "01R",
          "length": 8650,
          "bearing": 14
        },
        {
          "name": "10L",
          "length": 11870,
          "bearing": 104
        },
        {
          "name": "10R",
          "length": 11381,
          "bearing": 104
        },
        {
          "name": "19L",
          "length": 8650,
          "bearing": 194
        },
        {
          "name": "19R",
          "length": 7650,
          "bearing": 194
        },
        {
          "name": "28L",
          "length": 11381,
          "bearing": 284
        },
        {
          "name": "28R",
          "length": 11870,
          "bearing": 284
        }
      ],
      "elevation": 13,
      "longest_runway": 11870,
      "instrument_approach_procedure": true,
      "use": "public"
    },
    "geometry": {
      "type": "Point",
      "coordinates": [
        -122.375416666667,
        37.6188055555556
      ]
    },
    "rules": [
      {
        "name": "Commercial Rules",
        "geometry": {
          "type": "Polygon",
          "coordinates": [
            [
              [
                -122.270495071032,
                37.6182035459562
              ],
              [
                -122.272669663847,
                37.6019340955551
              ],
              [
                -122.278790041503,
                37.5863144767897
              ],
              [
                -122.288618882919,
                37.5719443404376
              ],
              [
                -122.301777091749,
                37.5593750517554
              ],
              [
                -122.317758572282,
                37.5490886345066
              ],
              [
                -122.335949742127,
                37.5414793998077
              ],
              [
                -122.355653022862,
                37.5368389427161
              ],
              [
                -122.376113419842,
                37.5353450606707
              ],
              [
                -122.396547204286,
                37.5370550010954
              ],
              [
                -122.416171645377,
                37.5419032857199
              ],
              [
                -122.434234707722,
                37.5497041916284
              ],
              [
                -122.450043630358,
                37.5601587989399
              ],
              [
                -122.462991337376,
                37.5728663476202
              ],
              [
                -122.472579697415,
                37.5873394864869
              ],
              [
                -122.478438749262,
                37.6030228512052
              ],
              [
                -122.480341142913,
                37.6193142800962
              ],
              [
                -122.47821120794,
                37.6355878717507
              ],
              [
                -122.472128250883,
                37.6512180112555
              ],
              [
                -122.462323895897,
                37.6656034461621
              ],
              [
                -122.449173511467,
                37.6781904821636
              ],
              [
                -122.433182002054,
                37.6884943936337
              ],
              [
                -122.414964476802,
                37.696118206112
              ],
              [
                -122.395222526485,
                37.7007681051901
              ],
              [
                -122.374717032867,
                37.7022648559564
              ],
              [
                -122.354238590336,
                37.7005507742444
              ],
              [
                -122.334576728553,
                37.6956919688051
              ],
              [
                -122.31648917989,
                37.6878757642694
              ],
              [
                -122.300672433108,
                37.6774034096114
              ],
              [
                -122.287734755215,
                37.6646783667437
              ],
              [
                -122.278172750676,
                37.6501906501729
              ],
              [
                -122.272352368298,
                37.6344978435407
              ],
              [
                -122.270495071032,
                37.6182035459562
              ]
            ]
          ]
        }
      },
      {
        "name": "Recreational Rules",
        "geometry": "{...}"
      }
    ],
    "related_geometry": {
      "property_boundary": {
        "id": "e67294df-e424-4f62-a44b-a265af73941b",
        "geometry": "{...}"
      }
    }
  }
}
Suggest Edits

Controlled Airspace

 

Identifier: controlled_airspace

Controlled Airspace is airspace where air traffic control services are defined. Some countries require authorization prior to flight in controlled airspace. AirMap provides all controlled airspace under 500 ft

{
  "status": "success",
  "data": {
    "id": "94089474-83ff-4f49-88aa-af419a33a54f",
    "name": "LOS ANGELES CLASS B AREA A",
    "type": "controlled_airspace",
    "country": "USA",
    "state": "",
    "city": "",
    "last_updated": "2016-07-20T17:46:08.000Z",
    "properties": {},
    "geometry": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            -118.745277777778,
            33.9972222222222
          ],
          [
            -118.5425,
            34.0063888888889
          ],
          [
            -118.456388888889,
            33.9616666666667
          ],
          [
            -118.369444444444,
            33.9616666666667
          ],
          [
            -118.25,
            34.0166666666667
          ],
          [
            -118.231111111111,
            33.93
          ],
          [
            -118.434722222222,
            33.9308333333333
          ],
          [
            -118.450277777778,
            33.7594444444444
          ],
          [
            -118.541388888889,
            33.7538888888889
          ],
          [
            -118.745277777778,
            33.9972222222222
          ]
        ]
      ]
    }
  }
}
Suggest Edits

Special Use Airspace

 

Identifier: special_use_airspace

Special Use Airspace includes airspace that is prohibited, restricted or otherwise designated as a dangerous area to operate an aircraft.

{
  "status": "success",
  "data": {
    "id": "e06c06eb-5c9a-47e9-a8fa-db47170dc642",
    "name": "R6404A (HILL AFB, UT)",
    "type": "special_use_airspace",
    "country": "USA",
    "state": null,
    "city": null,
    "last_updated": "2016-07-29T21:23:28.000Z",
    "properties": {
      "type": "Restricted"
    },
    "geometry": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            -112.759167,
            41.191667
          ],
          [
            -112.650833,
            41.116667
          ],
          [
            -112.650833,
            41.016667
          ],
          [
            -112.8425,
            40.916667
          ],
          [
            -114.000833,
            40.916667
          ],
          [
            -114.0425,
            40.925
          ],
          [
            -114.0425,
            41.141667
          ],
          [
            -113.834167,
            41.266667
          ],
          [
            -113.29636,
            41.230422
          ],
          [
            -112.759167,
            41.191667
          ]
        ]
      ]
    }
  }
}
Suggest Edits

Wildfires

 

Identifier: wildfire

The FAA does not issue Temporary Flight Restrictions for the vast majority of fires in the United States, even though many are fought with firefighting aircraft. In many states, interfering with firefighting activity is considered a crime. This object includes realtime wildfires.

{
  "status": "success",
  "data": {
    "id": "e25bed06-ba8e-488c-9ff7-06a54c644ae9",
    "name": "Wildfire",
    "type": "wildfire",
    "country": "USA",
    "state": "California",
    "city": "Tehachapi",
    "last_updated": "2016-08-12T18:45:02.000Z",
    "properties": {
      "date_effective": "August 11, 2016"
    },
    "geometry": {
      "type": "Point",
      "coordinates": [
        -118.432234530465,
        35.0969494022499
      ]
    }
  }
}
 

Identifier: hospital

Hospital

Hospital

{
  "status": "success",
  "data": {
    "id": "dced5845-aa31-4e3e-b232-7eb9071eace6",
    "name": "Davis Hospital and Medical Center",
    "type": "hospital",
    "country": "USA",
    "state": "Utah",
    "city": "Layton",
    "last_updated": "2016-07-20T17:46:08.000Z",
    "properties": {},
    "geometry": {
      "type": "Point",
      "coordinates": [
        -111.995573,
        41.09108
      ]
    }
  }
}
 

Information about drone manufacturers, models, and metadata.

Suggest Edits

Get Manufacturers

Get a list of aircraft manufacturers.

 
gethttps://api.airmap.com/aircraft/v2/manufacturer
curl -X "GET" "https://api.airmap.com/aircraft/v2/manufacturer?" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": [
    {
      "id": "b6d8ec6e-a57a-4742-8983-923196d55b1b",
      "name": "LaTrax"
    },
    {
      "id": "8d0cf81a-2709-47d2-945d-56e120f61626",
      "name": "TBS"
    },
    {
      "id": "d280ceed-2a64-4076-9479-7b91038678d9",
      "name": "3D Robotics"
    },
    {
      "id": "2a55b47e-ca49-4b7e-99c7-dee9cd784ec9",
      "name": "DJI"
    },
    {
      "id": "3d7e01fe-3c79-4a0c-86bf-ce6115992024",
      "name": "Quanum"
    },
    {
      "id": "0c71de37-d500-4702-91ef-56d7ec606aa7",
      "name": "Yuneec"
    },
    {
      "id": "6f25a640-60d9-4b98-8602-67094b7a8914",
      "name": "Parrot"
    },
    {
      "id": "2bd7c486-5b35-4da9-96d8-1a520c328c65",
      "name": "Lumenier"
    },
    {
      "id": "3bb10775-4567-4c16-8477-df013ae60237",
      "name": "Other"
    }
  ]
}

Query Params

q
string

Filter by Manufacturer Name.

Headers

X-API-Key
string

Key provided by AirMap.

 

Use this endpoint to get a list of all available drone manufacturers. You may also include a query string to search based on the provided text.

Suggest Edits

Get Models

Get a list of aircraft models.

 
gethttps://api.airmap.com/aircraft/v2/model
curl -X "GET" "https://api.airmap.com/aircraft/v2/model?manufacturer=2a55b47e-ca49-4b7e-99c7-dee9cd784ec9&q=phantom" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": [
    {
      "id": "b3b1c26f-06da-4eae-9390-667c90039175",
      "name": "Phantom 3",
      "manufacturer": {
        "id": "2a55b47e-ca49-4b7e-99c7-dee9cd784ec9",
        "name": "DJI"
      }
    },
    {
      "id": "0bdc3e35-75ba-4e02-9040-d336d11f5202",
      "name": "Phantom 1",
      "manufacturer": {
        "id": "2a55b47e-ca49-4b7e-99c7-dee9cd784ec9",
        "name": "DJI"
      }
    },
    {
      "id": "692fb4f0-fcf7-4f6b-9943-4292b061f09e",
      "name": "Phantom 2",
      "manufacturer": {
        "id": "2a55b47e-ca49-4b7e-99c7-dee9cd784ec9",
        "name": "DJI"
      }
    },
    {
      "id": "786bbd91-0509-4a36-94eb-f9fa46d1d20b",
      "name": "Phantom 4",
      "manufacturer": {
        "id": "2a55b47e-ca49-4b7e-99c7-dee9cd784ec9",
        "name": "DJI"
      }
    }
  ]
}

Query Params

manufacturer
string

Filter by Manufacturer ID.

q
string

Filter by Model Name.

Headers

X-API-Key
string

Key provided by AirMap.

 

Use this endpoint to get a list of all available drone models. You may also include a query string to search for a manufacturer or model based on the provided text.

Suggest Edits

Get Model By ID

Get details about a specific aircraft.

 
gethttps://api.airmap.com/aircraft/v2/model/id
curl -X "GET" "https://api.airmap.com/aircraft/v2/model/786bbd91-0509-4a36-94eb-f9fa46d1d20b" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "id": "786bbd91-0509-4a36-94eb-f9fa46d1d20b",
    "name": "Phantom 4",
    "manufacturer": {
      "id": "2a55b47e-ca49-4b7e-99c7-dee9cd784ec9",
      "name": "DJI"
    }
  }
}

Path Params

id
string
required

unique id of model

Headers

X-API-Key
string

Key provided by AirMap.

 

Get details on a specific drone model.

 

Create and query flights, verify a pilot meets flight requirements, and provide digital notice.

Suggest Edits

Get Flights

 
gethttps://api.airmap.com/flight/v2
curl -X "GET" "https://api.airmap.com/flight/v2/?country=USA&state=California&city=Santa%20Monica&enhance=true" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated


{
    "id": "c3ddceed-2617-43f3-b514-fd6e35815bf9",
    "pilot": {
        "id": "8cbaa552-9168-4f4a-aa0b-d028631e9cea",
        "username": "mattkoskela",
        "image": "https://cdn.airmap.com/images/users/uuid-asdf-asdf-sdf"
    },
    "aircraft": {
        "id": "fe80eccc-6db5-486e-96ca-dc3b71317d68",
        "make": "DJI",
        "model": "Phantom 3 Advanced",
        "image": "https://cdn.airmap.com/images/aircraft/dji-phantom-3-advanced.jpg",
    },
    "latitude": 34.016685,
    "longitude": 118.495092,
    "altitude": 220,
    "radius": 300,
    "start_time": "2016-05-18T00:28:17+00:00",
    "end_time": "2016-05-18T00:58:17+00:00",
}

Query Params

limit
int32

Bounds: 1, 1000.

geometry
string

GeoJSON or WKT

country
string

3 digit country string - case insensitive.

state
string

Case insensitive.

city
string

Case insensitive.

pilot_id
string
start_after
date-time

Search for flights that start after this time (inclusive). ISO-8601

start_before
date-time

Search for flights that start before this time. ISO-8601

end_after
date-time

Search for flights that end after this time (inclusive). ISO-8601

end_before
date-time

Search for flights that end before this time. ISO-8601

enhance
boolean

Enhances the flight, pilot, and aircraft information.

Headers

Authorization
string

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authentication

API Key Token Result
Yes No Public Flights
Yes Yes - Your Flights Full Response
Yes Yes - Public Flights Public Flights

Note

  • Default Sort: Newest to Oldest
  • Query Combinations:
    ••geometry
    ••country, state, city

Any combination of these can be used, but they will be joined by an AND, not OR. If 'country=Canada' and 'city=Santa Monica' is provided, no results will be sent.
•General Filters: can be used with all query combinations
pilot_id start_after
start_before end_after
*end_before

Suggest Edits

Get Individual Flight

 
gethttps://api.airmap.com/flight/v2/id
curl -X "GET" "https://api.airmap.com/flight/v2/{FLIGHT_ID}?enhance=true" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated


{
    "id": "c3ddceed-2617-43f3-b514-fd6e35815bf9",
    "pilot": {
        "id": "8cbaa552-9168-4f4a-aa0b-d028631e9cea",
        "username": "mattkoskela",
        "image": "https://cdn.airmap.com/images/users/uuid-asdf-asdf-sdf"
    },
    "aircraft": {
        "id": "fe80eccc-6db5-486e-96ca-dc3b71317d68",
        "make": "DJI",
        "model": "Phantom 3 Advanced",
        "image": "https://cdn.airmap.com/images/aircraft/dji-phantom-3-advanced.jpg",
    },
    "latitude": 34.016685,
    "longitude": 118.495092,
    "altitude": 220,
    "radius": 300,
    "start_time": "2016-05-18T00:28:17+00:00",
    "end_time": "2016-05-18T00:58:17+00:00",
}

Path Params

id
string
required

Unique identifier of flight.

Query Params

enhance
boolean

Enhances the flight, pilot, and aircraft information.

Headers

Authorization
string

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authentication

API Key Token Result
Yes No Public Response
Yes Yes - Your Flights Full Response
Yes Yes - Public Flights Public Response
Suggest Edits

Create Flight by Point

 
posthttps://api.airmap.com/flight/v2/point
curl -X "POST" "https://api.airmap.com/flight/v2/point" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{\"latitude\":34.0382223095064,\"longitude\":-118.45424652099608,\"max_altitude\":100,\"aircraft_id\":\"aircraft|9M5NkMKi8Jw6ZptwXKM9Wc4gENxK\",\"start_time\":\"2016-08-05T14:15:06-07:00\",\"end_time\":\"2016-08-05T14:20:06-07:00\",\"public\":true,\"notify\":true}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "id": "flight|ZWRMwRnclvpfQAfLdWLMniDBM9N9",
    "pilot_id": "auth0|576f2bs0sabb9bda040e59d2",
    "latitude": 34.01662428381296,
    "longitude": -118.4951663017273,
    "aircraft_id": "aircraft|9M5dkMfi8Jw6ZptwXKM9W5GgdNsK",
    "start_time": "2016-08-11T13:40:00-07:00",
    "end_time": "2016-08-11T13:45:00-07:00",
    "public": true,
    "notify": true,
    "buffer": 100,
    "geometry": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            -118.49426726202857,
            34.01662428381296
          ],
          [
            -118.49428453682428,
            34.01644888986863
          ],
          [
            -118.49433569735072,
            34.016280236215216
          ],
          [
            -118.49441877753755,
            34.01612480411804
          ],
          [
            -118.49453058465977,
            34.015988566745435
          ],
          [
            -118.49466682203237,
            34.01587675962321
          ],
          [
            -118.49482225412956,
            34.015793679436385
          ],
          [
            -118.49499090778296,
            34.015742518909946
          ],
          [
            -118.4951663017273,
            34.01572524411423
          ],
          [
            -118.49534169567163,
            34.015742518909946
          ],
          [
            -118.49551034932503,
            34.015793679436385
          ],
          [
            -118.49566578142222,
            34.01587675962321
          ],
          [
            -118.49580201879482,
            34.015988566745435
          ],
          [
            -118.49591382591704,
            34.01612480411804
          ],
          [
            -118.49599690610387,
            34.016280236215216
          ],
          [
            -118.49604806663031,
            34.01644888986863
          ],
          [
            -118.49606534142602,
            34.01662428381296
          ],
          [
            -118.49604806663031,
            34.01679967775729
          ],
          [
            -118.49599690610387,
            34.0169683314107
          ],
          [
            -118.49591382591704,
            34.017123763507875
          ],
          [
            -118.49580201879482,
            34.01726000088048
          ],
          [
            -118.49566578142222,
            34.01737180800271
          ],
          [
            -118.49551034932503,
            34.01745488818953
          ],
          [
            -118.49534169567163,
            34.01750604871597
          ],
          [
            -118.4951663017273,
            34.01752332351169
          ],
          [
            -118.49499090778296,
            34.01750604871597
          ],
          [
            -118.49482225412956,
            34.01745488818953
          ],
          [
            -118.49466682203237,
            34.01737180800271
          ],
          [
            -118.49453058465977,
            34.01726000088048
          ],
          [
            -118.49441877753755,
            34.017123763507875
          ],
          [
            -118.49433569735072,
            34.0169683314107
          ],
          [
            -118.49428453682428,
            34.01679967775729
          ],
          [
            -118.49426726202857,
            34.01662428381296
          ]
        ]
      ]
    },
    "created_at": "2016-08-11T20:38:32.486Z",
    "max_altitude": 100,
    "statuses": [
      {
        "manager_id": "city|kZ2nb",
        "status": "accepted"
      },
      {
        "manager_id": "airport|ksmo",
        "status": "accepted"
      }
    ]
  }
}

Body Params

latitude
float
required

Latitude in decimal format (FLOAT). Bounds: -90, 90.

longitude
float
required

Longitude in decimal format (FLOAT). Bounds: -180, 180.

max_altitude
int32

Max altitude above ground in meters. Bounds: (0, 121]

aircraft_id
string

Aircraft associated with the flight.

start_time
string

Takeoff date and time in ISO 8601 format. Bounds: now, +7 days.

end_time
string

Landing date and time in ISO 8601 format. Bounds: > start_time, <= 4 hours from start_time.

public
boolean

Make flight public.

notify
boolean

Give digital notice.

buffer
float

Buffer size around takeoff point in meters. Bounds: 0, 2000

Headers

Authorization
string
required

Example: Bearer <token>

X-API-Key
string
required

Key provided in Developer Portal

 
Suggest Edits

Create Flight by Path

 
posthttps://api.airmap.com/flight/v2/path
curl -X "POST" "https://api.airmap.com/flight/v2/path" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{\"latitude\":34.01666874813674,\"longitude\":-118.49518775939943,\"max_altitude\":100,\"aircraft_id\":\"aircraft|9M5NkMKi8Jw6ZptwXKM9Wc4gENxK\",\"start_time\":\"2016-08-05T10:00:06-07:00\",\"end_time\":\"2016-08-05T10:10:06-07:00\",\"public\":true,\"notify\":true,\"geometry\":{\"type\":\"LineString\",\"coordinates\":[[-118.4951877593994,34.01666874813674],[-118.4951984882355,34.01639306895385],[-118.5012817382812,34.01191982678013],[-118.5024189949036,34.0136273347064],[-118.4996294975281,34.01542373826737],[-118.4966897964478,34.01782481238052],[-118.4952735900879,34.01686439088474]]}}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "id": "flight|dKaQYB6dnsdfwF6m7GQ3aHROKp2",
    "pilot_id": "auth0|526d4b10eda57s4fa0s0esd2",
    "latitude": 34.01666874813674,
    "longitude": -118.49518775939943,
    "aircraft_id": "aircraft|9M5NksKi8fw6ZpswXaM9Wf49ENxK",
    "start_time": "2016-08-05T10:00:06-07:00",
    "end_time": "2016-08-05T10:10:06-07:00",
    "public": true,
    "notify": true,
    "buffer": 0,
    "geometry": {
      "type": "Polygon",
      "coordinates": [
        []
      ]
    },
    "created_at": "2016-08-05T16:56:31.142Z",
    "max_altitude": 100,
    "statuses": []
  }
}

Body Params

latitude
float
required

Latitude in decimal format. Bounds: -90, 90.

longitude
float
required

Longitude in decimal format. Bounds: -180, 180.

max_altitude
int32

Max altitude above ground in meters. Bounds: (0, 121]

aircraft_id
string

Aircraft associated with the flight.

start_time
string

Takeoff date and time in ISO 8601 format. Bounds: now, +7 days.

end_time
string

Landing date and time in ISO 8601 format. Bounds: > start_time, <= 4 hours from start_time.

public
boolean

Make flight public.

notify
boolean

Give digital notice.

buffer
float

Buffer size around takeoff point in meters. Bounds: 0, 2000

geometry
mixed type
required

String of path object in GeoJSON or WKT format.

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

GeoJSON Note

When providing geometry as GeoJSON, please provide only the specific geometry consisting of the type and the coordinates.

{
    "type": "LineString",
    "coordinates": [
        [-118.4951663017273,
            34.016455319170184
        ],
        [-118.49805235862732,
            34.01409867199219
        ],
        [-118.4995651245117,
            34.01348504369081
        ]
    ]
}

Authentication

API Key Token Result
Yes No 401
Yes Yes Allowed
Suggest Edits

Create Flight by Polygon

 
posthttps://api.airmap.com/flight/v2/polygon
curl -X "POST" "https://api.airmap.com/flight/v2/polygon" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{\"latitude\":34.01666874813674,\"longitude\":-118.49518775939943,\"max_altitude\":100,\"aircraft_id\":\"aircraft|9M5NkMKi8Jw6ZptwXKM9Wc4gENxK\",\"start_time\":\"2016-08-09T17:00:00-07:00\",\"end_time\":\"2016-08-09T17:20:00-07:00\",\"public\":true,\"notify\":true,\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[-118.4957242012024,34.01633081869188],[-118.4957242012024,34.01732681740577],[-118.494393825531,34.01732681740577],[-118.494393825531,34.01633081869188],[-118.4957242012024,34.01633081869188]]]}}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "id": "flight|RvDPO7Mss4Rks07fB3fJm7um6R4bp",
    "pilot_id": "auth0|57684b10eabb9bda040e5962",
    "latitude": 34.01666874813674,
    "longitude": -118.4951877593994,
    "aircraft_id": "aircraft|9M5NkM3dfJ06ZptwsKM2W24gGNsK",
    "start_time": "2016-08-11T13:41:00-07:00",
    "end_time": "2016-08-11T13:45:00-07:00",
    "public": true,
    "notify": true,
    "buffer": 0,
    "geometry": {
      "coordinates": [
        [
          [
            -118.4957242012024,
            34.01633081869188
          ],
          [
            -118.4957242012024,
            34.01732681740577
          ],
          [
            -118.494393825531,
            34.01732681740577
          ],
          [
            -118.494393825531,
            34.01633081869188
          ],
          [
            -118.4957242012024,
            34.01633081869188
          ]
        ]
      ],
      "type": "Polygon"
    },
    "created_at": "2016-08-11T20:41:01.138Z",
    "max_altitude": 100,
    "statuses": [
      {
        "manager_id": "city|kZ2nb",
        "status": "accepted"
      },
      {
        "manager_id": "airport|ksmo",
        "status": "accepted"
      }
    ]
  }
}

Body Params

latitude
float
required

Latitude in decimal format. Bounds: -90, 90.

longitude
float
required

Longitude in decimal format. Bounds: -180, 180.

max_altitude
int32

Max altitude above ground in meters. Bounds: (0, 121]

aircraft_id
string

Aircraft associated with the flight.

start_time
string

Takeoff date and time in ISO 8601 format. Bounds: now, +7 days.

end_time
string

Landing date and time in ISO 8601 format. Bounds: > start_time, <= 4 hours from start_time.

public
boolean

Make flight public.

notify
boolean

Give digital notice.

buffer
int32

Buffer size around provided geometry in meters. Bounds: 0, 2000

geometry
string
required

String of path object in GeoJSON or WKT format.

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

GeoJSON Note

When providing geometry as GeoJSON, please provide only the specific geometry consisting of the type and the coordinates.

{
    "type": "Polygon",
    "coordinates": [
        [
            [-118.49572420120239,
                34.016330818691884
            ],
            [-118.49572420120239,
                34.01732681740577
            ],
            [-118.494393825531,
                34.01732681740577
            ],
            [-118.494393825531,
                34.016330818691884
            ],
            [-118.49572420120239,
                34.016330818691884
            ]
        ]
    ]
}

Authorization

API Key Token Result
Yes No 401
Yes Yes Allowed
Suggest Edits

Delete Flight

 
posthttps://api.airmap.com/flight/v2/id/delete
curl -X "POST" "https://api.airmap.com/flight/v2/{FLIGHT_ID}/delete" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated


{
    "id": "c3ddceed-2617-43f3-b514-fd6e35815bf9",
}

Path Params

id
string
required

unique identifier of flight

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authentication

API Key Token Result
Yes No 401
Yes Yes - Your Flight Delete
Yes Yes - Other Flight 404
Suggest Edits

End Flight

 
posthttps://api.airmap.com/flight/v2/id/end
curl -X "POST" "https://api.airmap.com/flight/v2/{FLIGHT_ID}/end" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "end_time": "2012-12-12T12:12:12.121" // ISO8601 format
  }
}

Path Params

id
string
required

unique identifier of flight

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes No 401
Yes Yes - Your Flight Delete
Yes Yes - Other Flight 404
Suggest Edits

Start Flight Communications

Start real time communication for a flight

 
posthttps://api.airmap.com/flight/v2/id/start-comm
curl -X "POST" "https://api.airmap.com/flight/v2/flight|EPz5LKAhdYlgv9uZ0XMbQtb3BoNX/start-comm" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "key": "{SECRET KEY}"
  }
}

Path Params

id
string
required

unique identifier of flight

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-KEY
string
required

Key provided by AirMap.

 
Suggest Edits

End Flight Communications

End real time communication for a flight

 
posthttps://api.airmap.com/flight/v2/id/end-comm
curl -X "POST" "https://api.airmap.com/flight/v2/flight|EPz5LKAhdYlgv9uZ0XMbQtb3BoNX/end-comm" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {}
}

Path Params

id
string
required

unique identifier of flight

Headers

Authorization
string
required

Example: Bearer <token>

X-API-KEY
string
required

Key provided in Developer Portal

 
 

Premium Feature

The Airspace API is a restricted API intended mainly for manufacturers. Please Contact Us for access.

The Airspace API provides detailed geometry of all the airspace advisories in a given area. Each object includes detailed metadata like properties, rules, requirements, etc. Geometry is returned as either GeoJSON or WKT

For more information on the types of airspace objects, please see the Airspace Types

Name
Description

uuid

Airspace ID

name

Airspace Name

type

Airspace Type

country

Country

state

State

city

City

last_updated

Last Updated Timestamp

properties

Airspace metadata and properties that are unique to each airspace object type

geometry

Basic geometry for the airspace object in GeoJSON

related_geometry

Associated geometries that are related to this geometry (such as a runway at an airport)

rules

List of rules for the airspace object

Rules

Name
Description

id

string

Rule ID

name

string

Rule Name

description

string

Rule Description

jurisdiction

string

Rule jurisdiction name

requirements

array

List of requirement objects

restriction_type

string

Rule restriction type

Suggest Edits

Airspace Search

Search for airspace objects by geometry+buffer in either WKT or GeoJSON format.

 
gethttps://api.airmap.com/airspace/v2/search
curl -X "GET" "https://api.airmap.com/airspace/v2/search?geometry=%7B%22type%22:%22Polygon%22,%22coordinates%22:%5B%5B%5B-118.6578369140625,34.11180455556899%5D,%5B-118.43261718749999,33.694637550483186%5D,%5B-117.97393798828125,33.62376800118811%5D,%5B-117.88330078125,33.80197351806589%5D,%5B-118.6578369140625,34.11180455556899%5D%5D%5D%7D&types=airport,controlled_airspace,tfr,wildfire&full=true&geometry_format=wkt" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": [
    {
      "id": "ea353841-5ffb-4b00-aff5-e1bc4ef4adf7",
      "latitude": 33.675626,
      "longitude": -117.868334,
      "min_circle_radius": 9265.7531650931,
      "name": "SANTA ANA CLASS C",
      "type": "controlled_airspace",
      "country": "USA",
      "state": "California",
      "city": "Santa Ana",
      "last_updated": "2016-09-19T23:35:03.000Z",
      "properties": {
        "airspace_class": "c"
      },
      "geometry": "POLYGON ((-117.868333333333 33.7590345107509, -117.86136215058 33.7588309949702, -117.854425024066 33.7582214418276, -117.847555842214 33.7572088290237, -117.840788158666 33.7557981030892, -117.83415502703 33.7539961550172, -117.827688838165 33.7518117863224, -117.821421160847 33.7492556656992, -117.815382586611 33.746340276498, -117.809602579547 33.7430798553004, -117.804109331828 33.7394903218637, -117.798929625667 33.7355892008516, -117.794088702399 33.7313955356925, -117.789610139325 33.7269297950354, -117.785515734968 33.7222137722362, -117.781825403212 33.7172704784359, -117.778557076912 33.7121240297096, -117.775726621401 33.7067995288852, -117.773347758277 33.701322942615, -117.771431999872 33.6957209742976, -117.769988594646 33.6900209335013, -117.769024483769 33.6842506025197, -117.768544269067 33.6784381007236, -117.768550192444 33.6726117473748, -117.769042126864 33.6667999235737, -117.770017578875 33.6610309340156, -117.771471702646 33.6553328692289, -117.773397325402 33.6497334689629, -117.775784984098 33.6442599873881, -117.778622973122 33.6389390607559, -117.781897402774 33.6337965781617, -117.785592268171 33.6288575560149, -117.789689528274 33.6241460168375, -117.794169194587 33.6196848729522, -117.799009429099 33.6154958156193, -117.804186650979 33.6115992101468, -117.809675651496 33.608013997471, -117.815449716605 33.604757602667, -117.821480756615 33.6018458508351, -117.827739442288 33.5992928907285, -117.834195346764 33.5971111265141, -117.840817092595 33.5953111579631, -117.84757250323 33.5939017293596, -117.854428758211 33.5928896873638, -117.86135255138 33.5922799480268, -117.868310251335 33.5920754731105, -117.875268063401 33.5922772558222, -117.882192192367 33.5928843160317, -117.889049005213 33.5938937049911, -117.895805193093 33.5953005195376, -117.902427931806 33.5970979257117, -117.908885040018 33.599277191681, -117.91514513448 33.6018277298167, -117.921177781539 33.6047371477269, -117.92695364421 33.6079913080084, -117.932444624126 33.6115743964317, -117.937623997689 33.6154689982601, -117.942466545778 33.6196561823137, -117.946948676381 33.6241155924103, -117.951048539573 33.6288255457418, -117.954746134264 33.6337631377219, -117.958023406201 33.6389043528112, -117.960864336733 33.6442241807955, -117.963255021897 33.6496967379558, -117.965183741398 33.6552953925723, -117.966641017155 33.6609928941385, -117.967619661076 33.6667615056824, -117.968114811808 33.6725731385532, -117.968123960245 33.6783994890226, -117.96764696364 33.6842121760417, -117.966686048211 33.6899828794835, -117.965245800193 33.6956834781991, -117.96333314534 33.7012861872114, -117.960957316946 33.706763693376, -117.958129812503 33.7120892888423, -117.954864339167 33.7172370016508, -117.951176748296 33.7221817228374, -117.947084959315 33.7268993293904, -117.942608873279 33.7313668024662, -117.937770276555 33.7355623402758, -117.932592735022 33.7394654650505, -117.92710147938 33.7430571235971, -117.921323282046 33.7463197808911, -117.915286326296 33.7492375062688, -117.909020068255 33.75179605175, -117.902555092474 33.7539829221493, -117.895922961754 33.7557874365589, -117.889156062027 33.7572007809328, -117.882287443037 33.7582160514896, -117.875350655655 33.7588282887168, -117.868379586631 33.7590345018026, -117.868333333333 33.7590345107509))"
    }
  ]
}

Query Params

types
string

CSV of Airspace Types to include in response.

ignored_types
string

CSV of Airspace Types to ignore in response.

full
boolean

Return full airspace object. If full=false only a subset of an airspace object will be returned. If full=true, each item will be a full airspace object identical to the Airspace by ID endpoint.

geometry
string

Search for airspace intersections in geometry: WKT or GeoJSON

buffer
int32

Distance to buffer geometry parameter in meters

limit
int32

Max number of airspace objects to return (max=100)

offset
int32

Offset of airspace objects to return

geometry_format
string

Return geometry format: WKT or GeoJSON

datetime
date-time

Search for airspace that was active at this time in the past (not available before August 2016). Time format is ISO 8601

Headers

X-API-Key
string
required

Key provided by AirMap.

 

Airspace used in above example call:

{
  "type": "Polygon",
  "coordinates": [
    [
      [
        -118.6578369140625,
        34.11180455556899
      ],
      [
        -118.43261718749999,
        33.694637550483186
      ],
      [
        -117.97393798828125,
        33.62376800118811
      ],
      [
        -117.88330078125,
        33.80197351806589
      ],
      [
        -118.6578369140625,
        34.11180455556899
      ]
    ]
  ]
}
Suggest Edits

Get Airspace by ID

 
gethttps://api.airmap.com/airspace/v2/id
curl -X "GET" "https://api.airmap.com/airspace/v2/{AIRSPACE ID}" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
    "status": "success",
    "data": {
        "id": "334c7d24-5ac2-476b-9c4d-a1e1de4ffab2",
        "name": "LAX Class B",
        "type": "controlled_airspace",
        "country": "USA",
        "state": "CA",
        "city": "Los Angeles",
        "last_updated": "2016-05-18T23:52:17Z",
        "properties": {
            "class": "b",
            "airport_identifier": "KLAX"
        },
        "geometry": "POLYGON(...)",
        "related_geometry": {     
            "related_geometry_1": {
                "id": "2222d95e-b9a9-492f-b4e6-0aa72c123030",
                "geometry": "POLYGON(...)"
            },
            "related_geometry_2": {
                "id": "f439b43f-4104-4765-a1f4-3c51b9966b30",
                "geometry": "POLYGON(...)"
            }
        },
        "rules": [
            {
                "id": "41966e24-2bc0-44a3-848b-78e16dcd5a31",
                "name": "Class B Warning",
                "description": "Flying in Class B is ...",
                "jurisdiction": {
                    "name": "FAA",
                    "type": "federal"
                },
                "requirements": {
                    "notice": {
                        "digital": True,
                        "phone": "+14082774705"
                    }
                },
                "restriction_type": "advisory",
            }
        }
    }
}

Path Params

id
string
required

Unique identifier of geometry.

Query Params

geometry_format
string

Return geometry format: wkt or geojson

Headers

X-API-Key
string
required

Key provided by AirMap.

 
Suggest Edits

Airspace Snapshot Download

 

The Airspace Snapshot service enables developers to download all airspace objects for a given country. It is called a "snapshot" service because the data is generated monthly and could be out of date anytime after it is generated. The Airspace Snapshot API will return a link to download the airspace file for a provided country.

The "current" snapshot is generated on the 15th of the month and can be accessed with the Airspace Snapshot Download Current .

The "next" snapshot is generated daily starting on the 5th of the month up until the 15th of the month, at which point it is equivalent to the "current" snapshot and will be no longer be available until the next month. The "next" snapshot is intended to give developers a preview of the upcoming changes that will be generated on the 15th. The "next" snapshot can be accessed with the Airspace Snapshot Download Next

Temporary Advisories Note

The Airspace Snapshot service includes all objects, including temporary advisories like TFRs and wildfires. Developers should use discretion in using the data, since many of the temporary advisories will likely change soon after the generation date. In many cases, it is probably better to use the standard Airspace Search to check for temporary airspace and rely on the airspace snapshot for objects that are not as prone to change - like airports and controlled airspace.

Suggest Edits

Airspace Snapshot Download Current

Download a snapshot of airspace

 
gethttps://api.airmap.com/airspace/v2/snapshot/country_code/current
curl -X "GET" "https://api.airmap.com/airspace/v2/snapshot/USA/current" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "url": "https://link-to-airspace-download/USA.gz",
    "last_updated": "2016-10-24T20:25:02Z"
  }
}

Path Params

country_code
string
required

ISO 3166-1 Alpha-3 Country Code

Headers

X-API-Key
string

Key provided by AirMap.

 
Suggest Edits

Airspace Snapshot Download Next

Download a snapshot of airspace

 
gethttps://api.airmap.com/airspace/v2/snapshot/country_code/next
curl -X "GET" "https://api.airmap.com/airspace/v2/snapshot/USA/next" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "url": "https://link-to-airspace-download/USA.gz",
    "last_updated": "2016-10-24T20:25:02Z"
  }
}

Path Params

country_code
string
required

ISO 3166-1 Alpha-3 Country Code

Headers

X-API-Key
string
required

Key provided by AirMap.

 
Suggest Edits

Airspace Snapshot Countries

Get all ISO 3166-1 Alpha-3 country codes available for airspace snapshot download

 
gethttps://api.airmap.com/airspace/v2/snapshot/country
curl -X "GET" "https://api.airmap.com/airspace/v2/snapshot/country" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": [
    "ABW",
    "AFG",
    "AGO",
    "ALB",
    "AND",
    "ARE",
    "ARG",
    "ARM",
    "..."
    "USA",
    "UZB",
    "VEN",
    "VGB",
    "VNM",
    "VUT",
    "WAL",
    "WLF",
    "WSM",
    "YEM",
    "ZAF",
    "ZMB",
    "ZWE"
  ]
}

Headers

X-API-Key
string
required

Key provided by AirMap.

 
 

Status Object

Field
Description

advisories

A list of all airspace objects intersecting with the proposed flight. Includes status color and distance. See Airspace Objects

requirements

List of things you need to do to fly in this airspace. See Requirements

max_safe_radius

The distance between a flight's takeoff point and the nearest yellow or red zone.

color

"green", "yellow" or "red". Green means no known advisories, yellow means there are known advisories in the area and the operator may require additional authorization or actions to fly in the area, and red means that flight is strictly regulated and probably not safe to fly for the majority of operators.

weather

A weather object containing condition, wind, humidity, visibility, precipitation and temperature.

Advisory Object

Name
Bounds
Required
Description

color

red/yellow/green

yes

green = no issues, yellow = action required to fly, red = known to be unsafe

distance

0, infinite

yes

Distance in meters between flight and this advisory

latitude

-90, 90

yes

Reference point latitude

longitude

-180, 180

yes

Reference point longitude

country

3-digit country code

yes

Country

state

no

State

city

no

City

Requirement Object

Name
Required
Description

id

no

Requirement owner ID

type

yes

Airspace type

name

yes

Airspace name

notice.digital

no

True if D-NAS is accepted

notice.phone

no

Provided if notice can be given by phone

Weather Object

Field
Units
Description

condition

overall weather description like "partly cloudy"

wind

wind object

wind.heading

degrees

direction of wind

wind.speed

km/h

sustained wind speed

wind.gusting

km/h

max wind speed of gusts

humidity

%

relative humidity

visibility

km

range of visibility in meters

precipitation

%

probability of rain

temperature

C

temperature

Suggest Edits

Get Flight Status by Point

Get flight advisories using a point and radius

 
gethttps://api.airmap.com/status/v2/point
curl -X "GET" "https://api.airmap.com/status/v2/point/?latitude=34.016606&longitude=-118.4688775&weather=true&types=airport,controlled_airspace,special_use_airspace,school,tfr" \
	-H "X-API-Key: <YOUR_API_KEY>
import requests

url="https://api.airmap.com/status/v2/point/"

params = {
  "latitude": 34.016606,
  "longitude": -118.4688775,
  "weather": "true",
  "types": "airport,controlled_airspace,special_use_airspace,school,tfr",
}

headers = {
  "X-API-Key": "<YOUR API KEY>"
}
    
    
def send_request(url, params, headers):
    # Status
    # GET https://api.airmap.com/status/v2/point/
    try:
        response = requests.get(
            url,
            params,
            headers
        )
        print('Response HTTP Status Code: {status_code}'.format(
            status_code=response.status_code))
        print('Response HTTP Response Body: {content}'.format(
            content=response.content))
    except requests.exceptions.RequestException:
        print('HTTP Request failed')
let coordinate = CLLocationCoordinate2D(latitude: 34.016606, longitude: -118.4688775)

AirMapClient.getFlightPointStatus(coordinate, types: nil, ignoredTypes: nil, radius: 100) { (status, error) in

  if let error = error {
  	print(error.localizedDescription)
  }

  if let status = status {
  	print(status)
  }
}
Coordinate coordinate = new Coordinate(34.016606, -118.4688775);
boolean showWeather = true; //Return weather information
Date date = new Date(); //The current date/time
double buffer = 1000; //1000 meters

List<AirMapLayerType> types = Arrays.asList(AirMapLayerType.AirportsCommercial, AirMapLayerType.ControlledAirspace, AirMapLayerType.SpecialUse, AirMapLayerType.TFR);

AirMap.checkCoordinate(locationToCheck, buffer, types, null, showWeather, date, new Callback<AirMapStatus>() {
            @Override
            public void onSuccess(final AirMapStatus response) {
                if (response.getColor() == AirMapStatus.StatusColor.Red) {
                    Toast.makeText(MainActivity.this, "Not safe to fly!", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onError(final AirMapException e) {
                Log.v(TAG, "Error getting Status");
                e.printStackTrace();
            }
        });
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "max_safe_distance": 0,
    "advisory_color": "yellow",
    "advisories": [
      {
        "id": "6ecad589-257d-4709-8a3c-178a5d26fccb",
        "name": "Santa Monica Muni",
        "latitude": 34.015792,
        "last_updated": "2016-08-11T23:33:13.000Z",
        "longitude": -118.451303,
        "distance": 1622,
        "properties": {
          "iata": "SMO",
          "icao": "KSMO",
          "paved": true,
          "phone": "+13104588591",
          "tower": true,
          "runways": [
            {
              "name": "03",
              "length": 4973,
              "bearing": 32
            },
            {
              "name": "21",
              "length": 4973,
              "bearing": 212
            }
          ],
          "elevation": 177,
          "longest_runway": 4973,
          "instrument_approach_procedure": true,
          "use": "public"
        },
        "type": "airport",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "requirements": {
          "notice": {
            "phone": "+13104588591",
            "digital": false
          }
        },
        "color": "yellow"
      },
      {
        "id": "364568db-e9e9-43ff-a8cd-07f9a4b1677e",
        "name": "Santa Monica College",
        "latitude": 34.016421,
        "last_updated": "2016-07-26T19:47:49.000Z",
        "longitude": -118.470662,
        "distance": 0,
        "properties": {
          "building": false,
          "way_area": 242314,
          "type": "university"
        },
        "type": "school",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "color": "green",
        "requirements": {
          "notice": {
            "digital": false
          }
        }
      },
      {
        "id": "ae998fab-0141-4dd7-8c16-dccfb6a1bc49",
        "name": "SANTA MONICA CLASS D",
        "latitude": 34.024754,
        "last_updated": "2016-07-20T17:46:08.000Z",
        "longitude": -118.446259,
        "distance": 0,
        "properties": {
          "airspace_class": "d"
        },
        "type": "controlled_airspace",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "color": "green",
        "requirements": {
          "notice": {
            "digital": false
          }
        }
      }
    ],
    "weather": {
      "condition": "Cloudy",
      "icon": "cloudy",
      "wind": {
        "heading": 235,
        "speed": 9,
        "gusting": 0
      },
      "humidity": 0.76,
      "visibility": 16,
      "precipitation": 0,
      "temperature": 21
    }
  }
}

Query Params

latitude
double
required

Latitude in decimal format. Bounds: -90, 90.

longitude
double
required

Longitude in decimal format. Bounds: -180, 180.

types
string

CSV of Airspace Types to include in response.

ignored_types
string

CSV of Airspace Types to exclude in response.

weather
boolean

Include current weather conditions in response.

datetime
date

Date and time for planned flight in ISO 8601 format. Bounds: now, +7 days.

buffer
int32

Buffer size around latitude/longitude in meters

Headers

X-API-Key
string

Key provided by AirMap.

 
Suggest Edits

Get Airspace Status by Path

Get flight advisories using a line path

 
gethttps://api.airmap.com/status/v2/path
curl -X "GET" "https://api.airmap.com/status/v2/path/?latitude=34.016606&longitude=-118.4688775&weather=true&geometry=LINESTRING(-118.494940%2034.016588,-118.497462%2034.014587,-118.498631%2034.013591,-118.497076%2034.012222)&types=airport,controlled_airspace,special_use_airspace,school,tfr" \
	-H "X-API-Key:  <YOUR_API_KEY>
import requests

url="https://api.airmap.com/status/v2/path/"

params = {
    "latitude": 33.9425,
    "longitude": -118.4081,
    "geometry" : "LINESTRING(-118.494940 34.016588,-118.497462 34.014587,-118.498631 34.013591,-118.497076 34.012222)",
    "weather": "true",
    "width" : 100,
 }

headers = {
    "X-API-Key": '<YOUR API KEY>'
}


def send_request(url, params, headers):
    # Status
    # GET https://api.airmap.com/status/v2/path/
    try:
        response = requests.get(
            url,
            params,
            headers
        )
        print('Response HTTP Status Code: {status_code}'.format(
            status_code=response.status_code))
        print('Response HTTP Response Body: {content}'.format(
            content=response.content))
    except requests.exceptions.RequestException:
        print('HTTP Request failed')
let coordinate = CLLocationCoordinate2D(latitude: 34.016779, longitude: -118.494698)
let point1 = CLLocationCoordinate2D(latitude: 109.5, longitude: 41.00)
let point2 = CLLocationCoordinate2D(latitude: -102.06, longitude: 40.99)
let point3 = CLLocationCoordinate2D(latitude: -102.03, longitude: 36.99)
let point4 = CLLocationCoordinate2D(latitude: -109.04, longitude: 36.99)

let geometry = [point1, point2, point3, point4]

AirMapClient.getFlightPathStatus(coordinate, types: nil, ignoredTypes: nil, geometry: geometry, width: 1) { (status, error) in
  if let error = error {
  	print(error.localizedDescription)
  }

  if let status = status {
  	print(status)
  }
}
List<Coordinate> coords = new ArrayList<>();
coords.add(new Coordinate(34.016588, -118.494940));
coords.add(new Coordinate(34.014587, -118.497462));
coords.add(new Coordinate(34.013591, -118.498631));
coords.add(new Coordinate(34.012222, -118.497076));
Coordinate takeOffPoint = new Coordinate(34.016606, -118.4688775);
Date now = new Date();
boolean showWeather = true;

List<AirMapLayerType> types = Arrays.asList(AirMapLayerType.AirportsCommercial, AirMapLayerType.ControlledAirspace, AirMapLayerType.SpecialUse, AirMapLayerType.TFR);

AirMap.checkFlightPath(coords, 1, takeOffPoint, types, null, showWeather, now, new AirMapCallback<AirMapStatus>() {
	@Override
        public void onSuccess(AirMapStatus response) {

        }

        @Override
        public void onError(AirMapException e) {
            
        }
});
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "advisory_color": "yellow",
    "advisories": [
      {
        "id": "6ecad589-257d-4709-8a3c-178a5d26fccb",
        "name": "Santa Monica Muni",
        "latitude": 34.015792,
        "last_updated": "2016-08-11T23:33:13.000Z",
        "longitude": -118.451303,
        "distance": 1622,
        "properties": {
          "iata": "SMO",
          "icao": "KSMO",
          "paved": true,
          "phone": "+13104588591",
          "tower": true,
          "runways": [
            {
              "name": "03",
              "length": 4973,
              "bearing": 32
            },
            {
              "name": "21",
              "length": 4973,
              "bearing": 212
            }
          ],
          "elevation": 177,
          "longest_runway": 4973,
          "instrument_approach_procedure": true,
          "use": "public"
        },
        "type": "airport",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "requirements": {
          "notice": {
            "phone": "+13104588591",
            "digital": false
          }
        },
        "color": "yellow"
      },
      {
        "id": "1f023ea7-568a-4016-9002-4e19d6005413",
        "name": "Toni & Guy Hairdressing Academy",
        "latitude": 34.017466,
        "last_updated": "2016-07-20T17:46:08.000Z",
        "longitude": -118.494898,
        "distance": 2400,
        "properties": {},
        "type": "school",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "color": "green"
      },
      {
        "id": "ae998fab-0141-4dd7-8c16-dccfb6a1bc49",
        "name": "SANTA MONICA CLASS D",
        "latitude": 34.024754,
        "last_updated": "2016-07-20T17:46:08.000Z",
        "longitude": -118.446259,
        "distance": 0,
        "properties": {
          "airspace_class": "d"
        },
        "type": "controlled_airspace",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "color": "green"
      }
    ],
    "weather": {
      "condition": "Mostly Cloudy",
      "icon": "mostly_cloudy_day",
      "wind": {
        "heading": 238,
        "speed": 12,
        "gusting": 0
      },
      "humidity": 0.69,
      "visibility": 16,
      "precipitation": 0,
      "temperature": 23
    }
  }
}

Query Params

latitude
double
required

Latitude in decimal format. Bounds: -90, 90.

longitude
double
required

Longitude in decimal format. Bounds: -180, 180.

types
string

CSV of Airspace Types to include in response.

ignored_types
string

CSV of Airspace Types to exclude in response.

weather
boolean

Include current weather conditions in response.

datetime
date

Date and time for planned flight in ISO 8601 format. Bounds: now, +7 days.

geometry
string
required

List of latitude/longitude of flight as geoJSON or WKT. Must be a linestring.

buffer
int32

Path width in meters. Bounds: 0, 10000.

Headers

X-API-Key
string
required

Key provided by AirMap.

 

Reminder

The starting location (latitude and longitude) must be within the bounds of the provided path and width of path

Example of path before URL encoding:

LINESTRING(-109.05 41.00, -102.06 40.99, -102.03 36.99, -109.04 36.99)

Suggest Edits

Get Airspace Status by Polygon

Get flight advisories using a polygon

 
gethttps://api.airmap.com/status/v2/polygon
curl -X "GET" "https://api.airmap.com/status/v2/polygon/?latitude=34.016606&longitude=-118.4688775&weather=true&geometry=POLYGON(-118.49540501832962%2034.01645976561245,-118.49540501832962%2034.01694220321598,-118.49469959735869%2034.01694220321598,-118.49469959735869%2034.01645976561245,-118.49540501832962%2034.01645976561245)&types=airport,controlled_airspace,special_use_airspace,school,tfr" \
	-H "X-API-Key: <YOUR_API_KEY>
import requests

query = {
  'latitude': 33.9425,
  'longitude': -118.4081,
  'geometry' : "POLYGON(-109.05 41.00, -102.06 40.99, -102.03 36.99, -109.04 36.99, -109.05 41.00)",
  'unique_id': 'example'
}

headers = {
  'X-API-Key': '<YOUR_API_KEY>'
}

r = requests.get('https://api.airmap.com/status/v2/polygon', params = query, headers = headers);
print(r.json())
let coordinate = CLLocationCoordinate2D(latitude: 34.016779, longitude: -118.494698)
let point1 = CLLocationCoordinate2D(latitude: 109.05, longitude: 41.00)
let point2 = CLLocationCoordinate2D(latitude: -102.06, longitude: 40.99)
let point3 = CLLocationCoordinate2D(latitude: -102.03, longitude: 36.99)
let point4 = CLLocationCoordinate2D(latitude: -109.05, longitude: 41.00

let geometry = [point1, point2, point3, point4]

AirMapClient.getFlightPolygonStatus(coordinate, types: nil, ignoredTypes: nil, geometry: geometry) { (status, error) in

  if let error = error {
  	print(error.localizedDescription)
  }

  if let status = status {
  	print(status)
  }
}
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "advisory_color": "yellow",
    "advisories": [
      {
        "id": "6ecad589-257d-4709-8a3c-178a5d26fccb",
        "name": "Santa Monica Muni",
        "latitude": 34.015792,
        "last_updated": "2016-08-11T23:33:13.000Z",
        "longitude": -118.451303,
        "distance": 1622,
        "properties": {
          "iata": "SMO",
          "icao": "KSMO",
          "paved": true,
          "phone": "+13104588591",
          "tower": true,
          "runways": [
            {
              "name": "03",
              "length": 4973,
              "bearing": 32
            },
            {
              "name": "21",
              "length": 4973,
              "bearing": 212
            }
          ],
          "elevation": 177,
          "longest_runway": 4973,
          "instrument_approach_procedure": true,
          "use": "public"
        },
        "type": "airport",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "requirements": {
          "notice": {
            "phone": "+13104588591",
            "digital": false
          }
        },
        "color": "yellow"
      },
      {
        "id": "1f023ea7-568a-4016-9002-4e19d6005413",
        "name": "Toni & Guy Hairdressing Academy",
        "latitude": 34.017466,
        "last_updated": "2016-07-20T17:46:08.000Z",
        "longitude": -118.494898,
        "distance": 2400,
        "properties": {},
        "type": "school",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "color": "green"
      },
      {
        "id": "ae998fab-0141-4dd7-8c16-dccfb6a1bc49",
        "name": "SANTA MONICA CLASS D",
        "latitude": 34.024754,
        "last_updated": "2016-07-20T17:46:08.000Z",
        "longitude": -118.446259,
        "distance": 0,
        "properties": {
          "airspace_class": "d"
        },
        "type": "controlled_airspace",
        "city": "Santa Monica",
        "state": "California",
        "country": "USA",
        "color": "green"
      }
    ],
    "weather": {
      "condition": "Sunny",
      "icon": "sunny",
      "wind": {
        "heading": 243,
        "speed": 18,
        "gusting": 0
      },
      "humidity": 0.66,
      "visibility": 16,
      "precipitation": 0.02,
      "temperature": 23
    }
  }
}

Query Params

latitude
double
required

latitude in decimal format

longitude
double
required

longitude in decimal format

types
string

CSV of Airspace Types to include in response

ignored_types
string

CSV of Airspace Types to exclude in response

weather
boolean

Include current weather conditions in response

datetime
date

Date and time for planned flight in ISO 8601 format

geometry
string
required

List of latitude/longitude for a Polygon flight as geoJSON or WKT. First and last points must be the same

Headers

X-API-Key
string
required

Key provided by AirMap.

 

Reminder

The starting location (latitude and longitude) must be within the bounds of the provided polygon

Example of polygon before URL encoding:

POLYGON(-109.05 41.00, -102.06 40.99, -102.03 36.99, -109.04 36.99, -109.05 41.00)

 

Get details about a pilot's profile, preferences and provides identity verification (email, phone, etc).

Suggest Edits

Get User Pilot Profile

Get the pilot profile of the current logged in user.

 
gethttps://api.airmap.com/pilot/v2/profile
curl -X "GET" "https://api.airmap.com/pilot/v2/profile" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "id": "auth0|abc123",
    "first_name": "R2D2",
    "last_name": "Skywalker",
    "username": "R2theD2"
  }
}

Query Params

exclude
string

CSV (no spaces). Properties that are excludable: aircraft, user_metadata, app_metadata, authorized_apps

statistics
boolean

Retrieve basic statistics about the pilot.

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes Yes - Your Profile Full Response
{
    "status": "success",
    "data": {
        "id": "auth0|abc123",
        "email": "r2d2@airmap.com",
        "first_name": "R2D2",
        "last_name": "Skywalker",
        "username": "R2theD2",
        "picture_url": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg",
        "phone": "+15557779999",
        "verification_status": {
            "phone": false,
            "email": true
        },
        "user_metadata": {
            "faa_registration_number": ...,
            ...
        },
        "app_metadata": {
            ...
        },
        "statistics": {
            "flight": {
                "total": 10,
                "last_flight_time": "2016-07-05T10:51:19.000Z"
            },
            "aircraft": {
                "total": 2
            }
        }
    }
}
Suggest Edits

Get Pilot Profile

Get a pilot's profile.

 
gethttps://api.airmap.com/pilot/v2/id
curl -X "GET" "https://api.airmap.com/pilot/v2/{PILOT ID}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "id": "auth0|abc123",
    "first_name": "R2D2",
    "last_name": "Skywalker",
    "username": "R2theD2"
  }
}

Path Params

id
string
required

Unique identifier of profile

Query Params

exclude
string

CSV (no spaces). Properties that are excludable: aircraft, user_metadata, app_metadata, authorized_apps

statistics
boolean

Retrieve basic statistics about the pilot.

Headers

Authorization
string

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes No Public Response
Yes Yes - Your Profile Full Response
Yes Yes - Someone Else's Profile Public Response
{
    "status": "success",
    "data": {
        "id": "auth0|abc123",
        "email": "r2d2@airmap.com",
        "first_name": "R2D2",
        "last_name": "Skywalker",
        "username": "R2theD2",
        "picture_url": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg",
        "phone": "+15557779999",
        "verification_status": {
            "phone": false,
            "email": true
        },
        "user_metadata": {
            "faa_registration_number": ...,
            ...
        },
        "app_metadata": {
            ...
        },
        "statistics": {
            "flight": {
                "total": 10,
                "last_flight_time": "2016-07-05T10:51:19.000Z"
            },
            "aircraft": {
                "total": 2
            }
        }
    }
}
{
    "status": "success",
    "data": {
        "id": "auth0|abc123",
        "email": "r2d2@airmap.com",
        "first_name": "R2D2",
        "last_name": "Skywalker",
        "username": "R2theD2",
        "picture_url": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg",
        "phone": "+15557779999",
        "verification_status": {
            "phone": false,
            "email": true
        },
        "user_metadata": {
            "faa_registration_number": ...,
            ...
        },
        "app_metadata": {
            ...
        },
        "statistics": {
            "flight": {
                "total": 10,
                "last_flight_time": "2016-07-05T10:51:19.000Z"
                },
            "aircraft": {
                "total": 2
            }
        }
    }
}
 
Public Response:
{
    "status": "success",
    "data": {
        "id": "auth0|abc123",
        "username": "R2theD2",
        "picture_url": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg"
    }
}
Suggest Edits

Update Pilot Profile

Update a pilot's profile.

If a the phone number is changed the validation status will change to false. A verification token can be sent using the /pilot/v2/:id/phone/send_token route.

 
patchhttps://api.airmap.com/pilot/v2/id
curl -X "PATCH" "https://api.airmap.com/pilot/v2/{PILOT ID}/aircraft/{AIRCRAFT ID}" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{\"nickname\":\"Party Drone\"}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": {
    "id": "auth0|abc123",
    "email": "r2d2@airmap.com",
    "first_name": "R2D2",
    "last_name": "Skywalker",
    "username": "R2theD2",
    "phone": "+15557779999",
    "user_metadata": {
      ...
    },
    "app_metadata": {
      ...
    }
  }
}

Path Params

id
string
required

unique identifier of user

Body Params

first_name
string

First name

last_name
string

Last name

username
string

Username

phone
string

Phone number in e164 format (+15557779999)

app_metadata
object

Key/Value store for custom user meta data scoped to the application.

 
user_metadata
object

User preferences, etc.

 

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes No 401
Yes Yes - Your Profile Full Response
Yes Yes - Someone Else's Profile Public Response
Suggest Edits

Send Phone Verification Token

A six digit token will be sent via SMS to the current phone number attached to the pilot's profile. That token can be verified using Verify Phone Token

 
posthttps://api.airmap.com/pilot/v2/id/phone/send_token
curl -X "POST" "https://api.airmap.com/pilot/v2/{PILOT ID}/phone/send_token" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{}"
A binary file was returned

You couldn't be authenticated

{
  "status": "success",
  "data": null
}

Path Params

id
string
required

User ID from identity service.

Headers

Authorization
string
required

'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes No 401
Yes Yes - Your Profile Allow
Yes Yes - Someone Else's Profile 403
Suggest Edits

Verify Phone Token

 
posthttps://api.airmap.com/pilot/v2/id/phone/verify_token
curl -X "POST" "https://api.airmap.com/pilot/v2/{PILOT ID}/phone/verify_token" \
  -H "X-API-Key: {YOUR API KEY}" \
  -H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{\"token\":\"{VERIFICATION TOKEN}\"}"
A binary file was returned

You couldn't be authenticated


{
    "status": "success",
    "data": {
        "verified": true   
    }
}

Path Params

id
string
required

User ID from identity service.

Body Params

token
int32
required

Token sent to phone once. If original verification fails, a request to resend verification must be made.

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Failed Verification

If the verification fails another token should be requested via the /pilot/v2/:id/phone/send_token route.

Authorization

API Key Token Result
Yes No 401
Yes Yes - Your Profile Allow
Yes Yes - Someone Else's Profile 403
Suggest Edits

Get Pilot Aircraft

Get details about a pilot's profile, preferences and provides identity verification (email, phone, etc).

 
gethttps://api.airmap.com/pilot/v2/id/:aircraft
curl -X "GET" "https://api.airmap.com/pilot/v2/{PILOT ID}/aircraft" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "X-API-Key: {YOUR API KEY}"
A binary file was returned

You couldn't be authenticated

{
    "status": "success",
    "data": [
        {
            "id": "aircraft|abc123",
            "model": {
                "id": "23ce631b-6e0d-453b-9198-9232829bd266",
                "name": "Phantom 3",
                "manufacturer": {
                    "id": "17de75cd-ece0-4ab2-8385-ceaaddc6615f",
                    "name": "DJI"
                }
            },       
            "nickname": "Ghost Rider",
        },
        ...
    ]
}

Path Params

id
string
required

unique identifier of profile

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes No 401
Yes Yes - Your Profile Allow
Yes Yes - Someone Else's Profile 403
Suggest Edits

Add Pilot Aircraft

Get details about a pilot's profile, preferences and provides identity verification (email, phone, etc).

 
posthttps://api.airmap.com/pilot/v2/id/:aircraft
curl -X "POST" "https://api.airmap.com/pilot/v2/{PILOT ID}/aircraft" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{\"model_id\":\"b3b1c26f-06da-4eae-9390-667c90039175\",\"nickname\":\"Commercial Drone\"}"
A binary file was returned

You couldn't be authenticated

{
    "status": "success",
    "data": {
      	"id": "aircraft|abc123",
      	"model": {
        	"id": "23ce631b-6e0d-453b-9198-9232829bd266",
        	"name": "Phantom 3",
        	"manufacturer": {
          	"id": "17de75cd-ece0-4ab2-8385-ceaaddc6615f",
          	"name": "DJI"
        	}
      },       
      "nickname": "Ghost Rider",
    }
}

Path Params

id
string
required

unique identifier of profile

Body Params

model_id
string
required

Aircraft Model ID

nickname
string
required

Nickname

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes No 401
Yes Yes - Your Profile Allow
Yes Yes - Someone Else's Profile 403
Suggest Edits

Update Pilot Aircraft

Get details about a pilot's profile, preferences and provides identity verification (email, phone, etc).

 
patchhttps://api.airmap.com/pilot/v2/id/:aircraft/aircraft_id
curl -X "PATCH" "https://api.airmap.com/pilot/v2/{PILOT ID}/aircraft/{AIRCRAFT ID}" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{\"nickname\":\"Party Drone\"}"
A binary file was returned

You couldn't be authenticated

{
    "status": "success",
    "data": {    
        "nickname": "Updated nickname",
         
    }
}

Path Params

id
string
required

unique identifier of profile

aircraft_id
string
required

Body Params

nickname
string

Nickname

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes No 401
Yes Yes - Looking up themselves Allow
Yes Yes - Looking up someone else 403
Suggest Edits

Delete Pilot Aircraft

 
deletehttps://api.airmap.com/pilot/v2/id/:aircraft/aircraft_id
curl -X "DELETE" "https://api.airmap.com/pilot/v2/{PILOT ID}/aircraft/{AIRCRAFT ID}" \
	-H "X-API-Key: {YOUR API KEY}" \
	-H "Authorization: Bearer {YOUR ACCESS TOKEN}" \
	-H "Content-Type: application/json; charset=utf-8" \
	-d "{}"
A binary file was returned

You couldn't be authenticated

{
    "status": "success",
    "data": {}
}

Path Params

id
string
required

unique identifier of profile

aircraft_id
string
required

Headers

Authorization
string
required

Example: 'Bearer [Token]'

X-API-Key
string
required

Key provided by AirMap.

 

Authorization

API Key Token Result
Yes No 401
Yes Yes - Your Profile Allow
Yes Yes - Someone Else's Profile 403
Suggest Edits

Vector Tiles

 
gethttps://api.airmap.com/maps/v4/tiles/layers/:z/:x/:y
curl --request GET \
  --url https://api.airmap.com/maps/v4/tiles/layers/:z/:x/:y
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.airmap.com/maps/v4/tiles/layers/:z/:x/:y' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.airmap.com/maps/v4/tiles/layers/:z/:x/:y")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.airmap.com/maps/v4/tiles/layers/:z/:x/:y");

xhr.send(data);
import requests

url = "https://api.airmap.com/maps/v4/tiles/layers/:z/:x/:y"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Mapbox Vector Tile in Google Protocol Buffer format

Path Params

layers
string
required
z
int32
required
x
int32
required
y
int32
required
 

FORMAT: 1A

Tile API

Serves vector map tiles in the OSM slippy format

Tiles [/maps/v4/tiles/:layers/:z/:x/:y]

Get a Tile [GET]

Given a comma separated list of layers and a Z/X/Y position, return a map tile

  • Parameters

    • layers: airports_recreational,class_b,national_parks (string, required)
      Comma separated list of airspace layers
    • z (integer, required)
      Latitude in decimal format
    • x (integer, required)
      Longitude in decimal format
    • y: (integer, required)
      Search radius in meters (default 20,000m)
  • Response 200

    • Body
      Protocol Buffer in Mapbox Vector Tile format

TileJSON [/maps/v4/tilejson/:layers]

Provide a TileJSON spec map style for use with MapBox GL

List Geometry Nearby [GET]

  • Parameters

    • layers: airports_recreational,class_b,national_parks (string, required)
      Comma separated list of airspace layers
    • token: (string, required)
      Your API key to append to map requests
    • theme: dark (string, optional)
      Option to include a themed base layer. Options available: standard, dark, light, satellite
  • Response 200

    TileJSON response