Generation
Generation endpoints — Phase 1 (create), Phase 2 (auto-refine), Phase 3 (edit), Phase 5 (upload).
Generate a model from a text prompt, images, or an existing mesh. All four endpoints
return a submission_id that you track via the endpoints on
Track Progress.
Create a model
POST /api/v1/phase1/submit
Requires API key.
Start a new generation from a text prompt, a reference image, or up to six images. At
least one of task, image, or images is required.
Request Body
| Name | Type | Description |
|---|---|---|
task | string | Natural-language description of the model to create. |
image | string | Single reference image — base64 data URL or HTTPS URL. |
images | string[] | Up to 6 reference images (base64 or HTTPS URLs). Mutually exclusive with image. |
model | string | LLM model override. Leave unset to use the default. |
project_id | string | Group the submission under a project. |
adaptive_thinking | boolean | Enable deeper reasoning pass. Slower but higher quality. Default: false. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/phase1/submit \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{"task": "a small stone gargoyle holding a lantern"}'Example Response
{
"submission_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "queued",
"created_at": "2026-04-20T14:32:11Z"
}
Auto-refine
POST /api/v1/phase2/submit
Requires API key.
Run a vision-critique pass on a completed Phase 1 or Phase 2 submission. The backend inspects the result and produces an improved version.
Request Body
| Name | Type | Description |
|---|---|---|
parent_submission_id | string (required) | ID of a completed Phase 1 or Phase 2 submission. |
project_id | string | Inherit or override the parent's project. |
adaptive_thinking | boolean | Enable deeper reasoning pass. Default: false. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/phase2/submit \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{"parent_submission_id": "a1b2c3d4-..."}'Example Response
{
"submission_id": "b2c3d4e5-...",
"status": "queued",
"created_at": "2026-04-20T14:35:22Z"
}
Modify a model
POST /api/v1/phase3/submit
Requires API key.
Apply a natural-language edit to an existing model. Example: "make the lantern glow blue".
Request Body
| Name | Type | Description |
|---|---|---|
parent_submission_id | string (required) | ID of the submission to modify. |
modification_request | string (required) | Description of the change to apply. |
project_id | string | Inherit or override the parent's project. |
adaptive_thinking | boolean | Enable deeper reasoning pass. Default: false. |
focus_on_node_names | string[] | Part names from the parent mesh to scope the edit to. Every part outside the list is held bit-identical. Empty/omitted = whole-mesh edit. Get part names from /api/v1/{submission_id}/hierarchy. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/phase3/submit \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{
"parent_submission_id": "a1b2c3d4-...",
"modification_request": "make the lantern glow blue"
}'Example Response
{
"submission_id": "c3d4e5f6-...",
"status": "queued",
"created_at": "2026-04-20T14:38:01Z"
}
Upload an existing model
POST /api/v1/phase5/submit
Requires API key.
Bring your own GLB file into Thrixel so you can run Phase 2, 3, or 4 operations on it. Multipart form upload, max 100 MB.
Request Body
| Name | Type | Description |
|---|---|---|
glb_file | file (required) | Binary .glb file (Content-Type: multipart/form-data). |
task | string | Optional label describing the uploaded model. Max 2000 chars. |
project_id | string | Assign to a project. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/phase5/submit \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-F "glb_file=@./my_model.glb" \
-F "task=hand-sculpted base mesh"Example Response
{
"submission_id": "d4e5f6a7-...",
"status": "completed",
"original_filename": "my_model.glb",
"file_size_bytes": 4528192,
"created_at": "2026-04-20T14:40:15Z"
}