Thrixel API

Download

Unified download endpoint and async format conversion.

GLB is produced when a submission completes. Other formats are converted on-demand: either inline via the unified /download endpoint (which waits for the result), or asynchronously via the /convert job API.


Download a submission asset

GET /api/v1/{submission_id}/download

Public.

Unified endpoint for all downloadable artifacts. GLB is always ready; FBX/OBJ/STL/USDZ trigger an on-demand conversion if not yet cached.

Path Parameters

NameTypeDescription
submission_idstring (required)UUID of the submission.

Query Parameters

NameTypeDescription
formatstringAsset format. Values: glb, fbx, obj, stl, usdz, py, thumbnail, reference_image. Default: glb.
indexintegerIndex for reference_image format (0–5). Default: 0.

Example Request

# GLB (instant)
curl -L -o model.glb \
  "https://api.thrixel.com/api/v1/a1b2c3d4-.../download?format=glb"
 
# FBX (triggers conversion, may take a few seconds)
curl -L -o model.fbx \
  "https://api.thrixel.com/api/v1/a1b2c3d4-.../download?format=fbx"

Queue a conversion job

POST /api/v1/convert

Public.

Async alternative to /download for non-GLB formats. Returns immediately with a job_id to poll. Re-requesting the same (submission, format) returns the existing ready job unless force=true.

Request Body

NameTypeDescription
submission_idstring (required)UUID of the submission to convert.
formatstring (required)Target format. Values: fbx, obj, stl, usdz.
forcebooleanRe-run the conversion even if a ready job exists. Default: false.

Example Request

curl -X POST https://api.thrixel.com/api/v1/convert \
  -H "Content-Type: application/json" \
  -d '{"submission_id": "a1b2c3d4-...", "format": "usdz"}'

Example Response

{
  "job_id": "f7a8b9c0-...",
  "submission_id": "a1b2c3d4-...",
  "format": "usdz",
  "status": "queued",
  "error": null,
  "download_url": null,
  "status_url": "https://api.thrixel.com/api/v1/convert/f7a8b9c0-..."
}

Check conversion status

GET /api/v1/convert/{job_id}

Public.

Returns the current status of a conversion job. Poll until status becomes ready or failed.

Path Parameters

NameTypeDescription
job_idstring (required)UUID returned by POST /convert.

Example Request

curl https://api.thrixel.com/api/v1/convert/f7a8b9c0-...

Example Response

{
  "job_id": "f7a8b9c0-...",
  "submission_id": "a1b2c3d4-...",
  "format": "usdz",
  "status": "ready",
  "error": null,
  "download_url": "https://api.thrixel.com/api/v1/convert/f7a8b9c0-.../download",
  "status_url": "https://api.thrixel.com/api/v1/convert/f7a8b9c0-..."
}

Download a converted file

GET /api/v1/convert/{job_id}/download

Public.

Returns the converted file once ready. 409 if still queued/running, 410 if the job failed.

Path Parameters

NameTypeDescription
job_idstring (required)UUID of a ready conversion job.

Example Request

curl -L -o model.usdz \
  https://api.thrixel.com/api/v1/convert/f7a8b9c0-.../download

On this page