API
The Flight Plan Database API is provided for users and developers to build and link applications to our route and navigation data. This page documents each of the available endpoints, the parameters expected and the structure of the responses. Most endpoints of the API are publicly available without authentication. However, some endpoints require an API key, which can be obtained from your account settings page.
The data available through this API is for flight simulation use only and must not be used for real-world aviation.
Use of this API must follow both the Flight Plan Database Terms of Service and API Terms of Use
API Terms of Use
Limits and Abuse
Request limits are used to prevent abuse of the API and ensure the data is available fairly to all users. Attempts to circumvent the limits or authentication may lead to your API access being revoked. We retain the right to reduce API limits or revoke access in the future.

Data Availability
Some data available through the Flight Plan Database website may not be available through the API, particularly where such data is subject to external license agreements. Whilst we endeavor to make as much information available as possible, in some cases this may not be feasible. Subject to these requirements, the data available through the API may change in the future.

Public Use and Attribution
When data from the API is used in any publicly accessible or distributed medium, proper attribution to the Flight Plan Database must be given wherever the data is presented, whether in a raw or modified form. Suitable attribution would be a string such as 'Using data from the Flight Plan Database', which is linked back to the homepage at https://flightplandatabase.com or the relevant page for the data presented. Alternatively, the attribution section below contains images that may be used when similarly linked back. Additionally, all public use of this data MUST be accompanied by a notice that the data is for flight simulation use only and is not suitable for real-world aviation or navigation. Services that are found to present this data as real-world suitable will be blocked from the API and we may respond to requests with warnings to end users.

General Terms
Unless otherwise specified, all use of the API is must also comply with the general terms for the Flight Plan Database. These are available at https://flightplandatabase.com/tos. Accounts must have a verified email address to be assigned an API key.

Use of the API requires that you follow these terms and failure to comply will lead to your API access being revoked. If you use an API key, your user account associated with the key may also be affected. By using the API, you agree not to use this data for real-world navigation and shall not portray this data as suitable for real-world navigation. If you are uncertain of any aspect of these terms, please contact us for further information.
Authentication
Whilst many parts of the API are publicly accessible, some endpoints require authentication with an API access key, which is an alphanumeric string such as VtF93tXp5IUZE307kPjijoGCUtBq4INmNTS4wlRG. This key must be provided with each API request using HTTP basic authentication, with the API key is used as the username and a blank password. For the above example key, the resulting Authorization header would look like so: Authorization: Basic VnRGOTN0WHA1SVVaRTMwN2tQamlqb0dDVXRCcTRJTm1OVFM0d2xSRzo=

To get an API key, visit your account settings page. Your account will need a verified email address to add an API key.

Endpoints that require authentication are marked as such below. Failing to provide valid authentication credentials on these endpoints will result in a HTTP 401 status code and associated error information being returned to these requests. You are responsible for maintaining the security of your private API key, which gives near full access to your Flight Plan Database account. If your key is exposed, please use the /auth/revoke endpoint to revoke your key manually.

All requests must be made over HTTPS only. Any HTTP requests will return HTTP 301 permanent redirects to their HTTPS counterparts.
Request Limits
API requests are rate limited on a 24 hour rolling basis to ensure fair access to all users. If you reach your daily limit, you will receive HTTP 429 error responses and an associated error. To check your limit and used requests, examine the X-Limit-* response headers on any request. Requests to the status endpoint will not increment your request counter.
Request Headers
Header Type Required Default Description
Authorization String Yes - HTTP Basic Authorization header using your API key in place of the username and a blank password. See the Authentication section above for further details.
Accept String No application/json HTTP Accept content negotiation header. Used to set the response format. See media types for more information.
X-Units String No AVIATION The units system used for numeric values, one of AVIATION, METRIC or SI. See the units section for details about which units are converted.
Response Headers
Header Type Description
X-API-Version Number The API version that returned the response
X-Units String The units system used for numeric values, one of AVIATION, METRIC or SI. See the units section for details about which units are converted.
X-Limit-Cap Number The number of requests allowed per day, operated on an hourly rolling basis. i.e Requests used between 19:00 and 20:00 will become available again at 19:00 the following day. API key authenticated requests get a higher daily rate limit and can be raised if a compelling use case is presented.
X-Limit-Used Number The number of requests used in the current period by the presented API key or IP address
X-Page-Count Number The number of pages of results available. See Pagination for more info
X-Page-Current Number The current page returned. See Pagination for more info
X-Page-PerPage Number The number of items returned per page. See Pagination for more info
X-Item-Count Number The number of items available
X-Sort String The sort order user for returned results. See Pagination for more info
Links String Standard HTTP link header containing links to related data
Media Types
The response format and API version are specified using the Accept request header to choose a media type. The allowed values are in the table below. If you do not specify a API version in your request, you will be served the latest version, which may differ from the expected format or content. Therefore, it is recommended that you always specify an API version using the correct media type when making a request. If no recognized media type is requested, the server will return JSON formatted data.

Accept Header Value Meaning
application/json JSON formatted results from the latest API version
application/vnd.fpd.v1+json JSON formatted results from version 1 of the API
application/xml XML formatted results from the latest API version
application/vnd.fpd.v1+xml XML formatted results from version 1 of the API

When requesting a flight plan, the following media types can be used to export the route for use in other applications.

Accept Header Value Meaning
text/csv
text/vnd.fpd.export.v1.csv+csv
CSV formatted plan
application/vnd.fpd.export.v1.fms
application/vnd.fpd.export.v1.xplane
X-Plane FMS (8, 9 & 10) formatted plan
application/vnd.fpd.export.v1.xplane11 X-Plane 11 formatted plan
application/vnd.fpd.export.v1.fsx FSX XML formatted plan
application/vnd.fpd.export.v1.fs9 FS2004/FS9 formatted plan
application/vnd.fpd.export.v1.squawkbox Squawkbox formatted plan
application/vnd.fpd.export.v1.xfmc X-FMC formatted plan
application/vnd.fpd.export.v1.pmdg PMDG rte formatted plan
application/vnd.fpd.export.v1.pdf
application/pdf
PDF formatted plan
application/vnd.google-earth.kml+xml
application/vnd.fpd.export.v1.kml+xml
KML formatted plan
application/vnd.fpd.export.v1.json+json JSON formatted plan
application/vnd.fpd.export.v1.airbusx Airbus X formatted plan
application/vnd.fpd.export.v1.qualitywings QualityWings formatted plan
application/vnd.fpd.export.v1.ifly747 iFly 747 (.route) formatted plan
application/vnd.fpd.export.v1.flightgear FlightGear formatted plan (version 2 XML)
application/vnd.fpd.export.v1.tfdi717 TFDi Design 717 (version 1 XML)
application/vnd.fpd.export.v1.infiniteflight Infinite Flight
Errors / Status Codes
The API returns standard HTTP error codes wherever possible, along with a common error message format. In JSON, an error will be formatted like so:
{
    "message": "Bad Request",
    "errors": [
        {
            "param": "id",
            "message": "Invalid id"
        }
    ]
}
Pagination
Some requests will return paginated results, with response headers showing the number of pages and items. The current page can be controlled with the page query parameter. The sort order can be controlled with the sort query parameter. The number of items per page can be controlled with the limit query parameter. Valid sort orders are created, updated, popularity and distance.
Units
Certain numeric values used by the API will be given in a specific units system; this includes lengths, distances, elevations, altitudes, speeds and temperatures. The units system can be chosen using the X-Units header, with a choice of AVIATION, METRIC or SI. The table below shows which units are used in each of the unit systems. In the endpoint descriptions on this page, numbers in requests and responses that have units will be marked as such in the type column. The default unit system, if none is requested, is the AVIATION system.

