FLIGHT Developers

Checklist API

Read every startup checklist in the FLIGHT library as JSON, by simulator or by aircraft model.

Read-onlyJSONAPI key

Base URL

https://flightchecklist.app/api/v1
Aircraft
118
Simulators
4
Endpoints
3

Quickstart

Three steps from nothing to a checklist.

  1. 1

    Get a key

    Keys are issued by the FLIGHT team. Ask for one on Discord and say what you are building.

  2. 2

    Store it safely

    Keep it in an environment variable such as FLIGHT_API_KEY, on a server, never in browser code.

  3. 3

    Make a request

    Send it as a Bearer token. Every response is JSON with a data field.

curl "https://flightchecklist.app/api/v1/checklists?sim=msfs" \
  -H "Authorization: Bearer $FLIGHT_API_KEY"

Authentication

Every request needs a key, in either of these headers.

Request headers
Authorization: Bearer flt_...
x-api-key: flt_...

Treat a key like a password. Call the API from a server or script, not from a web page or app: the API sends no CORS headers, and anyone who sees a key can use it. If one leaks, ask for it to be revoked and you will get a new one.

Try it

Send a real request from this page and see the response.

Kept in this tab only and sent only to this site. Requests count against the key's usage.

GET /api/v1/checklists

Paste your key, pick an endpoint and send. The response shows up here.

Endpoints

All endpoints are GET and live under https://flightchecklist.app/api/v1.

GET/sims

List simulators

Every simulator with at least one checklist, and how many aircraft it has.

Request

curl "https://flightchecklist.app/api/v1/sims" \
  -H "Authorization: Bearer $FLIGHT_API_KEY"

Response

200 OK
{
  "data": [
    {
      "id": "msfs",
      "name": "MSFS 2024",
      "fullName": "Microsoft Flight Simulator 2024",
      "aircraftCount": 65
    },
    {
      "id": "dcs",
      "name": "DCS World",
      "fullName": "Digital Combat Simulator World",
      "aircraftCount": 43
    },
    {
      "id": "xplane12",
      "name": "X-Plane 12",
      "fullName": "Laminar Research X-Plane 12",
      "aircraftCount": 4
    },
    {
      "id": "bms",
      "name": "Falcon BMS",
      "fullName": "Benchmark Sims - Falcon BMS",
      "aircraftCount": 6
    }
  ]
}
GET/checklists

List aircraft

Every aircraft in the library, without the checklist itself. Filters are optional and combine.

Query parameters

Name
simoptional
Description
A simulator id from /sims.
Example
dcs
Name
qoptional
Description
Part of the model name or aircraft id. Case-insensitive.
Example
737
Name
typeoptional
Description
The exact aircraft type. Case-insensitive.
Example
Twin Engine Jet

Request

curl "https://flightchecklist.app/api/v1/checklists?sim=dcs&q=hornet" \
  -H "Authorization: Bearer $FLIGHT_API_KEY"

Response

200 OK
{
  "data": [
    {
      "id": "fa-18c-hornet",
      "name": "F/A-18C Hornet",
      "sim": "dcs",
      "simName": "DCS World",
      "manufacturer": "Boeing",
      "developer": "Eagle Dynamics",
      "type": "Twin Engine Fighter",
      "category": "Fighter",
      "era": "4th Gen",
      "phaseCount": 14,
      "stepCount": 130,
      "url": "https://flightchecklist.app/dcs/fa-18c-hornet"
    }
  ],
  "count": 1
}
GET/checklists/{aircraft}

Get a checklist

One aircraft's full checklist: its details plus every phase and step.

Path parameter

Name
aircraftrequired
Description
An aircraft id from /checklists.
Example
cessna-172

Request

curl "https://flightchecklist.app/api/v1/checklists/cessna-172" \
  -H "Authorization: Bearer $FLIGHT_API_KEY"

Response

