Comience con Tripo API en 15 minutos y genere su primer modelo 3D.
1
Obtenga un API Key
Ir al API Keys página, cree una nueva clave y cópiela. Guárdelo de forma segura: se muestra solo una vez.
Consejo de seguridad:
Guarde su clave API en una variable de entorno (exportar TRIPO_API_KEY="sk-..."). Nunca lo codifique en el código fuente ni lo envíe a repositorios.2
Envíe su primera solicitud
Genere un modelo 3D a partir de una descripción de texto. Todas las generaciones de API son asíncronas: la respuesta devuelve un task_id inmediatamente.
-cmd">curl -X POST https://openapi.tripo3d.ai/v3/generation/text class="hl-flag">-to-model \
-H "Content-Type: application/json" \
-H "Authorization: Bearer " \
-d '{
"prompt": "a cute cat",
"model": "v3.1-20260211"}' 200Respuesta: 200 OK
{
"code": 0,
"data": {
"task_id": "task_abc123"}
}3
Consultar el resultado de la tarea
Utilice task_id para sondear hasta el estado: "éxito". Encuesta cada 2 segundos. La generación típica tarda entre 10 y 120 segundos.
-cmd">curl -X GET https://openapi.tripo3d.ai/v3/tasks/{task_id} \
-H "Authorization: Bearer " 200Respuesta: tarea completada
{
"code": 0,
"data": {
"task_id": "task_abc123",
"type": "text_to_model",
"status": "success",
"progress": 100,
"output": {
"model_url": "https://...",
"rendered_image_url": "https://..."}
}
}4
Descargar el modelo
Descargue el archivo de modelo 3D GLB desde salida.model_url en la respuesta. Puedes usarlo directamente en:
BlenderUnityUnreal EngineThree.jsBabylon.jsmodel-viewer
Nota:
Los modelos URL caducan después de 5 minutos. Descargue inmediatamente después de que la tarea se realice correctamente. Utilice salida.model_url para el archivo del modelo 3D.Flujos de trabajo avanzados
Explore los canales completos de API para casos de uso y características específicos.
Personaje listo para el juego
Genera un personaje low-poly con esqueleto y animaciones, listo para Unity/Unreal.
Secuencia de llamada
Tu aplicación
Tripo API
1POSTimage-to-model
task_id
POLLGET tasks/{task_id} → until success
2POSTrig-check
riggable: true, rig_type: "biped"
3POSTrig
New task_id for rigged model
POLLGET tasks/{task_id} → until success
4POSTretarget
task_id with animated model URLs
POLLGET tasks/{task_id} → until success
Flujo de datos API
POST
image-to-model
image-to-model
POST
rig-check
rig-check
POST
rig
rig
POST
retarget
retarget
1
POST /v3/generation/image-to-model
Entrada
Image URL or file_token
Salida
task_id
Poll GET /v3/tasks/{task_id} until status=success
2
POST /v3/animations/rig-check
Entrada
{ input: "task_abc123" }
Salida
riggable: true, rig_type: "biped"
If riggable=true, pass task_id + rig_type to rig
3
POST /v3/animations/rig
Entrada
{ input: "task_abc123", rig_type: "biped" }
Salida
New task_id for rigged model
Poll until success, pass rigged task_id to retarget
4
POST /v3/animations/retarget
Entrada
{ input: "task_rig456", animations: [...] }
Salida
task_id with animated model URLs
Download output.model_urls
Parámetros clave
| Parámetro | Valor | ¿Por qué? |
|---|---|---|
model | P1-20260311 | La mejor topología de baja poli para activos de juegos |
face_limit | 5000 | Recuento de polígonos Mobile/game-friendly |
texture | true | Fidelidad visual de los personajes. |
rig_type | biped | Esqueleto humanoide para el personaje. |
spec | mixamo | Compatible con la importación Unity/Unreal |
animations | preset:walkpreset:idlepreset:run | Conjunto de locomoción esencial. |
Tiempo estimado
~105s
Costo (Créditos)
~85
import requests, time
HEADERS = {"Authorization": "Bearer " , "Content-Type": "application/json"}
def poll(task_id):
while True:
r = requests.get(f"https://openapi.tripo3d.ai/v3/tasks/{task_id}", headers=HEADERS).json()
if r["data"]["status"] == "success": return r["data"]
if r["data"]["status"] in ("failed","cancelled"): raise Exception(r["data"])
time.sleep(2)
# Step 1 — Generate model
task_id = requests.post("https://openapi.tripo3d.ai/v3/generation/image-to-model",
headers=HEADERS, json={"file_token":"" ,"model":"P1-20260311","face_limit":5000}
).json()["data"]["task_id"]
poll(task_id)
# Step 2 — Rig check
rig_type = requests.post("https://openapi.tripo3d.ai/v3/animations/rig-check",
headers=HEADERS, json={"input": task_id}).json()["data"]["rig_type"]
# Step 3 — Rig
rig_id = requests.post("https://openapi.tripo3d.ai/v3/animations/rig",
headers=HEADERS, json={"input":task_id,"rig_type":rig_type,"spec":"mixamo"}
).json()["data"]["task_id"]
poll(rig_id)
# Step 4 — Retarget animations
anim_id = requests.post("https://openapi.tripo3d.ai/v3/animations/retarget",
headers=HEADERS, json={"input":rig_id,"animations":["preset:walk","preset:idle","preset:run"]}
).json()["data"]["task_id"]
result = poll(anim_id)
print("Animated GLBs:", result["output"]["model_urls"])Consejos para desarrolladores
- •Llame siempre a rig-check antes de rig: devuelve el rig_type recomendado y evita fallas
- •Encuesta tareas cada 2 segundos; no exceda 1 solicitud/second para evitar límites de tarifa
- •Utilice la especificación: "mixamo" para Unity/Unreal; utilice la especificación: "tripo" para tuberías personalizadas
Errores comunes
- •Si rig-check devuelve riggable=false, intente regenerar con un mensaje más limpio (evite poses complejas)
- •Retarget solo acepta el modelo manipulado task_ids; pasar una generación sin procesar task_id fallará