API version 1.2
The Logger Deep Link API enables third-party applications to import flight data into Logger using deep links formatted with URL schemes and JSON payloads. This API is designed for seamless integration, enabling the addition of comprehensive flight details with minimal user interaction. This document outlines the structure, requirements, and usage of these deep links.
for support contact support@getlogger.com
The deep link for importing flight data into Logger follows this format:
loggerapp://import/add?package=<JSON_DATA>
Here, <JSON_DATA>
represents the URL-encoded JSON string containing the flight data entries and metadata. Note: The same deep link structure is also used when updating previously imported entries (more info in importId section).
The JSON data sent through the deep link should be structured as follows:
Top-Level Structure
{
"entries": [/*Array of Entry Objects*/],
"metadata": {
"appName": "String",
"appVersion": "String",
"isUTC": Boolean
}
}
Metadata object needs to be provided together with valid (non-nil) values in order to parse the JSON.
The metadata
object contains:
appName
: The name of the application sending the data.appVersion
: The version of the application sending the data.isUTC
: A boolean indicating whether the time values and dates are in UTC.
Example:
"metadata": {
"appName": "My App",
"appVersion": "1.2.1",
"isUTC": true
}
Each entry in the entries
array should follow this structure:
"entries":[{
"importId": "String",
"entryType": "String",
"departureDate": "YYYY-MM-DD"
// Other properties as decribed in documentation below
},
{
"importId": "String",
"entryType": "String",
"departureDate": "YYYY-MM-DD"
// Other properties as decribed in documentation below
}]
As a minimum importId
, entryType
and departureDate
need to be provided. Other properties are optional.
- These properties with valid values need to be provided in order to parse the JSON
- Provide unique non-empty string to each entry.
- In order to update previously imported entry, import new entry with matching
importId
- “Flight”
- “Dead Head”
- "Other Duty"
- “Simulator”
- “Airport Reserve”
- “Home Reserve”
- “Home Standby”
- “Airport Standby”
- The date of departure (yyyy-MM-dd format), e.g. 2024-01-22
- If metadata
isUTC
is set totrue
, provide the date for UTC time zone - If metadata
isUTC
is set tofalse
, provide the date for departure time zone
- These properties contain departure and arrival times in HHmm or HH:mm format
- If metadata
isUTC
is set totrue
, provide times in UTC - If metadata
isUTC
is set tofalse
, provide local times
- Actual departure time (off block)
- Actual arrival time (on block)
- Actual take-off time
- Actual landing time
- The start time of duty
- The end time of duty
- The scheduled time of departure
- The scheduled time of arrival
- IATA three-letter code for departure airport, or
- ICAO four-letter code for the departure airport (e.g. JFK or KJFK)
- IATA three-letter code for arrival airport, or
- ICAO four-letter code for the arrival airport (e.g. JFK or KJFK)
- The type of aircraft used
- As standard practice, provide ICAO four-letter code (e.g. B738, PA28)
- The registration number of the aircraft (tail number)
- The name of the Pilot in Command (PIC).
- The name of the Second in Command (SIC).
- The name of the Flight Engineer.
- The name of the Examiner.
- The name of the Instructor.
- The name of the 1st Observer.
- The name of the 2nd Observer.
- The name of the 1st Relief Pilot.
- The name of the 1st Relief Pilot.
- The name of the Student Pilot.
- The name of the 2nd Student Pilot.
- The name of the Second Officer.
- A boolean indicating if the entry corresponds to the pilot flying the aircraft.
- The license number of the license holder.
- The name of the license holder.
- These properties contain time interval information in HH:mm or H:mm format
- The time logged as Pilot in Command
- The time flown under Instrument Flight Rules (IFR)
- The time flown in Instrument Flight Conditions (IMC)
- The time flown over cross-country flights
- The time logged in multi-crew operations
- The time flown in single-engine aircraft
- The time flown in multi-engine aircraft
- The time logged as an instructor
- The time logged in dual received (student pilot)
- The time logged as Second in Command
- The time flown in a glider
- The time spent in a simulator
- The time spent as simulator instructor (TRI/SFI)
- The time spent as simulator examiner / checker (TRE/SFE)
- The time spent as line training instructor (LTI/LTC)
- The time spent as line check captain / check airman (LCC)
- The time spent in a PC-based aviation training device
- The time flown in a rotorcraft
- The time spent under simulated instrument conditions
- The time flown using night vision goggles.
- The number of landings during daylight.
- The number of landings at night.
- The number of takeoffs during daylight.
- The number of takeoffs at night.
- The number of missed carrier landings.
- The number of carrier takeoffs.
- The number of successful carrier landings.
- The total number of carrier landings.
- The number of takeoffs from water.
- The number of landings on water.
- The distance flown during the flight, in nautical miles (NM)
- The amount of fuel burned during the flight, in kgs, litres or gallons.
- The Hobbs meter reading at the start of the flight.
- The Hobbs meter reading at the end of the flight.
- The tachometer reading at the start of the flight.
- The tachometer reading at the end of the flight.
- The number of approaches performed during the flight.
- The number of holding patterns.
- The type of approach performed
- Allowed values:
- "ILS CAT I"
- "ILS CAT II"
- "ILS CAT III"
- "LOC"
- "VOR"
- "NDB"
- "RNP"
- "GLS"
- "SLS"
- "MLS"
- "PAR"
- "SRA"
- "Visual"
- "Circling"
- "Monitored"
- The flight rules under which the flight was conducted, e.g., "VFR" (Visual Flight Rules) or "IFR" (Instrument Flight Rules).
- Any additional remarks or notes about the flight.
- A boolean indicating whether the flight is marked as a favorite.
- When
true
the entered flight will be favorite in Logger
- A boolean indicating whether the flight entry is locked for editing.
- When
true
the entered flight will be imported as locked for editing in Logger
Example of multiple flights with minimum required Data with times and dates in local time zone:
loggerapp://import/add?package={
"entries": [
{
"importId": "86bff049-d825-4664-9741-5a39475c575a",
"entryType": "Flight",
"departureDate": "2024-01-01"
},
{
"importId": "139e1797-c9a2-4de2-a0da-13b870b567f6",
"entryType": "Flight",
"departureDate": "2024-01-02"
},
{
"importId": "0c6842b1-f4c0-4f58-a25a-69433b44bb8c",
"entryType": "Flight",
"departureDate": "2024-01-25"
}
],
"metadata": {
"appName": "Your Third Party App",
"appVersion": "1.0.0",
"isUTC": false
}
}
Example of updating first flight from previous example:
loggerapp://import/add?package={
"entries": [
{
//Same importId is used to invoke the update instead of new import
"importId": "86bff049-d825-4664-9741-5a39475c575a",
"entryType": "Simulator",
"departureDate": "2024-01-01"
}
],
"metadata": {
"appName": "Your Third Party App",
"appVersion": "1.0.0",
"isUTC": false
}
}
Example of single flight with optional data and times and dates in UTC
loggerapp://import/add?package={
"entries": [
{
"importId": "86bff049-d825-4664-9741-5a39475c575a",
"entryType": "Flight",
"departureDate": "2024-01-01",
"departureTime": "0200",
"takeOffTime": "08:00",
"landingTime": "10:00",
"arrivalTime": "1200",
"departureAirport": "SYD",
"arrivalAirport": "LAX",
"numberOfDayLandings": 1,
"numberOfNightLandings": 0,
"aircraftType": "A320",
"aircraftRegistration": "N123AB",
"picName": "John Doe",
"sicName": "Jane Doe",
"remark": "Smooth flight",
"pilotFlying": true,
"picTime": "2:00",
"ifrTime": "02:00",
"nightTime": "02:00",
"instructorTime": "02:10",
"dualTime": "01:10",
"sicTime": "01:00",
"approachType": "ILS CAT I",
"flightRules": "IFR",
"crossCountryTime": "02:00",
"numberOfDayTakeOffs": 1,
"numberOfNightTakeOffs": 0
}
],
"metadata": {
"appName": "Your Third Party App",
"appVersion": "1.0.0",
"isUTC": false
}
}