200 OK · trimmed to the first phase and three steps
{
  "data": {
    "id": "cessna-172",
    "name": "Cessna 172 Skyhawk",
    "sim": "msfs",
    "simName": "MSFS 2024",
    "manufacturer": "Cessna",
    "developer": "Asobo Studio",
    "type": "Single Engine Piston",
    "category": "General Aviation",
    "era": "1950s",
    "phaseCount": 13,
    "stepCount": 178,
    "url": "https://flightchecklist.app/msfs/cessna-172",
    "phases": [
      {
        "name": "Pre-Flight Planning",
        "steps": [
          {
            "id": "pf1",
            "action": "Weather Briefing (METAR / TAF)",
            "expected": "REVIEWED",
            "note": "Check current conditions and forecast at departure, enroute, and destination airports."
          },
          {
            "id": "pf2",
            "action": "NOTAMs",
            "expected": "REVIEWED",
            "note": "Check for runway closures, TFRs, and airspace restrictions."
          },
          {
            "id": "pf3",
            "action": "Fuel Required",
            "expected": "CALCULATED",
            "note": "POH Section 5 Cruise Performance (Figure 5-8) at 2550 lb, recommended lean mixture: 8.2 GPH at 2400 RPM / 6000 ft, up to 10.4 GPH at 75% MCP. Usable fuel 53.0 US gal. Plan trip fuel plus a 30-minute VFR reserve (45 min at night)."
          }
        ],
        "gsxSteps": [
          {
            "id": "gsx-pf-1",
            "action": "GSX - Fuel Truck",
            "expected": "REFUEL COMPLETE",
            "note": "GSX menu: Refuel Aircraft. Total capacity 56 US gal (2 tanks at 28.0 gal each), 53.0 gal usable."
          }
        ]
      }
    ]
  }
}

Response objects

Successful responses wrap their result in data. Lists also carry a count.

Aircraft

Field
id
Type
string
Description
Aircraft id, used in /checklists/{aircraft}.
Field
name
Type
string
Description
Model name as shown on the site.
Field
sim
Type
string
Description
Simulator id, as in /sims.
Field
simName
Type
string
Description
Simulator display name.
Field
manufacturer
Type
string | null
Description
Who built the airframe.
Field
developer
Type
string | null
Description
Who built the add-on.
Field
type
Type
string
Description
Aircraft type, e.g. Single Engine Piston.
Field
category
Type
string
Description
General Aviation, Airliner, Fighter and so on.
Field
era
Type
string
Description
Era or generation.
Field
phaseCount
Type
number
Description
Phases in the checklist.
Field
stepCount
Type
number
Description
Steps across every phase.
Field
url
Type
string
Description
The checklist on flightchecklist.app.
Field
phases
Type
Phase[]
Description
Only on /checklists/{aircraft}. Each phase is { name, steps }.

Step

Field
id
Type
string
Description
Step id, unique within the checklist.
Field
action
Type
string
Description
What to operate, e.g. Parking Brake.
Field
expected
Type
string
Description
The state to set or check, e.g. SET.
Field
note
Type
string?
Description
Optional tip.
Field
caution
Type
string?
Description
Optional attention item.
Field
warning
Type
string?
Description
Optional critical item.

Errors

A failed request returns a non-200 status and an error object.

401 Unauthorized
{
  "error": {
    "code": "INVALID_KEY",
    "message": "This API key is not valid or has been revoked."
  }
}
Status
401
Code
MISSING_KEY
Meaning
No key in the request.
Status
401
Code
INVALID_KEY
Meaning
The key is malformed, unknown or revoked.
Status
400
Code
INVALID_SIM
Meaning
sim is not an id from /sims.
Status
404
Code
NOT_FOUND
Meaning
No aircraft with that id.
Status
503
Code
UNAVAILABLE
Meaning
The API is temporarily down. Retry later.

Recipes

Complete scripts you can copy and run.

Print a checklist to the terminal

List a sim's fleet, then fetch and print the first aircraft's checklist.

curl -s "https://flightchecklist.app/api/v1/checklists/cessna-172-xp" \
  -H "Authorization: Bearer $FLIGHT_API_KEY" \
  | jq -r '.data.phases[] | "\n\(.name)", (.steps[] | "  \(.action) ... \(.expected)")'

Save every checklist for one sim

One JSON file per aircraft. Swap bms for any sim id.

curl -s "https://flightchecklist.app/api/v1/checklists?sim=bms" \
  -H "Authorization: Bearer $FLIGHT_API_KEY" \
  | jq -r '.data[].id' \
  | while read -r id; do
      curl -s "https://flightchecklist.app/api/v1/checklists/$id" \
        -H "Authorization: Bearer $FLIGHT_API_KEY" > "$id.json"
    done

Good to know

  • Cache on your side

    Checklists change only when the site ships a release, so store what you fetch instead of requesting the same checklist on every use.

  • Usage is tracked

    Every request is counted against its key, per day and endpoint. The FLIGHT team can see what each key is used for.

  • Simulation only

    These checklists are for flight simulation. Never use them for real-world aviation.

Need a key, a new field or an endpoint? Ask on the FLIGHT Discord.

Join Discord