Managing flights

Get all flights

To get a paginated list of the IDs of all flights, make a GET request to flights. The flights are ordered by departure date (newest first).

GET api/latest/flights

Example request:

GET /api/latest/flights?page=10 HTTP/1.1
Authorization: Basic NTUyMjk4ZjctY...
curl -i \
     -u eyJhbGciOiJIUzI1NiIsImV4cCI6MTQwMjk5MTA2MCwiaWF0IjoxNDAyOTg3NDYwfQ.eyJpZCI6Ijg3YTBlZmViLTEzNjgtNGU4Mi1hYzVkLTZiYWQ0YzYzZGZiYiJ9.c9kn43-6DtQp2qHFaHpztxe6cEWwXDbBOmF4T9yQ_n4: \
     https://mycontrol.aero/api/latest/flights?page=10

Example response:

HTTP/1.0 200 OK
Link: <http://mycontrol.aero/api/latest/flights?page=11>; rel="next",
      <http://mycontrol.aero/api/latest/flights?page=9>; rel="prev",
      <http://mycontrol.aero/api/latest/flights?page=1>; rel="first",
      <http://mycontrol.aero/api/latest/flights?page=21>; rel="last"
Content-Type: application/json; charset=UTF-8

{
    "flights": [
        {"id": "79f63228-d148-4fab-b3f3-bfbaf5dfb728"},
        {"id": "c56e359c-3898-41c3-8661-8ff738a405ab"},
        {"id": "b8c06d8a-bccb-4e2a-bce6-b4d278b30bb0"},
        {"id": "10fb7295-12ba-43c6-8603-c7166bdd0210"},
        {"id": "300e9c64-2059-4fa2-9790-3d542fe7ac87"},
        {"id": "264cb442-4be6-45f5-ba20-45630aefc146"},
        {"id": "61d1b506-e402-4d14-a1d9-682c2c20ed2a"},
        {"id": "eabf3f66-1e9c-4aa5-bbb4-cf7d7e615f20"},
        {"id": "a9ac5c8e-9de6-4242-9525-04faf948e64d"},
        {"id": "fe2fc533-05be-4df5-9697-a8a8a48b4eb6"}
    ],
    "links": {
        "next": {"href": "http://mycontrol.aero/api/latest/flights?page=11"},
        "prev": {"href": "http://mycontrol.aero/api/latest/flights?page=9"},
        "first": {"href": "http://mycontrol.aero/api/latest/flights?page=1"},
        "last": {"href": "http://mycontrol.aero/api/latest/flights?page=21"}
    }
}
Query Parameters:
 
  • page – Page number
Request Headers:
 
Response Headers:
 
Status Codes:

Get a single flight

To get a single flight, make a GET request to flights/:id. Returns parameters as defined below.

GET api/latest/flights/:id

Example request:

GET /api/latest/flights/79f63228-d148-4fab-b3f3-bfbaf5dfb728 HTTP/1.1
Authorization: Basic NTUyMjk4ZjctY...
curl -i \
     -u eyJhbGciOiJIUzI1NiIsImV4cCI6MTQwMjk5MTA2MCwiaWF0IjoxNDAyOTg3NDYwfQ.eyJpZCI6Ijg3YTBlZmViLTEzNjgtNGU4Mi1hYzVkLTZiYWQ0zYzZGZiYiJ9.c9kn43-6DtQp2qHFaHpztxe6cEWwXDbBOmF4T9yQ_n4: \
     https://mycontrol.aero/api/latest/flights/79f63228-d148-4fab-b3f3-bfbaf5dfb728

Example response

HTTP/1.0 200 OK
Content-Type: application/json; charset=UTF-8