Number Type AVIATION METRIC SI
Length Feet Meters Meters
Distance Nautical Miles Kilometers Meters
Elevation Feet Meters Meters
Altitude Feet Meters Meters
Speed Knots Meters per Second Meters per Second
Temperature Celsius Celsius Kelvin
Climb (and Descent) Rate Feet per Minute Meters per Second Meters per Second
Parameters
All GET requests should use query string parameters. All POST, PATCH and DELETE requests should use either JSON or URL encoded bodies, with the correct associated content type. Multi-part form encoding is not accepted.
Route Objects
A number of API endpoints either send or receive route objects. These have the following structure:
Parameter Type Description
route Route Object A route object
route.nodes Array An array of route nodes. A route must have at least 2 nodes
route.nodes[].ident String Node navaid identifier
route.nodes[].type String Node type. See below for valid types
route.nodes[].lat Number Node latitude in decimal degrees
route.nodes[].lon Number Node longitude in decimal degrees
route.nodes[].alt Number (altitude) Suggested altitude at node, with units determined by the X-Units header
route.nodes[].name String or null Node name. Null if not available
route.nodes[].via Via Object or null Route to node. Null if not available
route.nodes[].via.ident String Route to node identifier
route.nodes[].via.type String Route to node type. One of SID, STAR, AWY-HI, AWY-LO, NAT or PACOT

The valid types are as follows:
Type Meaning
UKN Unknown
APT Airport
NDB Non-directional beacon (NDB)
VOR VHF omni-directional range (VOR)
FIX Navigational fix
DME Distance measuring equipment
LATLON Latitude/Longitude point
Attribution
Examples of suitable attribution when using data from the Flight Plan Database publicly. Image based attribution should be used preferentially.

Light Banner:
Data from the Flight Plan Database

<a href="https://flightplandatabase.com"><img src="https://static.flightplandatabase.com/images/data-banner/light.min.png" alt="Data from the Flight Plan Database"></a>

Dark Banner:
Data from the Flight Plan Database

<a href="https://flightplandatabase.com"><img src="https://static.flightplandatabase.com/images/data-banner/dark.min.png" alt="Data from the Flight Plan Database"></a>

Plain Link:
Using data from the Flight Plan Database

<a href="https://flightplandatabase.com">Using data from the Flight Plan Database</a>

