Where to configure
In your Skyvex admin: Airlines → <your airline> → Plugins → Flight Tracking → Additional Fields. Tick any combination of phase cells and Submission per field. The selection is stored on the airline and applies to every pilot the next time they (re)start a flight — the Stratos client pulls the config at the start of each flight.What every report always carries
Two sets of fields are sent unconditionally, regardless of what you tick.Position update — the always-on keys
Every position update POSTed to your backend’s/flights/update opens with these twelve keys, in this order, before any optional fields are appended:
The opt-in
miles_to_go field carries the same value as distance_remaining,
which is already always present — so there is no need to enable miles_to_go
separately.Completion PIREP — the always-on keys
The completion POST to/flights/complete always includes these thirteen keys, before any Submission-ticked fields are merged on top:
landing_rate, fuel_used and simulator_version are always included here
with their authoritative completion values, so Submission is disabled for
them in the matrix — ticking it would only override the authoritative value
with the live one, so there is nothing to add.How optional fields are delivered
Every optional field is one of two kinds. This determines what your backend receives and when:- Live — read from the simulator on every tick and sent at its current value. If the sim can’t supply it, the raw default is sent:
0for numbers,falsefor booleans,""for strings. Live fields are never blank. - Milestone — captured once when the flight passes a milestone (block-off, takeoff, touchdown, block-on) and stored in the PIREP snapshot. A milestone field appended to a position update before its capture milestone is sent as
null; the same applies to a Submission-ticked milestone field whose milestone never fired.
Optional live fields
Grouped as they appear in the admin matrix. The Key column is the exact key your VA backend sees in the JSON payload.Position & Navigation
Orientation
Flight Controls
Engine Data
engines_count reports how many engines the current aircraft has — use it to ignore engine3_* / engine4_* on twins. Per-engine fields exist for all four slots; on X-Plane the unused slots are masked to 0 / false.
For each engine there are two “running” signals: engineN_firing is the raw combustion flag (it can flicker on some MSFS 2024 aircraft), while engineN_on is a debounced, composite running flag that is more stable. Prefer engineN_on for “is the engine running”.
Fuel
Weather
Simulation Time
The simulator’s in-world clock, for logging what time it is in the sim rather than in the real world.Aircraft Information
Simulator State
Warnings
Landing Analysis
These live fields are easy to misread — most are not the held touchdown values their names suggest. For authoritative touchdown figures, use the milestonelanding_* fields below or the completion landing_report.
Navigation
Optional milestone fields
Captured once at a flight milestone and held for the rest of the flight. Sent asnull until their milestone passes. Group order matches the admin matrix.
Departure
Captured at block-off (first movement / pushback).Takeoff
Captured at the takeoff trigger (airborne, post-debounce).Landing
Captured at touchdown, from the landing analyser.Arrival
Captured at touchdown or block-on (final stop before shutdown).Summary
Captured at completion.The phase fields
There are two distinct phase concepts.-
The always-on top-level
phaseon every position update. It is the UPPERCASE API phase:BOARDING,PUSH_BACK,TAXI,TAKE_OFF,REJECTED_TAKE_OFF,CLIMB,CRUISE,DESCENT,APPROACH,FINAL,LANDED,GO_AROUND,TAXI_TO_GATE(bothTAXI_INandARRIVEDcollapse to this),DEBOARDING, orUNKNOWN. While the sim is paused it reportsPAUSED. This is the onlyphasekey on the wire and it is sent on every update, so there is no separate opt-in phase field to enable. -
The 15 matrix phase columns, which decide when each field is sent. Their keys are uppercase and keep
TAXI_INandARRIVEDseparate:BOARDING,PUSH_BACK,TAXI,TAKE_OFF,REJECTED_TAKE_OFF,CLIMB,CRUISE,DESCENT,APPROACH,FINAL,LANDED,GO_AROUND,TAXI_IN,ARRIVED,DEBOARDING.UNKNOWNis never a column, andPAUSEDis never a column.
phase reads PAUSED. For the full phase model and the conditions that move a flight between phases, see Flight Phases.
Payload shape
On each tick, the fields whose phase set includes the current phase are appended after the twelve always-on keys. A representative position update duringcruise, with a few cruise-phase fields enabled, looks like:
/flights/complete body.
Rules worth knowing
- A field is appended on a tick only when the live phase is one you ticked for it.
- Live fields are read from the sim every tick; when the sim can’t supply a value the raw default rides along (
0,false, or"") — live fields are never blank. - Milestone fields are
nulluntil their capture milestone passes; the same applies to a Submission-ticked milestone field whose milestone never fired. block_fuelandzfwon the completion PIREP are omitted entirely (not0) when never captured.- A few live fields are aliases or derived rather than direct telemetry —
flaps_left_position/flaps_right_position(aliased toflaps_control) andcruise_altitude(current altitude rounded). The table notes call each one out. - Anything you turn on later starts appearing from the next flight onwards.
Field availability by simulator
Not every simulator populates every field. The general picture:- MSFS 2020 / 2024 / FSX / P3D (SimConnect): populate the broadest set, including all engine slots,
engineN_pct_rpm,slew_mode, and native latchedtouchdown_*live fields. - X-Plane 11 / 12 (UDP DataRef): populate the same core telemetry, but a few fields are unavailable and report their defaults —
engineN_pct_rpmis0,slew_modeisfalse,landing_rateis0in the air (it holds the canonical touchdown rate after touchdown), the zulu date aliases to the local date, andaltimeter_settingsduplicatespressure_qnh. - Touchdown / departure position (
touchdown_latitude/touchdown_longitude,departure_latitude/departure_longitude) is captured on every sim — including X-Plane — so a VA can derive the arrival and departure runways server-side where the client can’t match one. - Facility-derived milestone fields (
departure_runway,arrival_runway, the gate and runway-deviation fields) are matched client-side and are MSFS only —nullon X-Plane; use the touchdown / departure coordinates above to derive them server-side.aircraft_liveryis populated on MSFS 2024 and X-Plane but empty on MSFS 2020 / FSX / P3D.
0, false, or "" for live fields, null for uncaptured milestone fields). It won’t fabricate values.