{
    "aircraft": {
        "registration": "HBPKX",
        "type": "AIRPLANE"
    },
    "arrival": {
        "place": {
            "name": "LSZA",
            "outside": false,
            "position": {
                "latitude": 46.00361,
                "longitude": 8.91028
            }
        },
        "time": "2014-05-30T17:00:00"
    },
    "approaches": {
        "ifr": null
    },
    "departure": {
        "place": {
            "name": "LSZA",
            "outside": false,
            "position": {
                "latitude": 46.00361,
                "longitude": 8.91028
            }
        },
        "time": "2014-05-30T13:00:00"
    },
    "created_at": "2014-06-02T08:38:46.628643",
    "cycles": {
        "paradropping": null
    },
    "departures": {
        "hdf": null
    },
    "glider_departure_mode": null,
    "helicopter_cycles": {
        "ecs": {
            "ecs_1": null,
            "ecs_2": null,
            "ecs_3": null,
            "ecs_4": null,
            "ecs_5": null,
            "ecs_total_cycles": null,
            "ecs_total_time": null
        },
        "hcs": {
            "hcs_1": null,
            "hcs_2": null,
            "hcs_3": null
        },
        "hho": {
            "hho_1": null,
            "hho_2": null,
            "hho_3": null
        },
        "police": null
    },
    "id": "79f63228-d148-4fab-b3f3-bfbaf5dfb728",
    "landings": {
        "day": null,
        "mountain": null,
        "night": null,
        "offshore": null
    },
    "pic": "SELF",
    "remarks": "",
    "time": {
        "block_helicopter": null,
        "multi_pilot": null,
        "operation": {
            "ifr": null,
            "night": null
        },
        "pilot_function": {
            "copilot": null,
            "dual": null,
            "examiner": null,
            "instructor": null,
            "pic": 240
        },
        "single_pilot": {
            "me": 240,
            "se": 240
        },
        "total": 240
    }
    "updated_at": "2014-06-02T08:38:46.628643"
}
Request Headers:
 
Status Codes:

Delete a flight

To delete a flight, make a DELETE request to flights/:id.

DELETE api/latest/flights/:id

Example request:

DELETE /api/latest/flights/79f63228-d148-4fab-b3f3-bfbaf5dfb728 HTTP/1.1
Authorization: Basic NTUyMjk4ZjctY...
curl -i \
     -u eyJhbGciOiJIUzI1NiIsImV4cCI6MTQwMjk5MTA2MCwiaWF0IjoxNDAyOTg3NDYwfQ.eyJpZCI6Ijg3YTBlZmViLTEzNjgtNGU4Mi1hYzVkLTZiYWQ0zYzZGZiYiJ9.c9kn43-6DtQp2qHFaHpztxe6cEWwXDbBOmF4T9yQ_n4: \
     -X DELETE \
     https://mycontrol.aero/api/latest/flights/79f63228-d148-4fab-b3f3-bfbaf5dfb728

Example response:

HTTP/1.0 204 No Content
Content-Type: application/json; charset=UTF-8
Request Headers:
 
Status Codes:

Add a flight

To add a flight, make a POST request to flights.

POST api/latest/flights

Example request:

POST /api/latest/flights HTTP/1.1
Authorization: Basic NTUyMjk4ZjctY...
Content-Type: application/json

{
    "aircraft": {
        "registration": "HBPKX",
    },
    "arrival": {
        "place": {
            "name": "LSZA",
            "outside": false,
        },
        "time": "2014-05-30T17:00:00"
    },
    "departure": {
        "place": {
            "name": "LSZA",
            "outside": false,
        },
        "time": "2014-05-30T13:00:00"
    },
}
curl -i \
     -u eyJhbGciOiJIUzI1NiIsImV4cCI6MTQwMjk5MTA2MCwiaWF0IjoxNDAyOTg3NDYwfQ.eyJpZCI6Ijg3YTBlZmViLTEzNjgtNGU4Mi1hYzVkLTZiYWQ0zYzZGZiYiJ9.c9kn43-6DtQp2qHFaHpztxe6cEWwXDbBOmF4T9yQ_n4: \
     -X POST \
     -H "Content-Type:application/json" \
     -d '{"aircraft":{"registration":"HBPKX"},"arrival":{"place":{"name":"LSZA","outside":false},"time":"2014-05-30T17:00:00"},"departure":{"place":{"name":"LSZA","outside":false},"time":"2014-05-30T13:00:00"}}' \
     https://mycontrol.aero/api/latest/flights

Example response:

HTTP/1.0 201 Created
Content-Type: application/json; charset=UTF-8
Location: http://mycontrol.aero/api/latest/flights/5d62b6aa-444d-44a4-b23b-1ea0bd4a0503