Non-Digital Media:
Using data from the Flight Plan Database (https://flightplandatabase.com)
Clients and Libraries
Some publicly available clients and libraries are available to make use of the APIs available on this page:

- FlightplanDB-py - Python library - PyPI GitHub
- Mission-X - X-Plane Plugin - X-Plane.org

Please note that none of these clients or libraries are considered official nor specifically endorsed. If you know of or are working on another client/library, please contact us to get added to this list.
Troubleshooting
If you are still having issues with the API after reading this document or have specific requirements not currently fulfilled by the API, please don't hesitate to contact us and we'll give you some further pointers.
Status
GET Index
No authentication required
GET https://api.flightplandatabase.com/
Use this endpoint to check the current status of the API. If the HTTP response code is 200 and the status message is "OK", then the API is accepting requests, you are correctly authenticated and have not hit your request limit. Any other status code or message indicates an error has occurred and the errors array will give further details. Using this endpoint does not increment the request count towards your rate limit.

Parameters:
None

Response:
Component Type Description
response.message String Status message
response.errors Array or null Array of errors. Null or undefined when no error has occurred
response.errors[] String Description of the error that has occurred

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
{
  "message": "OK",
  "errors": null
}
Plans
GET Fetch Plan
No authentication required
GET https://api.flightplandatabase.com/plan/{id}
Fetches a flight plan and its associated route. Use media types to export the flight plan.

Parameters:
Parameter Location Type Required Default Description
id Path Number Yes - The id of the plan to fetch

Response:
Component Type Description
response.id Number Unique plan identifier number
response.fromICAO String or null ICAO code of the departure airport
response.toICAO String or null ICAO code of the destination airport
response.fromName String or null Name of the departure airport
response.toName String or null Name of the destination airport
response.flightNumber String or null Flight number of the flight plan
response.distance Number (Distance) Total distance of the flight plan route, with units determined by the X-Units header
response.maxAltitude Number (Altitude) Maximum altitude of the flight plan route, with units determined by the X-Units header
response.waypoints Number Number of nodes in the flight plan route
response.likes Number Number of times the flight plan has been liked
response.downloads Number Number of times the flight plan has been downloaded
response.popularity Number Relative popularity of the plan based on downloads and likes
response.notes String Extra information about the flight plan
response.encodedPolyline String Encoded polyline of the route, which can be used for quickly drawing maps
response.createdAt Date String UTC Date and time of flight plan creation
response.updatedAt Date String UTC Date and time of the last flight plan edit
response.tags Array Array of flight plan tags
response.tags[] String Flight plan tag
response.cycle Cycle Object or null Cycle associated with the plan. Null if no cycle linked
    response.cycle.id Number Unique cycle identifier number
    response.cycle.ident String Cycle identifier string
    response.cycle.year Number Cycle year
    response.cycle.release Number Cycle release within a year
response.user User Object or null User associated with the item. Null if no user linked
    response.user.id Number Unique user identifier number
    response.user.username String Username
    response.user.location String or null User provided location information. Null if not available
    response.user.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response.application Application Object or null Application associated with the item. Null if no application linked
    response.application.id Number Unique application identifier number
    response.application.name String or null Application name
    response.application.url String or null Application URL
response.route Route Object The flight plan route. A standard route object, see the route section for more details

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/plan/62478
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
Link: </user/example>; rel="user"
{
  "id": 62478,
  "fromICAO": "KSAN",
  "toICAO": "KDEN",
  "fromName": "San Diego Intl",
  "toName": "Denver Intl",
  "flightNumber": null,
  "distance": 757.33261275174,
  "maxAltitude": 0,
  "waypoints": 5,
  "likes": 0,
  "downloads": 0,
  "popularity": 0,
  "notes": "Requested: KSAN BROWS TRM LRAIN KDEN",
  "encodedPolyline": "wgxfEjrgjUf_Sk~pAavaEwavB}ksPsq_a@u}kSgfbc@",
  "createdAt": "2015-08-05T20:05:34.000Z",
  "updatedAt": "2015-08-05T20:05:34.000Z",
  "tags": [
    "decoded"
  ],
  "user": {
    "id": 2429,
    "username": "example",
    "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
    "location": null
  },
  "route": {
    "nodes": [
      {
        "type": "APT",
        "ident": "KSAN",
        "name": "San Diego Intl",
        "lat": 32.733555499999994,
        "lon": -117.1896585,
        "alt": 0,
        "via": null
      },
      {
        "type": "FIX",
        "ident": "BROWS",
        "name": null,
        "lat": 32.631117,
        "lon": -116.769919,
        "alt": 0,
        "via": null
      },
      {
        "type": "VOR",
        "ident": "TRM",
        "name": "THERMAL VORTAC",
        "lat": 33.62808333000001,
        "lon": -116.16019444,
        "alt": 0,
        "via": null
      },
      {
        "type": "FIX",
        "ident": "LRAIN",
        "name": null,
        "lat": 36.517831,
        "lon": -110.586653,
        "alt": 0,
        "via": null
      },
      {
        "type": "APT",
        "ident": "KDEN",
        "name": "Denver Intl",
        "lat": 39.860979670000006,
        "lon": -104.67189233,
        "alt": 0,
        "via": null
      }
    ]
  }
}
POST Create Plan
Authentication required
POST https://api.flightplandatabase.com/plan
Creates a new flight plan. Requests to this endpoint must be submitted as JSON content type.

Parameters:
Parameter Location Type Required Default Description
route Body Route Object Yes - The flight plan route. A standard route object, see the route section for more details

Response:
Component Type Description
response.id Number Unique plan identifier number
response.fromICAO String or null ICAO code of the departure airport
response.toICAO String or null ICAO code of the destination airport
response.fromName String or null Name of the departure airport
response.toName String or null Name of the destination airport
response.flightNumber String or null Flight number of the flight plan
response.distance Number (Distance) Total distance of the flight plan route, with units determined by the X-Units header
response.maxAltitude Number (Altitude) Maximum altitude of the flight plan route, with units determined by the X-Units header
response.waypoints Number Number of nodes in the flight plan route
response.likes Number Number of times the flight plan has been liked
response.downloads Number Number of times the flight plan has been downloaded
response.popularity Number Relative popularity of the plan based on downloads and likes
response.notes String Extra information about the flight plan
response.encodedPolyline String Encoded polyline of the route, which can be used for quickly drawing maps
response.createdAt Date String UTC Date and time of flight plan creation
response.updatedAt Date String UTC Date and time of the last flight plan edit
response.tags Array Array of flight plan tags
response.tags[] String Flight plan tag
response.cycle Cycle Object or null Cycle associated with the plan. Null if no cycle linked
    response.cycle.id Number Unique cycle identifier number
    response.cycle.ident String Cycle identifier string
    response.cycle.year Number Cycle year
    response.cycle.release Number Cycle release within a year
response.user User Object or null User associated with the item. Null if no user linked
    response.user.id Number Unique user identifier number
    response.user.username String Username
    response.user.location String or null User provided location information. Null if not available
    response.user.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response.application Application Object or null Application associated with the item. Null if no application linked
    response.application.id Number Unique application identifier number
    response.application.name String or null Application name
    response.application.url String or null Application URL
response.route Route Object The flight plan route. A standard route object, see the route section for more details

Example Request
curl -u {API_KEY}: -i -H "Content-Type: application/json" -X POST -d '{"fromICAO":"EHAM","toICAO":"KJFK","fromName":"Schiphol","toName":"John F Kennedy Intl","tags":["atlantic"],"route":{"nodes":[{"ident":"EHAM","type":"APT","lat":52.31485,"lon":4.75812,"alt":0,"name":"Schiphol","via":null},{"ident":"KJFK","type":"APT","lat":40.63990,"lon":-73.77666,"alt":0,"name":"John F Kennedy Intl","via":null}]}}' https://api.flightplandatabase.com/plan
HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
Link: </user/example>; rel="user"
{
  "id": 62493,
  "fromICAO": "EHAM",
  "toICAO": "KJFK",
  "fromName": "Schiphol",
  "toName": "John F Kennedy Intl",
  "flightNumber": null,
  "distance": 3157.88876623323,
  "maxAltitude": 0,
  "waypoints": 2,
  "popularity": 0,
  "notes": null,
  "encodedPolyline": "yvh~Hgi`\\lggfAjyi~M",
  "createdAt": "2015-08-05T22:44:34.000Z",
  "updatedAt": "2015-08-05T22:44:34.000Z",
  "tags": [
    "atlantic"
  ],
  "user": {
    "id": 1,
    "username": "example",
    "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
    "location": null
  },
  "route": {
    "nodes": [
      {
        "type": "APT",
        "ident": "EHAM",
        "name": "Schiphol",
        "lat": 52.31485000000001,
        "lon": 4.758119999999991,
        "alt": 0,
        "via": null
      },
      {
        "type": "APT",
        "ident": "KJFK",
        "name": "John F Kennedy Intl",
        "lat": 40.63990000000001,
        "lon": -73.77666,
        "alt": 0,
        "via": null
      }
    ]
  }
}
PATCH Edit Plan
Authentication required
PATCH https://api.flightplandatabase.com/plan/{id}
Edits a flight plan linked to your account. Requests to this endpoint must be submitted as JSON content type.

Parameters:
Parameter Location Type Required Default Description
id Path Number Yes - The id of the plan to edit
fromICAO Body String Yes - ICAO code of the departure airport
toICAO Body String Yes - ICAO code of the destination airport
fromName Body String Yes - Name of the departure airport
toName Body String Yes - Name of the destination airport
flightNumber Body String or null No null Flight number of the flight plan
notes Body String No null Extra information about the flight plan
tags Body Array or null No Empty Array Array of flight plan tags
tags[] Body String No - Flight plan tag
route Body Route Object or undefined. No - The flight plan route. A standard route object, see the route section for more details. If undefined, route will not be edited

Response:
Component Type Description
response.id Number Unique plan identifier number
response.fromICAO String or null ICAO code of the departure airport
response.toICAO String or null ICAO code of the destination airport
response.fromName String or null Name of the departure airport
response.toName String or null Name of the destination airport
response.flightNumber String or null Flight number of the flight plan
response.distance Number (Distance) Total distance of the flight plan route, with units determined by the X-Units header
response.maxAltitude Number (Altitude) Maximum altitude of the flight plan route, with units determined by the X-Units header
response.waypoints Number Number of nodes in the flight plan route
response.likes Number Number of times the flight plan has been liked
response.downloads Number Number of times the flight plan has been downloaded
response.popularity Number Relative popularity of the plan based on downloads and likes
response.notes String Extra information about the flight plan
response.encodedPolyline String Encoded polyline of the route, which can be used for quickly drawing maps
response.createdAt Date String UTC Date and time of flight plan creation
response.updatedAt Date String UTC Date and time of the last flight plan edit
response.tags Array Array of flight plan tags
response.tags[] String Flight plan tag
response.cycle Cycle Object or null Cycle associated with the plan. Null if no cycle linked
    response.cycle.id Number Unique cycle identifier number
    response.cycle.ident String Cycle identifier string
    response.cycle.year Number Cycle year
    response.cycle.release Number Cycle release within a year
response.user User Object or null User associated with the item. Null if no user linked
    response.user.id Number Unique user identifier number
    response.user.username String Username
    response.user.location String or null User provided location information. Null if not available
    response.user.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response.application Application Object or null Application associated with the item. Null if no application linked
    response.application.id Number Unique application identifier number
    response.application.name String or null Application name
    response.application.url String or null Application URL
response.route Route Object The flight plan route. A standard route object, see the route section for more details

Example Request
curl -u {API_KEY}: -i -H "Content-Type: application/json" -X PATCH -d '{"fromICAO":"EHAM","toICAO":"KJFK","fromName":"Schiphol","toName":"John F Kennedy Intl","tags":["atlantic"],"route":{"nodes":[{"ident":"EHAM","type":"APT","lat":52.31485,"lon":4.75812,"alt":0,"name":"Schiphol","via":null},{"ident":"KJFK","type":"APT","lat":40.63990,"lon":-73.77666,"alt":0,"name":"John F Kennedy Intl","via":null}]}}' https://api.flightplandatabase.com/plan/62493
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
Link: </user/example>; rel="user"
{
  "id": 62493,
  "fromICAO": "EHAM",
  "toICAO": "KJFK",
  "fromName": "Schiphol",
  "toName": "John F Kennedy Intl",
  "flightNumber": null,
  "distance": 3157.88876623323,
  "maxAltitude": 0,
  "waypoints": 2,
  "popularity": 0,
  "notes": null,
  "encodedPolyline": "yvh~Hgi`\\lggfAjyi~M",
  "createdAt": "2015-08-05T22:44:34.000Z",
  "updatedAt": "2015-08-05T22:44:34.000Z",
  "tags": [
    "atlantic"
  ],
  "user": {
    "id": 1,
    "username": "example",
    "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
    "location": null
  },
  "route": {
    "nodes": [
      {
        "type": "APT",
        "ident": "EHAM",
        "name": "Schiphol",
        "lat": 52.31485000000001,
        "lon": 4.758119999999991,
        "alt": 0,
        "via": null
      },
      {
        "type": "APT",
        "ident": "KJFK",
        "name": "John F Kennedy Intl",
        "lat": 40.63990000000001,
        "lon": -73.77666,
        "alt": 0,
        "via": null
      }
    ]
  }
}
DELETE Remove Plan
Authentication required
DELETE https://api.flightplandatabase.com/plan/{id}
Deletes a flight plan that is linked to your account. A HTTP 200 response code indicates the plan was successfully deleted

Parameters:
Parameter Location Type Required Default Description
id Path Number Yes - The id of the plan to delete

Response:
Component Type Description
response.message String Status message
response.errors Array or null Array of errors. Null or undefined when no error has occurred
response.errors[] String Description of the error that has occurred

Example Request
curl -u {API_KEY}: -i -X DELETE https://api.flightplandatabase.com/plan/62493
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
{
  "message": "OK",
  "errors": null
}
GET Plan Search
No authentication required
GET https://api.flightplandatabase.com/search/plans
Searches for for flight plans. A number of search parameters are available and will be combined to form a search request. Results are paginated

Parameters:
Parameter Location Type Required Default Description
q Querystring String No - Simple search query. Search departure ICAO & name, destination ICAO & name, username, tags and the flight number
from Querystring String No - From search query. Search departure ICAO & name
to Querystring String No - To search query. Search departure ICAO & name
fromICAO Querystring String No - Matches departure airport ICAO
toICAO Querystring String No - Matches destination airport ICAO
fromName Querystring String No - Matches departure airport name
toName Querystring String No - Matches destination airport name
flightNumber Querystring String No - Matches flight number
distanceMin Querystring Number (distance) No - Minimum route distance, with units determined by the X-Units header
distanceMax Querystring Number (distance) No - Maximum route distance, with units determined by the X-Units header
tags Querystring String No - Tag names to search, comma separated
includeRoute Querystring Boolean No false Include route objects for each plan in the response. Setting to true requires the request be authenticated with an API key
page Querystring String No - The page of results to fetch
limit Querystring Number No 20 The number of plans to return per page (max 100)
sort Querystring String No created The order of the returned plans. See Pagination for more options

Response:
Component Type Description
response[] Array Array of flight plans
response[].id Number Unique plan identifier number
response[].fromICAO String or null ICAO code of the departure airport
response[].toICAO String or null ICAO code of the destination airport
response[].fromName String or null Name of the departure airport
response[].toName String or null Name of the destination airport
response[].flightNumber String or null Flight number of the flight plan
response[].distance Number (Distance) Total distance of the flight plan route, with units determined by the X-Units header
response[].maxAltitude Number (Altitude) Maximum altitude of the flight plan route, with units determined by the X-Units header
response[].waypoints Number Number of nodes in the flight plan route
response[].likes Number Number of times the flight plan has been liked
response[].downloads Number Number of times the flight plan has been downloaded
response[].popularity Number Relative popularity of the plan based on downloads and likes
response[].notes String Extra information about the flight plan
response[].encodedPolyline String Encoded polyline of the route, which can be used for quickly drawing maps
response[].createdAt Date String UTC Date and time of flight plan creation
response[].updatedAt Date String UTC Date and time of the last flight plan edit
response[].tags Array Array of flight plan tags
response[].tags[] String Flight plan tag
response[].cycle Cycle Object or null Cycle associated with the plan. Null if no cycle linked
    response[].cycle.id Number Unique cycle identifier number
    response[].cycle.ident String Cycle identifier string
    response[].cycle.year Number Cycle year
    response[].cycle.release Number Cycle release within a year
response[].user User Object or null User associated with the item. Null if no user linked
    response[].user.id Number Unique user identifier number
    response[].user.username String Username
    response[].user.location String or null User provided location information. Null if not available
    response[].user.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response[].application Application Object or null Application associated with the item. Null if no application linked
    response[].application.id Number Unique application identifier number
    response[].application.name String or null Application name
    response[].application.url String or null Application URL
response[].route Route Object The flight plan route. A standard route object, see the route section for more details. Only returned if the includeRoute parameter is true

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/search/plans?fromICAO=EHAM&toName=Kennedy&limit=1
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
Link: </search/plans?fromICAO=EHAM&toName=Kennedy&limit=2&page=1>; rel="first", </search/plans?fromICAO=EHAM&toName=Kennedy&limit=2&page=1>; rel="prev", </search/plans?fromICAO=EHAM&toName=Kennedy&limit=2&page=3>; rel="next", </search/plans?fromICAO=EHAM&toName=Kennedy&limit=2&page=9>; rel="last"
X-Page-Current: 1
X-Page-Count: 18
X-Page-PerPage: 1
X-Item-Count: 18
X-Sort: created
[
  {
    "id": 59970,
    "fromICAO": "EHAM",
    "toICAO": "KJFK",
    "fromName": "Schiphol",
    "toName": "John F Kennedy Intl",
    "flightNumber": null,
    "distance": 3417.0572325371704,
    "maxAltitude": 38000,
    "waypoints": 37,
    "likes": 0,
    "downloads": 0,
    "popularity": 0,
    "notes": "",
    "encodedPolyline": "yvh~Hgi`\\qxhHjh~Ci_zAnuw@mtSt_Lcgn@hd]wn{@ldf@kfsDtefDawrEjcpD_l~D|fiDqvwJrtnJ}}yEfzpVoelA~vjH}~iCtapD_pcBjcvMogxCjdbXenlAlilN_zGtyuDimQty`OiuD|_aG{{AlqsE~|cBx}sYnxzApolQ~reK~b`|@jcwDfchRrxpKv~vh@x_dNdmyi@pmhLnhmSzvjTpapWdddJtooK|b{BnihD~bfA`||A|{l@lo{@bsfMpr|IbkeEbkmCtc~G~ioFvk|@xjhCppbEvaoF",
    "createdAt": "2015-07-06T08:06:41.000Z",
    "updatedAt": "2015-07-06T08:06:41.000Z",
    "tags": [
      "generated"
    ],
    "user": null
  }
]
Likes
GET Get Like
Authentication required
GET https://api.flightplandatabase.com/plan/{id}/like
Fetches your like status for a flight plan. A HTTP 200 status code indicates you like the plan. A HTTP 404 status code indicates you do not like the plan

Parameters:
Parameter Location Type Required Default Description
id Path Number Yes - The id of the plan to check

Response:
Component Type Description
response.message String Status message
response.errors Array or null Array of errors. Null or undefined when no error has occurred
response.errors[] String Description of the error that has occurred

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/plan/42/like
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
{
  "message": "OK",
  "errors": null
}
POST Create Like
Authentication required
POST https://api.flightplandatabase.com/plan/{id}/like
Likes a flight plan. A HTTP 201 status code indicates you have liked the plan. A HTTP 200 status code indicates you already liked the plan.

Parameters:
Parameter Location Type Required Default Description
id Path Number Yes - The id of the plan to like

Response:
Component Type Description
response.message String Status message
response.errors Array or null Array of errors. Null or undefined when no error has occurred
response.errors[] String Description of the error that has occurred

Example Request
curl -u {API_KEY}: -i -X POST https://api.flightplandatabase.com/plan/42/like
HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
{
  "message": "Created",
  "errors": null
}
DELETE Remove Like
Authentication required
DELETE https://api.flightplandatabase.com/plan/{id}/like
Removes a flight plan like. A HTTP 200 status code indicates you have unliked the plan. A HTTP 404 status code indicates you did not already like the plan.

Parameters:
Parameter Location Type Required Default Description
id Path Number Yes - The id of the plan to unlike

Response:
Component Type Description
response.message String Status message
response.errors Array or null Array of errors. Null or undefined when no error has occurred
response.errors[] String Description of the error that has occurred

Example Request
curl -u {API_KEY}: -i -X DELETE https://api.flightplandatabase.com/plan/42/like
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
{
  "message": "OK",
  "errors": null
}
Auto
POST Generate
Authentication required
POST https://api.flightplandatabase.com/auto/generate
Creates a new flight plan using the route generator.

Parameters:
Parameter Location Type Required Default Description
fromICAO Body String Yes - The departure airport ICAO code
toICAO Body String Yes - The destination airport ICAO code
useNAT Body Boolean No true Use North Atlantic Tracks in the route generation
usePACOT Body Boolean No true Use Pacific Organized Track System tracks in the route generation
useAWYLO Body Boolean No true Use low-level airways in the route generation
useAWYHI Body Boolean No true Use high-level airways in the route generation
cruiseAlt Body Number (altitude) No 35000 Basic flight profile cruise altitude
cruiseSpeed Body Number (speed) No 420 Basic flight profile cruise speed
ascentRate Body Number (climb rate) No 2500 Basic flight profile ascent rate
ascentSpeed Body Number (speed) No 250 Basic flight profile ascent speed
descentRate Body Number (climb rate) No 1500 Basic flight profile descent rate
descentSpeed Body Number (speed) No 250 Basic flight profile descent speed

Response:
Component Type Description
response.id Number Unique plan identifier number
response.fromICAO String or null ICAO code of the departure airport
response.toICAO String or null ICAO code of the destination airport
response.fromName String or null Name of the departure airport
response.toName String or null Name of the destination airport
response.flightNumber String or null Flight number of the flight plan
response.distance Number (Distance) Total distance of the flight plan route, with units determined by the X-Units header
response.maxAltitude Number (Altitude) Maximum altitude of the flight plan route, with units determined by the X-Units header
response.waypoints Number Number of nodes in the flight plan route
response.likes Number Number of times the flight plan has been liked
response.downloads Number Number of times the flight plan has been downloaded
response.popularity Number Relative popularity of the plan based on downloads and likes
response.notes String Extra information about the flight plan
response.encodedPolyline String Encoded polyline of the route, which can be used for quickly drawing maps
response.createdAt Date String UTC Date and time of flight plan creation
response.updatedAt Date String UTC Date and time of the last flight plan edit
response.tags Array Array of flight plan tags
response.tags[] String Flight plan tag
response.cycle Cycle Object or null Cycle associated with the plan. Null if no cycle linked
    response.cycle.id Number Unique cycle identifier number
    response.cycle.ident String Cycle identifier string
    response.cycle.year Number Cycle year
    response.cycle.release Number Cycle release within a year
response.user User Object or null User associated with the item. Null if no user linked
    response.user.id Number Unique user identifier number
    response.user.username String Username
    response.user.location String or null User provided location information. Null if not available
    response.user.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response.application Application Object or null Application associated with the item. Null if no application linked
    response.application.id Number Unique application identifier number
    response.application.name String or null Application name
    response.application.url String or null Application URL

Example Request
curl -u {API_KEY}: -i -H "Content-Type: application/json" -X POST -d '{"fromICAO":"EHAM","toICAO":"KJFK"}' https://api.flightplandatabase.com/auto/generate
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
Link: </user/example>; rel="user"
{
  "id": 62477,
  "fromICAO": "EHAM",
  "toICAO": "KJFK",
  "fromName": "Schiphol",
  "toName": "John F Kennedy Intl",
  "flightNumber": null,
  "distance": 3250.91252425407,
  "maxAltitude": 44000,
  "waypoints": 29,
  "popularity": 0,
  "notes": "",
  "encodedPolyline": "yvh~Hgi`\\{_~Ajk~Lsra@tm}Gsnk@btjJgrOviuCuxKdizBwyEjjiDudCxp{Aw|ApeeAqwAvkfAubAb~y@{m@joj@yvBbk|BaxBls|C`p`Bp{va@?~|hQ_ibE~po]?~b`|@_ibE~b`|@~reK~b`|@??rz_XvvtZb|p_@fqakAx~mD|jmQh{Kzpg@`~n@zgsChomAx{eDvk|@xjhCppbEvaoF",
  "createdAt": "2015-08-05T20:01:32.000Z",
  "updatedAt": "2015-08-05T20:01:32.000Z",
  "tags": [
    "generated"
  ],
  "user": {
    "id": 2429,
    "username": "example",
    "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
    "location": null
  }
}
POST Decode
Authentication required
POST https://api.flightplandatabase.com/auto/decode
Creates a new flight plan using the route decoder.

Parameters:
Parameter Location Type Required Default Description
route Body String Yes - The route to decode. Use a comma or space separated string of waypoints, beginning and ending with valid airport ICAOs (e.g. KSAN BROWS TRM LRAIN KDEN). Airways are supported if they are preceded and followed by valid waypoints on the airway (e.g. 06TRA UL851 BEGAR). SID and STAR procedures are not currently supported and will be skipped, along with any other unmatched waypoints.

Response:
Component Type Description
response.id Number Unique plan identifier number
response.fromICAO String or null ICAO code of the departure airport
response.toICAO String or null ICAO code of the destination airport
response.fromName String or null Name of the departure airport
response.toName String or null Name of the destination airport
response.flightNumber String or null Flight number of the flight plan
response.distance Number (Distance) Total distance of the flight plan route, with units determined by the X-Units header
response.maxAltitude Number (Altitude) Maximum altitude of the flight plan route, with units determined by the X-Units header
response.waypoints Number Number of nodes in the flight plan route
response.likes Number Number of times the flight plan has been liked
response.downloads Number Number of times the flight plan has been downloaded
response.popularity Number Relative popularity of the plan based on downloads and likes
response.notes String Extra information about the flight plan
response.encodedPolyline String Encoded polyline of the route, which can be used for quickly drawing maps
response.createdAt Date String UTC Date and time of flight plan creation
response.updatedAt Date String UTC Date and time of the last flight plan edit
response.tags Array Array of flight plan tags
response.tags[] String Flight plan tag
response.cycle Cycle Object or null Cycle associated with the plan. Null if no cycle linked
    response.cycle.id Number Unique cycle identifier number
    response.cycle.ident String Cycle identifier string
    response.cycle.year Number Cycle year
    response.cycle.release Number Cycle release within a year
response.user User Object or null User associated with the item. Null if no user linked
    response.user.id Number Unique user identifier number
    response.user.username String Username
    response.user.location String or null User provided location information. Null if not available
    response.user.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response.application Application Object or null Application associated with the item. Null if no application linked
    response.application.id Number Unique application identifier number
    response.application.name String or null Application name
    response.application.url String or null Application URL

Example Request
curl -u {API_KEY}: -i -H "Content-Type: application/json" -X POST -d '{"route":"KSAN BROWS TRM LRAIN KDEN"}' https://api.flightplandatabase.com/auto/decode
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
Link: </user/example>; rel="user"
{
  "id": 62478,
  "fromICAO": "KSAN",
  "toICAO": "KDEN",
  "fromName": "San Diego Intl",
  "toName": "Denver Intl",
  "flightNumber": null,
  "distance": 757.33261275174,
  "maxAltitude": 0,
  "waypoints": 5,
  "popularity": 0,
  "notes": "Requested: KSAN BROWS TRM LRAIN KDEN",
  "encodedPolyline": "wgxfEjrgjUf_Sk~pAavaEwavB}ksPsq_a@u}kSgfbc@",
  "createdAt": "2015-08-05T20:05:34.000Z",
  "updatedAt": "2015-08-05T20:05:34.000Z",
  "tags": [
    "decoded"
  ],
  "user": {
    "id": 2429,
    "username": "example",
    "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
    "location": null
  }
}
Users
GET Me
Authentication required
GET https://api.flightplandatabase.com/me
Fetches profile information for the currently authenticated user. This is an alias of /user/{current_username}.

Parameters:
None

Response:
Component Type Description
response.id Number Unique user identifier number
response.username String Username
response.location String or null User provided location information. Null if not available
response.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response.joined Date String UTC Date and time of user registration
response.lastSeen Date String UTC Date and time the user was last connected
response.plansCount Number Number of flight plans created by the user
response.plansDistance Number (Distance) Total distance of all user's flight plans, with units determined by the X-Units header
response.plansDownloads Number Total download count of all user's plans
response.plansLikes Number Total like count of all user's plans

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/me
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
Link: </user/example/likes>; rel="likes", </user/example/plans>; rel="plans"
{
  "id": 2429,
  "username": "example",
  "location": null,
  "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
  "joined": "2015-08-04T20:43:23.000Z",
  "lastSeen": "2015-08-04T20:43:23.000Z",
  "plansCount": 1,
  "plansDistance": 206.39590087344462,
  "plansDownloads": 1,
  "plansLikes": 0
}
GET User
No authentication required
GET https://api.flightplandatabase.com/user/{username}
Fetches profile information for any registered user

Parameters:
Parameter Location Type Required Default Description
username Path String Yes - The username of the user to fetch

Response:
Component Type Description
response.id Number Unique user identifier number
response.username String Username
response.location String or null User provided location information. Null if not available
response.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response.joined Date String UTC Date and time of user registration
response.lastSeen Date String UTC Date and time the user was last connected
response.plansCount Number Number of flight plans created by the user
response.plansDistance Number (Distance) Total distance of all user's flight plans, with units determined by the X-Units header
response.plansDownloads Number Total download count of all user's plans
response.plansLikes Number Total like count of all user's plans

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/user/example
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
Link: </user/example/likes>; rel="likes", </user/example/plans>; rel="plans"
{
  "id": 2429,
  "username": "example",
  "location": null,
  "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
  "joined": "2015-08-04T20:43:23.000Z",
  "lastSeen": "2015-08-04T20:43:23.000Z",
  "plansCount": 1,
  "plansDistance": 206.39590087344462,
  "plansDownloads": 1,
  "plansLikes": 0
}
GET User Plans
No authentication required
GET https://api.flightplandatabase.com/user/{username}/plans
Fetches flight plans created by a user. Results are paginated

Parameters:
Parameter Location Type Required Default Description
username Path String Yes - The username of the user
page Querystring String No - The page of results to fetch
limit Querystring Number No 20 The number of plans to return per page (max 100)
sort Querystring String No created The order of the returned plans. See Pagination for more options

Response:
Component Type Description
response[] Array Array of flight plans
response[].id Number Unique plan identifier number
response[].fromICAO String or null ICAO code of the departure airport
response[].toICAO String or null ICAO code of the destination airport
response[].fromName String or null Name of the departure airport
response[].toName String or null Name of the destination airport
response[].flightNumber String or null Flight number of the flight plan
response[].distance Number (Distance) Total distance of the flight plan route, with units determined by the X-Units header
response[].maxAltitude Number (Altitude) Maximum altitude of the flight plan route, with units determined by the X-Units header
response[].waypoints Number Number of nodes in the flight plan route
response[].likes Number Number of times the flight plan has been liked
response[].downloads Number Number of times the flight plan has been downloaded
response[].popularity Number Relative popularity of the plan based on downloads and likes
response[].notes String Extra information about the flight plan
response[].encodedPolyline String Encoded polyline of the route, which can be used for quickly drawing maps
response[].createdAt Date String UTC Date and time of flight plan creation
response[].updatedAt Date String UTC Date and time of the last flight plan edit
response[].tags Array Array of flight plan tags
response[].tags[] String Flight plan tag
response[].cycle Cycle Object or null Cycle associated with the plan. Null if no cycle linked
    response[].cycle.id Number Unique cycle identifier number
    response[].cycle.ident String Cycle identifier string
    response[].cycle.year Number Cycle year
    response[].cycle.release Number Cycle release within a year
response[].user User Object or null User associated with the item. Null if no user linked
    response[].user.id Number Unique user identifier number
    response[].user.username String Username
    response[].user.location String or null User provided location information. Null if not available
    response[].user.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response[].application Application Object or null Application associated with the item. Null if no application linked
    response[].application.id Number Unique application identifier number
    response[].application.name String or null Application name
    response[].application.url String or null Application URL

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/user/example/plans?page=1&limit=10
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
X-Page-Current: 1
X-Page-Count: 1
X-Page-PerPage: 10
X-Item-Count: 1
X-Sort: created
[
  {
    "id": 62373,
    "fromICAO": "KLAS",
    "toICAO": "KLAX",
    "fromName": "Mc Carran Intl",
    "toName": "Los Angeles Intl",
    "flightNumber": null,
    "distance": 206.39578816273502,
    "maxAltitude": 18000,
    "waypoints": 8,
    "likes": 0,
    "downloads": 1,
    "popularity": 1,
    "notes": "",
    "encodedPolyline": "aaf{E`|y}T|Ftf@px\\hpe@lnCxwDbsk@rfx@vhjC`nnDd~f@zkv@nb~ChdmH",
    "createdAt": "2015-08-04T20:48:08.000Z",
    "updatedAt": "2015-08-04T20:48:08.000Z",
    "tags": [
      "generated"
    ],
    "user": {
      "id": 2429,
      "username": "example",
      "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
      "location": null
    }
  }
]
GET User Likes
No authentication required
GET https://api.flightplandatabase.com/user/{username}/likes
Fetches flight plans liked by a user. Results are paginated

Parameters:
Parameter Location Type Required Default Description
username Path String Yes - The username of the user
page Querystring String No - The page of results to fetch
limit Querystring Number No 20 The number of plans to return per page (max 100)
sort Querystring String No created The order of the returned plans. See Pagination for more options

Response:
Component Type Description
response[] Array Array of flight plans
response[].id Number Unique plan identifier number
response[].fromICAO String or null ICAO code of the departure airport
response[].toICAO String or null ICAO code of the destination airport
response[].fromName String or null Name of the departure airport
response[].toName String or null Name of the destination airport
response[].flightNumber String or null Flight number of the flight plan
response[].distance Number (Distance) Total distance of the flight plan route, with units determined by the X-Units header
response[].maxAltitude Number (Altitude) Maximum altitude of the flight plan route, with units determined by the X-Units header
response[].waypoints Number Number of nodes in the flight plan route
response[].likes Number Number of times the flight plan has been liked
response[].downloads Number Number of times the flight plan has been downloaded
response[].popularity Number Relative popularity of the plan based on downloads and likes
response[].notes String Extra information about the flight plan
response[].encodedPolyline String Encoded polyline of the route, which can be used for quickly drawing maps
response[].createdAt Date String UTC Date and time of flight plan creation
response[].updatedAt Date String UTC Date and time of the last flight plan edit
response[].tags Array Array of flight plan tags
response[].tags[] String Flight plan tag
response[].cycle Cycle Object or null Cycle associated with the plan. Null if no cycle linked
    response[].cycle.id Number Unique cycle identifier number
    response[].cycle.ident String Cycle identifier string
    response[].cycle.year Number Cycle year
    response[].cycle.release Number Cycle release within a year
response[].user User Object or null User associated with the item. Null if no user linked
    response[].user.id Number Unique user identifier number
    response[].user.username String Username
    response[].user.location String or null User provided location information. Null if not available
    response[].user.gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images
response[].application Application Object or null Application associated with the item. Null if no application linked
    response[].application.id Number Unique application identifier number
    response[].application.name String or null Application name
    response[].application.url String or null Application URL

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/user/example/likes?page=1&limit=10
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
X-Page-Current: 1
X-Page-Count: 1
X-Page-PerPage: 10
X-Item-Count: 1
X-Sort: created
[
  {
    "id": 62271,
    "fromICAO": "SBBR",
    "toICAO": "KMIA",
    "fromName": "Brasilia Presidente Juscelino Kubitsch",
    "toName": "Miami Intl",
    "flightNumber": null,
    "distance": 3157.0896301647904,
    "maxAltitude": 34000,
    "waypoints": 37,
    "likes": 2,
    "downloads": 0,
    "popularity": 10,
    "notes": "",
    "encodedPolyline": "jyz_BlbncHuagFpenC}ckOngoGar}Bta~A}aqErrxCcwdEncoCmydXt{`QwjaN|dvI}}vIr~rF}vxHro~EshcLn{gHw}oGtyoDiveKhcvFmivIjm}FiqfHnxwEgmiBbcmAyubBrwhAisn@~h`@o~f@hb[kzYd{Qw{qAzey@ktmAl_v@imlDjsxBmu`Rr`wLkjzFz|aEwdoF|p|Dk{|HzucGwg~CtuxAsflF~hlGugrCb{iDc{{CvixDmwrAbocB{`t@pe_Acuz@vwgAqin@xby@~cAprh@ip`DxugI",
    "createdAt": "2015-08-03T21:51:48.000Z",
    "updatedAt": "2015-08-03T21:51:48.000Z",
    "tags": [
      "generated"
    ],
    "user": null
  }
]
GET User Search
No authentication required
GET https://api.flightplandatabase.com/search/users
Searches for users by username. These results may be paginated, check for the presence of the X-Page-Current header

Parameters:
Parameter Location Type Required Default Description
q Querystring String Yes - The search query

Response:
Component Type Description
response[] Array Array of user objects
response[].id Number Unique user identifier number
response[].username String Username
response[].location String or null User provided location information. Null if not available
response[].gravatarHash String Gravatar hash based on user's account email address. Used to fetch avatar images

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/search/users?q=example
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
X-Item-Count: 1
[
  {
    "id": 2429,
    "username": "example",
    "gravatarHash": "f30b58b998a11b5d417cc2c78df3f764",
    "location": null
  }
]
Tags
GET Tags
No authentication required
GET https://api.flightplandatabase.com/tags
Fetches current popular tags from all flight plans. Only tags with sufficient popularity are included

Parameters:
None

Response:
Component Type Description
response[] Array Array of tag objects
response[].name String Tag name
response[].description String or null Description of the tag. Null if no description is available
response[].planCount Number Number of plans with this tag
response[].popularity Number Popularity index of the tag

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/tags
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
X-Item-Count: 1
[
  {
    "name": "Decoded",
    "description": "Flight plans decoded from external route strings",
    "planCount": 7430,
    "popularity": 0.010143822356129395
  },
  {
    "name": "Generated",
    "description": "Computer generated plans, of varying quality",
    "planCount": 35343,
    "popularity": 0.009036140132228622
  },
  {
    "name": "Real",
    "description": null,
    "planCount": 1173,
    "popularity": 0.00794782612327576
  },
  {
    "name": "Commercial",
    "description": "Flight plans derived from real world commercial airline passenger routes",
    "planCount": 877,
    "popularity": 0.0069999999788556855
  },
  {
    "name": "Multipart",
    "description": null,
    "planCount": 49,
    "popularity": 0.004097959187062343
  },
  {
    "name": "Novice",
    "description": "Plans suitable for beginners",
    "planCount": 223,
    "popularity": 0.003978475333961988
  },
  {
    "name": "Standard",
    "description": null,
    "planCount": 965,
    "popularity": 0.0014607253889167208
  }
]
Nav
GET Airport
No authentication required
GET https://api.flightplandatabase.com/nav/airport/{icao}
Fetches information about an airport

Parameters:
Parameter Location Type Required Default Description
icao Path String Yes - The airport ICAO to fetch

Response:
Component Type Description
response.ICAO String The airport ICAO code
response.IATA String or null The airport IATA code. Null if not available
response.name String The airport name
response.regionName String or null The geographical region the airport is located in. Null if not available
response.elevation Number (elevation) The airport elevation above mean sea level, with units determined by the X-Units header
response.lat Number The airport latitude in degrees
response.lon Number The airport longitude in degrees
response.magneticVariation Number The current magnetic variation/declination at the airport, based on the World Magnetic Model
response.timezone Timezone Object The airport timezone information
    response.timezone.name String or null The IANA timezone the airport is located in. Null if not available
    response.timezone.offset Number or null The number of seconds the airport timezone is currently offset from UTC. Positive is ahead of UTC. Null if not available
response.times Times Object Relevant times at the airport
    response.times.sunrise Date String UTC Date and time of sunrise
    response.times.sunset Date String UTC Date and time of sunset
    response.times.dawn Date String UTC Date and time of dawn
    response.times.dusk Date String UTC Date and time of dusk
response.runwayCount Number The number of runways at the airport
response.runways Array Array of runways. Note: each physical runway will appear twice, once from each end
    response.runways[].ident String The runway identifier
    response.runways[].width Number (length) The runway width, with units determined by the X-Units header
    response.runways[].length Number (length) The runway length, with units determined by the X-Units header
    response.runways[].bearing Number The runway bearing in true degrees
    response.runways[].surface String The runway surface material
    response.runways[].markings[] Array Array of strings of runway markings
    response.runways[].lighting[] Array Array of strings of runway lighting types
    response.runways[].thresholdOffset Number (length) The distance of the displaced threshold from the runway end, with units determined by the X-Units header
    response.runways[].overrunLength Number (length) The runway overrun length, with units determined by the X-Units header
    response.runways[].ends Array Two element array containing the location of the two ends of the runway
        response.runways[].ends[].ident String The identifier of the runway end
        response.runways[].ends[].lat Number The latitude of the runway end
        response.runways[].ends[].lon Number The longitude of the runway end
    response.runways[].navaids Array Array of navaids associated with the current runway
        response.runways[].navaids[].ident String The navaid identifier
        response.runways[].navaids[].type String The navaid type. One of LOC-ILS, LOC-LOC, GS or DME
        response.runways[].navaids[].lat Number The navaid latitude
        response.runways[].navaids[].lon Number The navaid longitude
        response.runways[].navaids[].airport String The airport associated with the navaid
        response.runways[].navaids[].runway String The runway associated with the navaid
        response.runways[].navaids[].frequency Number or null The navaid frequency in Hz. Null if not available
        response.runways[].navaids[].slope Number or null The navaid slope in degrees from horizontal used for type GS. Null if not available
        response.runways[].navaids[].bearing Number or null The navaid bearing in true degrees. Null if not available
        response.runways[].navaids[].name String or null The navaid name. Null if not available
        response.runways[].navaids[].elevation Number (elevation) The navaid elevation above mean sea level, with units determined by the X-Units header
        response.runways[].navaids[].range Number (distance) The navaid range, with units determined by the X-Units header
response.frequencies Array Array of frequencies associated with the airport
    response.frequencies[].type String The frequency type
    response.frequencies[].frequency Number The frequency in Hz
    response.frequencies[].name String or null The frequency name. Null if not available
response.weather Weather Object Airport weather information
    response.weather.METAR String or null Current METAR report for the airport. Null if no METAR report is available
    response.weather.TAF String or null Current TAF report for the airport. Null if no TAF report is available

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/nav/airport/EGLC
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
{
  "ICAO": "EGLC",
  "IATA": "LCY",
  "name": "London City",
  "regionName": "United Kingdom",
  "elevation": 19,
  "lat": 51.5052306,
  "lon": 0.05517525,
  "magneticVariation": -0.7303151023049803,
  "timezone": {
    "name": "Europe/London",
    "offset": 3600
  },
  "times": {
    "sunrise": "2015-08-04T04:28:42.115Z",
    "sunset": "2015-08-04T19:45:39.086Z",
    "dawn": "2015-08-04T03:48:43.656Z",
    "dusk": "2015-08-04T20:25:37.545Z"
  },
  "runwayCount": 1,
  "runways": [
    {
      "ident": "09",
      "width": 97.998687813,
      "length": 4930.643052114,
      "bearing": 92.89,
      "surface": "Concrete",
      "thresholdOffset": 322.014436185,
      "overrunLength": 164.009186601,
      "ends": [
        {
          "ident": "09",
          "lat": 51.50557275,
          "lon": 0.0443354
        },
        {
          "ident": "27",
          "lat": 51.50488846,
          "lon": 0.0660151
        }
      ],
      "navaids": [
        {
          "ident": "ILST",
          "type": "LOC-ILS",
          "lat": 51.504842,
          "lon": 0.067503,
          "airport": "EGLC",
          "runway": "09",
          "frequency": 111150000,
          "slope": null,
          "bearing": 92.91,
          "name": "ILS-cat-I",
          "elevation": 19,
          "range": 18
        },
        {
          "ident": "ILST",
          "type": "GS",
          "lat": 51.506011,
          "lon": 0.047403,
          "airport": "EGLC",
          "runway": "09",
          "frequency": 111150000,
          "slope": 5.05,
          "bearing": 92.903,
          "name": "GS",
          "elevation": 35,
          "range": 10
        },
        {
          "ident": "ILST",
          "type": "DME",
          "lat": 51.505847,
          "lon": 0.055411,
          "airport": "EGLC",
          "runway": "09",
          "frequency": 111150000,
          "slope": null,
          "bearing": null,
          "name": "DME-ILS",
          "elevation": 48,
          "range": 18
        }
      ]
    },
    {
      "ident": "27",
      "width": 97.998687813,
      "length": 4930.643052114,
      "bearing": 272.91,
      "surface": "Concrete",
      "thresholdOffset": 243.011811393,
      "overrunLength": 279.00262509600003,
      "ends": [
        {
          "ident": "27",
          "lat": 51.50488846,
          "lon": 0.0660151
        },
        {
          "ident": "09",
          "lat": 51.50557275,
          "lon": 0.0443354
        }
      ],
      "navaids": [
        {
          "ident": "ILSR",
          "type": "LOC-ILS",
          "lat": 51.505642,
          "lon": 0.042125,
          "airport": "EGLC",
          "runway": "27",
          "frequency": 111150000,
          "slope": null,
          "bearing": 272.892,
          "name": "ILS-cat-I",
          "elevation": 19,
          "range": 18
        },
        {
          "ident": "ILSR",
          "type": "GS",
          "lat": 51.505514,
          "lon": 0.06335,
          "airport": "EGLC",
          "runway": "27",
          "frequency": 111150000,
          "slope": 5.5,
          "bearing": 272.903,
          "name": "GS",
          "elevation": 35,
          "range": 10
        },
        {
          "ident": "ILSR",
          "type": "DME",
          "lat": 51.505794,
          "lon": 0.054425,
          "airport": "EGLC",
          "runway": "27",
          "frequency": 111150000,
          "slope": null,
          "bearing": null,
          "name": "DME-ILS",
          "elevation": 48,
          "range": 18
        }
      ]
    }
  ],
  "frequencies": [
    {
      "type": "REC",
      "frequency": 136350000,
      "name": "City Information"
    },
    {
      "type": "GND",
      "frequency": 121820000,
      "name": "City Ground"
    },
    {
      "type": "TWR",
      "frequency": 118070000,
      "name": "City Tower"
    },
    {
      "type": "TWR",
      "frequency": 118400000,
      "name": "City Tower"
    },
    {
      "type": "APP",
      "frequency": 132700000,
      "name": "City Approach"
    }
  ],
  "weather": {
    "METAR": "EGLC 042150Z AUTO 23009KT 200V270 9999 NCD 17/10 Q1016",
    "TAF": null
  }
}
GET NAT Tracks
No authentication required
GET https://api.flightplandatabase.com/nav/NATS
Fetches current North Atlantic Tracks

Parameters:
None

Response:
Component Type Description
response Array Array of NATs
response[].ident String Track identifier
response[].route Route Object Standard route object with valid flight levels included
response[].validFrom Date String UTC Date and time the track is valid from
response[].validTo Date String UTC Date and time the track is valid to

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/nav/NATS
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
[
  {
    "ident": "A",
    "route": {
      "nodes": [
        {
          "type": "FIX",
          "ident": "BALIX",
          "name": null,
          "lat": 59,
          "lon": -10,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "61/20",
          "name": null,
          "lat": 61,
          "lon": -20,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "61/30",
          "name": null,
          "lat": 61,
          "lon": -30,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "62/40",
          "name": null,
          "lat": 62,
          "lon": -40,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "63/50",
          "name": null,
          "lat": 63,
          "lon": -50,
          "alt": 0,
          "via": null
        }
      ],
      "eastLevels": null,
      "westLevels": [
        310,
        320,
        330,
        350,
        360,
        370
      ]
    },
    "validFrom": "2015-08-05T11:30:00.000Z",
    "validTo": "2015-08-05T19:00:00.000Z"
  }
]
GET PACOTS Tracks
No authentication required
GET https://api.flightplandatabase.com/nav/PACOTS
Fetches current Pacific Organized Track System tracks

Parameters:
None

Response:
Component Type Description
response Array Array of PACOTS tracks
response[].ident String Track identifier
response[].route Route Object Standard route object with valid flight levels included
response[].validFrom Date String UTC Date and time the track is valid from
response[].validTo Date String UTC Date and time the track is valid to

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/nav/PACOTS
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
[
  {
    "ident": "1",
    "route": {
      "nodes": [
        {
          "type": "FIX",
          "ident": "KALNA",
          "name": null,
          "lat": 39.153833,
          "lon": 149.8255,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "44N160E",
          "name": null,
          "lat": 44,
          "lon": 160,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "46N170E",
          "name": null,
          "lat": 46,
          "lon": 170,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "48N180E",
          "name": null,
          "lat": 48,
          "lon": 180,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "50N170W",
          "name": null,
          "lat": 50,
          "lon": -170,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "51N160W",
          "name": null,
          "lat": 51,
          "lon": -160,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "51N150W",
          "name": null,
          "lat": 51,
          "lon": -150,
          "alt": 0,
          "via": null
        },
        {
          "type": "LATLON",
          "ident": "51N140W",
          "name": null,
          "lat": 51,
          "lon": -140,
          "alt": 0,
          "via": null
        },
        {
          "type": "FIX",
          "ident": "ORNAI",
          "name": null,
          "lat": 50,
          "lon": -133.3975,
          "alt": 0,
          "via": null
        }
      ]
    },
    "validFrom": "2015-08-05T07:00:00.000Z",
    "validTo": "2015-08-05T21:00:00.000Z"
  }
]
GET Search Navaids
No authentication required
GET https://api.flightplandatabase.com/search/nav
Searches navaids using a query. These results may be paginated, check for the presence of the X-Page-Current header

Parameters:
Parameter Location Type Required Default Description
q Querystring String Yes - The search query. Searches the navaid identifier and navaid name
types Querystring String No All types The navaid types to search for. If excluded, all navaid types are returned. If the parameter is defined multiple times, the search will include all passed types. Available types are in the route section

Response:
Component Type Description
response Array Array of navaids
response[].ident String Navaid identifier (airport ICAO for returned airports)
response[].type String Navaid type. Available types are in the route section
response[].lat Number Navaid latitude
response[].lon Number Navaid longitude
response[].name String or null Navaid name or null if not available
response[].elevation Number Navaid elevation, with units determined by the X-Units header
response[].airportICAO String or null Associated airport ICAO or null if not available
response[].runwayIdent String or null Associated runway identifier or null if not available

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/search/nav?q=berlin&types=VOR&types=APT
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
X-Item-Count: 8
[
  {
    "ident": "45C",
    "type": "APT",
    "lat": 43.99164722,
    "lon": -88.962615,
    "name": "Berlin Field",
    "elevation": 773,
    "airportICAO": "EDDB",
    "runwayIdent": null
  },
  {
    "ident": "EDDB",
    "type": "APT",
    "lat": 52.378541,
    "lon": 13.52062925,
    "name": "Berlin Schoenefeld",
    "elevation": 157
  },
  {
    "ident": "EDDI",
    "type": "APT",
    "lat": 52.47301856,
    "lon": 13.40364202,
    "name": "[X] Berlin Tempelhof",
    "elevation": 164
  },
  {
    "ident": "EDDT",
    "type": "APT",
    "lat": 52.5591,
    "lon": 13.2901875,
    "name": "Berlin Tegel",
    "elevation": 122
  },
  {
    "ident": "KBML",
    "type": "APT",
    "lat": 44.5744015,
    "lon": -71.1763695,
    "name": "BERLIN MUNI",
    "elevation": 1161
  },
  {
    "ident": "MA19",
    "type": "APT",
    "lat": 42.36759305,
    "lon": -71.64173417,
    "name": "Berlin Lndg Area",
    "elevation": 270
  },
  {
    "ident": "OH57",
    "type": "APT",
    "lat": 40.25895055,
    "lon": -83.01185112,
    "name": "Berlin Station Lndg Strip",
    "elevation": 955
  },
  {
    "ident": "BML",
    "type": "VOR",
    "lat": 44.63341667,
    "lon": -71.18611111,
    "name": "BERLIN VOR-DME",
    "elevation": 1731
  }
]
Weather
GET Weather
No authentication required
GET https://api.flightplandatabase.com/weather/{icao}
Fetches current weather conditions at an airport

Parameters:
Parameter Location Type Required Default Description
icao Path String Yes - The airport ICAO to fetch weather for

Response:
Component Type Description
response.METAR String or null Current METAR report for the airport. Null if no METAR report is available
response.TAF String or null Current TAF report for the airport. Null if no TAF report is available

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/weather/KLAX
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
{
  "METAR": "KLAX 042053Z 26015KT 10SM FEW180 SCT250 25/17 A2994",
  "TAF": "TAF AMD KLAX 042058Z 0421/0524 26012G22KT P6SM SCT180 SCT250 FM050400 26007KT P6SM SCT200 FM050700 VRB05KT P6SM SCT007 SCT200 FM051800 23006KT P6SM SCT020 SCT180"
}
Auth
GET Key Revoke
Authentication required
GET https://api.flightplandatabase.com/auth/revoke
Use this endpoint to manually revoke an API key in the event it is compromised. If the HTTP response code is 200 and the status message is "OK", then the key has been revoked and any further requests will be rejected. Any other status code or message indicates an error has occurred and the errors array will give further details.

Parameters:
None

Response:
Component Type Description
response.message String Status message
response.errors Array or null Array of errors. Null or undefined when no error has occurred
response.errors[] String Description of the error that has occurred

Example Request
curl -u {API_KEY}: -i https://api.flightplandatabase.com/auth/revoke
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-API-Version: 1
X-Units: AVIATION
X-Limit-Cap: 100
X-Limit-Used: 1
{
  "message": "OK",
  "errors": null
}