Skip to content
Updraft Docs
Türkçe

Replay · API reference

Public replay data of a shared flight.

GET /v1/replay/{public_id}

Public replay of a shared flight

Fixes and thermal events of a flight its pilot shared. Masked and unusable fixes are left out (a masked stretch splits the track); times are relative; at most max_points points. Unknown, revoked and deleted shares are the same 404.

Authentication: X-Api-Key header; required scope: scope table.

Parameters

NameInTypeDescription
public_id requiredpathstringpublic_id of the share (the link)
max_pointsqueryintegerThinning limit
100 ≤ x ≤ 5000 · default 5000

Responses

StatusDescriptionContent
200Public replay; ETag and Cache-Control: public headersapplication/json → PublicReplay
304If-None-Match matched the current ETag; no body
401code: auth_missing, auth_invalid, auth_revokedapplication/json → ErrorBody
403code: auth_scopeapplication/json → ErrorBody
404code: replay_not_found, replay_not_readyapplication/json → ErrorBody
422code: request_invalidapplication/json → ErrorBody
429code: rate_limited, quota_exceeded (Retry-After seconds)
Headers: Retry-After — Seconds until the exhausted window resets
application/json → ErrorBody

POST /v1/replay/{public_id}/video

Ask for the MP4 video of a shared flight

Queues a video of the shared flight (the same public replay as the Atlas page) in the asked format and length, or returns the one already queued, rendering or ready. Made once per share, format and length; after a failure, asking again queues it again. On the server without a graphics card a 15 s video (the default) is ready in about 3.5 minutes, a 30 s one in about 7: show the pilot that it is being prepared and poll status_path.

Authentication: X-Api-Key header; required scope: scope table.

Parameters

NameInTypeDescription
public_id requiredpathstringpublic_id of the share (the link)

Request body

application/json → VideoRequest

Responses

StatusDescriptionContent
200The video is ready (url set)application/json → VideoInfo
202Queued or rendering; poll status_pathapplication/json → VideoInfo
401code: auth_missing, auth_invalid, auth_revokedapplication/json → ErrorBody
403code: auth_scopeapplication/json → ErrorBody
404code: replay_not_found, replay_not_readyapplication/json → ErrorBody
422code: request_invalidapplication/json → ErrorBody
429code: rate_limited, quota_exceeded (Retry-After seconds)
Headers: Retry-After — Seconds until the exhausted window resets
application/json → ErrorBody
503code: queue_unavailable, video_download_unavailableapplication/json → ErrorBody

GET /v1/replay/{public_id}/video/{video_format}

State of a video, with a download URL when ready

Authentication: X-Api-Key header; required scope: scope table.

Parameters

NameInTypeDescription
public_id requiredpathstringpublic_id of the share (the link)
video_format requiredpathVideoFormat16x9 (1920x1080) or 9x16 (1080x1920)
length_squeryVideoLengthLongest video, seconds, as asked for with POST: 15 (default) or 30
default 15

Responses

StatusDescriptionContent
200queued, rendering, ready (with url) or failedapplication/json → VideoInfo
401code: auth_missing, auth_invalid, auth_revokedapplication/json → ErrorBody
403code: auth_scopeapplication/json → ErrorBody
404code: replay_not_found, replay_not_ready, video_not_foundapplication/json → ErrorBody
422code: request_invalidapplication/json → ErrorBody
429code: rate_limited, quota_exceeded (Retry-After seconds)
Headers: Retry-After — Seconds until the exhausted window resets
application/json → ErrorBody
503code: queue_unavailable, video_download_unavailableapplication/json → ErrorBody

GET /v1/replay/{public_id}/video/{video_format}/file

Download a video through a signed URL (no API key)

Authentication: No key needed.

Parameters

NameInTypeDescription
public_id requiredpathstringpublic_id of the share (the link)
video_format requiredpathVideoFormat16x9 (1920x1080) or 9x16 (1080x1920)
expires requiredqueryintegerUnix seconds, from the signed URL
signature requiredquerystringFrom the signed URL
0–64 chars
length_squeryVideoLengthLongest video, seconds, as asked for with POST: 15 (default) or 30
default 15

Responses

StatusDescriptionContent
200The MP4 (Range requests answer 206 on a folder store)video/mp4 → string (binary)
403code: video_url_invalid, video_url_expiredapplication/json → ErrorBody
404code: replay_not_found, video_not_foundapplication/json → ErrorBody
422code: request_invalidapplication/json → ErrorBody
503code: video_download_unavailableapplication/json → ErrorBody