Thrixel API

Job Status

Polling, streaming, and listing submissions.

Once a submission is created, monitor its lifecycle by polling /info, streaming /stream (Server-Sent Events), or listing all your submissions.


Get submission metadata

GET /api/v1/{submission_id}/info

Public.

Returns current status, phase, input, and parent chain. Use this for simple polling.

Path Parameters

NameTypeDescription
submission_idstring (required)UUID returned by any submit endpoint.

Example Request

curl https://api.thrixel.com/api/v1/a1b2c3d4-.../info

Example Response

{
  "submission_id": "a1b2c3d4-...",
  "phase": 1,
  "status": "completed",
  "model": "thrixel+",
  "input": {
    "type": "text",
    "task": "a small stone gargoyle holding a lantern",
    "image": null,
    "images": null,
    "modification_request": null
  },
  "parent_submission_id": null,
  "nickname": null,
  "is_archived": false,
  "is_visible": true,
  "is_deleted": false,
  "is_pinned": false,
  "adaptive_thinking": false,
  "created_at": "2026-04-20T14:32:11Z",
  "completed_at": "2026-04-20T14:34:02Z"
}

Stream progress (SSE)

GET /api/v1/{submission_id}/stream

Public.

Server-Sent Events stream that emits progress updates, log messages, and status transitions in real time. Closes automatically when the submission reaches a terminal state.

Path Parameters

NameTypeDescription
submission_idstring (required)UUID returned by any submit endpoint.

Example Request

curl -N https://api.thrixel.com/api/v1/a1b2c3d4-.../stream

Event frames arrive as data: lines containing JSON. Common shapes:

// Progress update
{"type": "progress", "percent": 0.42, "message": "Generating geometry..."}
 
// Status change
{"type": "status", "status": "processing"}
 
// Terminal event — stream closes after this
{"type": "status", "status": "completed"}

List your submissions

GET /api/v1/submissions

Requires API key.

Returns all submissions owned by the authenticated API key. Filter by status, phase, or project.

Query Parameters

NameTypeDescription
statusstringFilter by status. Values: queued, processing, completed, failed.
phaseintegerFilter by phase. Values: 1, 2, 3.
project_idstringFilter by project.
include_deletedbooleanInclude soft-deleted submissions. Default: false.
limitintegerMax results. Default: 50.

Example Request

curl -H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
  "https://api.thrixel.com/api/v1/submissions?status=completed&limit=20"

Example Response

{
  "submissions": [
    {
      "submission_id": "a1b2c3d4-...",
      "phase": 1,
      "status": "completed",
      "nickname": null,
      "is_pinned": false,
      "project_id": null,
      "created_at": "2026-04-20T14:32:11Z"
    }
  ],
  "count": 1
}

On this page