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
| Name | Type | Description |
|---|---|---|
submission_id | string (required) | UUID returned by any submit endpoint. |
Example Request
curl https://api.thrixel.com/api/v1/a1b2c3d4-.../infoExample 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
| Name | Type | Description |
|---|---|---|
submission_id | string (required) | UUID returned by any submit endpoint. |
Example Request
curl -N https://api.thrixel.com/api/v1/a1b2c3d4-.../streamEvent 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
| Name | Type | Description |
|---|---|---|
status | string | Filter by status. Values: queued, processing, completed, failed. |
phase | integer | Filter by phase. Values: 1, 2, 3. |
project_id | string | Filter by project. |
include_deleted | boolean | Include soft-deleted submissions. Default: false. |
limit | integer | Max 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
}