Scorsync SCORSYNC

Partner API: Flight state

GET /api/partner/v1/flights/{flight}/state returns {data: {flight_id, status, source, stations, as_of}}. It requires results:read; meet visibility and key meet locks apply.

Live pointer versus derived

Each station has its own source. The flight’s source is live_pointer when any station is live, otherwise derived.

live_pointer uses the scoring desk’s active panel selection at meets scored with Scorsync Local. now is the athlete and routine the panel is on, and up_next is the next three unscored slots after it in pass-first order (an athlete skipped earlier is not repeated). A pointer stays live for 20 minutes after Scorsync receives it, extended by each score of that athlete. It falls back to derived when it goes stale, when a later slot is scored after it, when the athlete is scratched, or when the panel is released. Synchro panels do not publish a pointer, so synchro stations are always derived.

derived infers progress from posted routine scores. now is the first unscored slot and may mean “next”; it does not confirm that an athlete is on the apparatus. Out-of-order scoring, re-scores and missing DNS/DNF information can make it differ from the floor.

Pass-first order

Unscratched entries are grouped by round and station_label. Each group becomes a stations[] item with station_key equal to that label (possibly null). Entries are ordered by order, then station_position, then ID. Prelims and finals are derived separately, even when they share a station label.

The walk is pass-first: A1, B1, C1, A2, B2, C2. Each athlete’s level, event and round determine its pass count; athletes with fewer passes are skipped in later passes. A slot is done when its routine score exists for the entry, event, round and routine number. Scratched entries are excluded; a withdrawn score makes its slot pending again.

Station fields

FieldMeaning
sourcelive_pointer or derived for this station.
nowThe slot on the apparatus (live pointer) or the first undone slot (derived): start_list_id, competition-tier athlete, athlete_2, routine_num and round. Synchro includes the second athlete in athlete_2; individual events use null. Null when no slot remains.
up_nextNext three pending slots at most (after the pointer when live), each with start_list_id and routine_num. Empty when none remain.
last_postedMost recently updated surviving routine in the group: start_list_id, routine_num, score (three-place decimal string or null), posted_at. Null before a score exists.

Flight status

scheduled: no slots have scores, including an empty flight (stations: []). in_progress: some slots are scored and some remain, or a live pointer is on an athlete. completed: a non-empty flight has no pending slots. as_of is the UTC derivation timestamp.

Poll the endpoint or consume flight.state changes as described in Live data. The event’s payload contains this state object without the REST data wrapper.

Attribution (required)

Display “Powered by Scorsync”, visible and legible wherever Scorsync data is shown. For overlays, keep it on screen while data is shown. Link to https://scorsync.com where the medium allows.