aisplice

API reference

3D models

Models on this endpoint (1)

Try it in the Workbench
POST/v1/model3d/tasks
GET/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

  • modelstringrequired

    A 3D model ID from the catalogue, e.g. tripo-3d.

  • operationstringrequired

    text_to_model · image_to_model · multiview_to_model · texture · smart_segment · retopology · rig · animate.

  • promptstringoptional

    What to make. Used by text_to_model.

  • inputstringoptional

    A 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[]optional

    multiview_to_model: [{"front": url}, {"left": url}, …] — a front view plus at least one more.

  • texturebooleanoptional

    Generate textures with the model.

  • pbrbooleanoptional

    Generate PBR materials.

  • texture_promptobjectoptional

    texture: {"text": "weathered bronze"} describes the new surface.

  • face_limitintegeroptional

    retopology: the most faces the result may have.

  • quadbooleanoptional

    retopology: quad mesh instead of triangles.

  • animationstringoptional

    animate: 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.

Full error-code table →

#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

response.json
// 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.