{
    "aircraft": {
        "registration": "HBPKX",
        "type": "AIRPLANE"
    },
    "arrival": {
        "place": {
            "name": "LSZA",
            "outside": false,
            "position": {
                "latitude": 46.00361,
                "longitude": 8.91028
            }
        },
        "time": "2014-05-30T17:00:00"
    },
    "approaches": {
        "ifr": null
    },
    "departure": {
        "place": {
            "name": "LSZA",
            "outside": false,
            "position": {
                "latitude": 46.00361,
                "longitude": 8.91028
            }
        },
        "time": "2014-05-30T13:00:00"
    },
    "created_at": "2014-06-02T08:38:46.628643",
    "cycles": {
        "paradropping": null
    },
    "departures": {
        "hdf": null
    },
    "glider_departure_mode": null,
    "helicopter_cycles": {
        "ecs": {
            "ecs_1": null,
            "ecs_2": null,
            "ecs_3": null,
            "ecs_4": null,
            "ecs_5": null,
            "ecs_total_cycles": null,
            "ecs_total_time": null
        },
        "hcs": {
            "hcs_1": null,
            "hcs_2": null,
            "hcs_3": null
        },
        "hho": {
            "hho_1": null,
            "hho_2": null,
            "hho_3": null
        },
        "police": null
    },
    "id": "79f63228-d148-4fab-b3f3-bfbaf5dfb728",
    "landings": {
        "day": null,
        "mountain": null,
        "night": null,
        "offshore": null
    },
    "pic": "SELF",
    "remarks": "",
    "time": {
        "block_helicopter": null,
        "multi_pilot": null,
        "operation": {
            "ifr": null,
            "night": null
        },
        "pilot_function": {
            "copilot": null,
            "dual": null,
            "examiner": null,
            "instructor": null,
            "pic": 240
        },
        "single_pilot": {
            "me": 240,
            "se": 240
        },
        "total": 240
    }
    "updated_at": "2014-06-02T08:38:46.628643"
}
Request Headers:
 
JSON Parameters:
 
Response Headers:
 
Status Codes:

Modify a flight

To modify a flight, make a PUT request to flights/:id. Omit any values which should not change. Returns the changed flight.

PUT api/latest/flights/:id

Example request:

PUT /api/latest/flights/79f63228-d148-4fab-b3f3-bfbaf5dfb728 HTTP/1.1
Authorization: Basic NTUyMjk4ZjctY...
Content-Type: application/json

{
    "remarks": "What a nice flight!"
}
curl -i \
     -u eyJhbGciOiJIUzI1NiIsImV4cCI6MTQwMjk5MTA2MCwiaWF0IjoxNDAyOTg3NDYwfQ.eyJpZCI6Ijg3YTBlZmViLTEzNjgtNGU4Mi1hYzVkLTZiYWQ0zYzZGZiYiJ9.c9kn43-6DtQp2qHFaHpztxe6cEWwXDbBOmF4T9yQ_n4: \
     -X PUT \
     -H "Content-Type:application/json" \
     -d '{"remarks":"What a nice flight!"}' \
     https://mycontrol.aero/api/latest/flights/79f63228-d148-4fab-b3f3-bfbaf5dfb728

Example response:

HTTP/1.0 200 OK
Content-Type: application/json; charset=UTF-8

 {
     "aircraft": {
         "registration": "HBPKX",
         "type": "AIRPLANE"
     },
     "arrival": {
         "place": {
             "name": "LSZA",
             "outside": false,
             "position": {
                 "latitude": 46.00361,
                 "longitude": 8.91028
             }
         },
         "time": "2014-05-30T17:00:00"
     },
     "approaches": {
         "ifr": null
     },
     "departure": {
         "place": {
             "name": "LSZA",
             "outside": false,
             "position": {
                 "latitude": 46.00361,
                 "longitude": 8.91028
             }
         },
         "time": "2014-05-30T13:00:00"
     },
     "created_at": "2014-06-02T08:38:46.628643",
     "cycles": {
         "paradropping": null
     },
     "departures": {
         "hdf": null
     },
     "glider_departure_mode": null,
     "helicopter_cycles": {
         "ecs": {
             "ecs_1": null,
             "ecs_2": null,
             "ecs_3": null,
             "ecs_4": null,
             "ecs_5": null,
             "ecs_total_cycles": null,
             "ecs_total_time": null
         },
         "hcs": {
             "hcs_1": null,
             "hcs_2": null,
             "hcs_3": null
         },
         "hho": {
             "hho_1": null,
             "hho_2": null,
             "hho_3": null
         },
         "police": null
     },
     "id": "79f63228-d148-4fab-b3f3-bfbaf5dfb728",
     "landings": {
         "day": null,
         "mountain": null,
         "night": null,
         "offshore": null
     },
     "pic": "SELF",
     "remarks": "What a nice flight!",
     "time": {
         "block_helicopter": null,
         "multi_pilot": null,
         "operation": {
             "ifr": null,
             "night": null
         },
         "pilot_function": {
             "copilot": null,
             "dual": null,
             "examiner": null,
             "instructor": null,
             "pic": 240
         },
         "single_pilot": {
             "me": 240,
             "se": 240
         },
         "total": 240
     }
     "updated_at": "2014-07-02T09:29:20.785275"
 }
