API reference
3D models
Models on this endpoint (1)
/v1/model3d/tasks/v1/model3d/tasks/{task_id}Async 3D generation and post-processing. One field, operation, chooses what the task does: make a model from text, an image or several views, then texture, segment, retopologise or rig it. Submit returns a task_id; poll it until the model URL arrives in the task body.
#Request parameters
modelstringrequiredA 3D model ID from the catalogue, e.g. tripo-3d.
operationstringrequiredtext_to_model · image_to_model · multiview_to_model · texture · smart_segment · retopology · rig · animate.
promptstringoptionalWhat to make. Used by text_to_model.
inputstringoptionalA public image URL for image_to_model, or the task_id of a finished 3D model for texture, smart_segment, retopology, rig and animate.
inputsobject[]optionalmultiview_to_model: [{"front": url}, {"left": url}, …] — a front view plus at least one more.
texturebooleanoptionalGenerate textures with the model.
pbrbooleanoptionalGenerate PBR materials.
texture_promptobjectoptionaltexture: {"text": "weathered bronze"} describes the new surface.
face_limitintegeroptionalretopology: the most faces the result may have.
quadbooleanoptionalretopology: quad mesh instead of triangles.
animationstringoptionalanimate: the animation to apply to a rigged model.
#Related errors
- 404 not_foundUnknown task_id, or the input task of a follow-up step does not exist or is not finished.
- 401Invalid or missing bearer token. No error.code on this path — match the status.
- 402 insufficient_user_quotaWallet balance cannot cover the pre-reserved estimate.
- 429Per-key throttle. Empty body; wait for Retry-After. A 429 that does carry insufficient_user_quota is a daily spend cap instead.
- 503 model_not_foundUnknown model, or no healthy channel serves it right now.
#Request example
# 1. make a model from text
curl https://www.aisplice.store/v1/model3d/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "tripo-3d", "operation": "text_to_model", "prompt": "A small ceramic fox", "texture": true}'
# 2. poll until status is completed; the file is in url
curl https://www.aisplice.store/v1/model3d/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# 3. texture it: pass the finished task_id as input
curl https://www.aisplice.store/v1/model3d/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "tripo-3d", "operation": "texture", "input": "'$TASK_ID'", "texture_prompt": {"text": "weathered bronze"}}'#Response
// POST /v1/model3d/tasks
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/model3d/tasks/{task_id} — after completion
{"task_id": "task_xxx", "status": "completed", "url": "https://…/model.glb", "output": {"model_url": "https://…/model.glb"}}Still stuck?
Send us the request ID or the error message and we will look into it.