XCTSK file format
XCTSK is a file format for navigation tasks used by XCTrack and other free-flight software. A task is currently either a competition task or a simple sequence of turnpoints; additional task types may be added in the future. See the specification for full details.
This page validates the uploaded data and rejects it if it does not conform to the specification. Unknown fields are stripped from the uploaded file but do not cause validation to fail. If you need to add your own data, please use the extension mechanism defined in the specification rather than inventing custom fields.
The MIME type is application/xctsk, but this REST API accepts both application/json and application/xctsk.
REST API endpoints
POST an .xctsk file to /api/xctsk/qr with Content-Type: application/json to receive the QR code as an SVG image.
POST an .xctsk file to /api/xctsk/qr2z with Content-Type: application/json to receive the QR code as an SVG image (version 2Z – a zlib-compressed V2 payload).
POST an .xctsk file to /api/xctsk/save with Content-Type: application/json to store the task. The response contains a short task code and a task hash. You may add an 'Author' header to record who uploaded the task (ASCII characters only). The task code is valid for one month; the task hash is permanent. Either one can be used to retrieve the task.
The response has the form: {"taskCode": "baba", "taskHash": "aabbccddeeff0011"}
GET /api/xctsk/load/<task code> to download the task stored under the given code. The Last-Modified and Author response headers indicate when the task was uploaded and by whom. The response also includes a Task-Hash header and, if a valid task code still exists, a Task-Code header; this lets you recover the task code from a task hash. Once the task code has expired, the Task-Code header is omitted. Uploading the same task again SHOULD yield the same task hash and will allocate a new task code. In rare cases (for example, after changes to our software) the task hash may differ; we try to keep such changes to a minimum.
GET /api/xctsk/loadV2/<task code> to download the task stored under the given code in version 2 format (the same encoding used by the QR code).
GET /api/xctsk/image/<task code> to download a static JPEG preview image of the task.