Request Headers:
 
JSON Parameters:
 
Response Headers:
 
Status Codes:

Common parameters for getting, adding and modifying flights

The following table defines the possible parameters. The parameters are nested and optional parameters (required parameters are marked with an asterisk) may be omitted at any level (e.g. helicopter_cycles). If a parameter is omitted, it is either not changed (in case of modify) or set to the default value (in case of add), which is normally null.

Top level

Parameter Type Description
aircraft * object Aircraft registration.
departure * object Departure time and place.
arrival * object Arrival time and place.
time object Time values.
landings object Landings.
approaches object Approaches.
departures object Departures.
pic string Name of the pilot in command.
remarks string Remarks.
cylces object Common cycles.
helicopter_cycles object Helicopter cycles. Only relevant for helicopters.
glider_departure_mode string Glider departure mode (‘W’, ‘A’, or ‘S’). Only relevant for gliders.
id string The ID of the flight. Not needed for adding or modifying.
created_at string ISO-8601 formated creation time. Not needed for adding or modifying.
updated_at string ISO-8601 formated update time. Not needed for adding or modifying.

Aircraft

An aircraft object contains a valid aircraft registration.

Parameter Type Description
registration * string A valid aircraft registration.
type string Aircraft type: AIRPLANE, HELICOPTER, GLIDER, BALLOON or MOTORGLIDER. Only informational, not needed for adding or modifying a flight.

Departure/Arrival

A departure or arrival contains a time and place.

Parameter Type Description
time * string ISO-8601 formated time.
place * object Airport or outside landing

Place

A departure or arrival place may either contains a valid airport ICAO code (name) or an outside landing specified by name, latitude and longitude.

Parameter Type Description
outside * boolean True if outside landing, false if airport.
name * string ICAO code of an airport or a descriptive title for an outside landing.
position object Latitude and longitude of the outside landing.

A position consists of a latitude and a longitude.

Parameter Type Description
latitude float Latitude
longitude float Longitude

Time

All time values are in minutes.

Parameter Type Description
single_pilot object Single pilot time. Only relevant for airplanes, helicopters, motorgliders and gliders.
multi_pilot int Multi pilot minutes. Only relevant for airplanes, helicopters, motorgliders and gliders.
operation object Operation time. Only relevant for airplanes, helicopters, motorgliders and gliders.
pilot_function object Pilot function time.
total int Manual total time. If omitted/Null, the total time is the difference between arrival and departure time (flight time).
block_helicopter int Helicopter block minutes. Only relevant helicopters.
nvg int Night vision goggle time. Only relevant helicopters.

Single pilot time

Parameter Type Description
me int Multi engine time
se int Single engine time.

Operation time

Parameter Type Description
ifr int Instrument flight time.
night int Night flight time.

Pilot function time

Parameter Type Description
copilot int Copilot flight time.
dual int Dual flight time.
examiner int Examiner flight time.
instructor int Instructor flight time.
pic int Pilot in command flight time.

Landings

Parameter Type Description
day int Landings day.
night int Landings night.
mountain int Mountain landings. Only relevant for airplanes, helicopters, motorgliders and gliders.
offshore int Offshore landings. Only relevant for helicopters.

Approaches

Parameter Type Description
ifr int IFR approaches.

Departures

Parameter Type Description
hdf int Helicopter departures in fog. Only relevant for helicopters.

Cycles

Parameter Type Description
paradropping int Paradropping cycles.

Helicopter Cycles

Parameter Type Description
ecs object ECS cycles.
police int Police cycles.
hho object HHO cycles.
hcs object HCS cycles.

ECS

Parameter Type Description
ecs_total_time int Total ECS cycle minutes (>0).
ecs_total_cycles int Total ECS cycles (>0).
ecs_1 int ECS cycle 1 (>0, <total_ecs_cycles)
ecs_2 int ECS cycle 2 (>0, <total_ecs_cycles)
ecs_3 int ECS cycle 3 (>0, <total_ecs_cycles)
ecs_4 int ECS cycle 4 (>0, <total_ecs_cycles)
ecs_5 int ECS cycle 5 (>0, <total_ecs_cycles)

HHO

Parameter Type Description
hho_1 int HHO cycle 1 (>0).
hho_2 int HHO cycle 2 (>0).
hho_3 int HHO cycle 3 (>0).

HCS

Parameter Type Description
hcs_1 int HCS cycle 1 (>0).
hcs_2 int HCS cycle 2 (>0).
hcs_3 int HCS cycle 3 (>0).