Generation
Generation endpoints — Architect (create), Sculptor (image-to-3D), Auto-fix (refine), Edit (modify), Upload.
Generate a model from a text prompt, images, or an existing mesh. All of these
endpoints return a submission_id that you track via the endpoints on
Track Progress.
Create a model
POST /api/v1/architect/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. |
project_id | string | Group the submission under a project. |
adaptive_thinking | boolean | Enable extended thinking. Slower but higher quality. Default: true. |
effort | string | Thinking effort: low, medium, or high. Only applies when adaptive_thinking is on. Default: high. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/architect/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"
}
Sculpt a model
POST /api/v1/sculptor/submit
Requires API key.
The Sculptor engine produces photorealistic, organic results from an image or text prompt. It takes a single input — either a text prompt or one reference image. Unlike Architect, the output is a dense mesh, not an editable part hierarchy.
Request Body
| Name | Type | Description |
|---|---|---|
task | string | Text description of the object to sculpt. |
image | string | Single reference image — base64 data URL or HTTPS URL. |
images | string[] | Reference image(s); the first is used. Mutually exclusive with image. |
image_model | string | For the text path, the model used to generate the reference image: gpt-image-2 (default) or nano-banana-2. |
seed | integer | RNG seed for reproducibility. 0–999,999. Default: 42. Change it for a different variation. |
project_id | string | Group the submission under a project. |
Provide either task or an image — Sculptor uses one input.
Example Request
curl -X POST https://api.thrixel.com/api/v1/sculptor/submit \
-H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
-H "Content-Type: application/json" \
-d '{"task": "a ceramic teapot"}'Example Response
{
"submission_id": "e5f6a7b8-...",
"status": "queued",
"created_at": "2026-04-20T14:33:05Z"
}
Auto-refine
POST /api/v1/autofix/submit
Requires API key.
Run an automatic refinement pass on a completed Architect or Auto-fix submission. Thrixel inspects the result and produces an improved version.
Request Body
| Name | Type | Description |
|---|---|---|
parent_submission_id | string (required) | ID of a completed Architect or Auto-fix submission. |
project_id | string | Inherit or override the parent's project. |
adaptive_thinking | boolean | Enable extended thinking for higher quality. Default: false. |
Example Request
curl -X POST https://api.thrixel.com/api/v1/autofix/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/edit/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 extended thinking for higher quality. 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/edit/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/upload/submit
Requires API key.
Bring your own GLB file into Thrixel so you can run Auto-fix, Edit, or Detailer 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/upload/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"
}