Inizia con Tripo API in 15 minuti e genera il tuo primo modello 3D.
1
Ottieni uno API Key
Vai a API Keys pagina, creare una nuova chiave e copiarla. Conservalo in modo sicuro: verrà visualizzato solo una volta.
Suggerimento per la sicurezza:
Memorizza la tua chiave API in una variabile di ambiente (esporta TRIPO_API_KEY="sk-..."). Non codificarlo mai nel codice sorgente né impegnarlo nei repository.2
Invia la tua prima richiesta
Genera un modello 3D da una descrizione testuale. Tutte le generazioni API sono asincrone: la risposta restituisce immediatamente task_id.
-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"}' 200Risposta: 200 OK
{
"code": 0,
"data": {
"task_id": "task_abc123"}
}3
Interrogare il risultato dell'attività
Utilizzare task_id per eseguire il poll fino allo stato: "successo". Sondaggio ogni 2 secondi. La generazione tipica richiede 10-120 secondi.
-cmd">curl -X GET https://openapi.tripo3d.ai/v3/tasks/{task_id} \
-H "Authorization: Bearer " 200Risposta: attività completata
{
"code": 0,
"data": {
"task_id": "task_abc123",
"type": "text_to_model",
"status": "success",
"progress": 100,
"output": {
"model_url": "https://...",
"rendered_image_url": "https://..."}
}
}4
Scarica il modello
Scarica il file del modello 3D GLB da output.model_url nella risposta. Puoi usarlo direttamente in:
BlenderUnityUnreal EngineThree.jsBabylon.jsmodel-viewer
Nota:
I modelli URL scadono dopo 5 minuti. Scaricalo immediatamente dopo che l'attività ha avuto esito positivo. Utilizzare output.model_url per il file del modello 3D.Flussi di lavoro avanzati
Esplora le pipeline API complete per casi d'uso e funzionalità specifici.
Personaggio pronto per il gioco
Genera un personaggio low-poly con scheletro e animazioni, pronto per Unity/Unreal.
Sequenza di chiamata
La tua applicazione
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
API Flusso di dati
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
Ingresso
Image URL or file_token
Uscita
task_id
Poll GET /v3/tasks/{task_id} until status=success
2
POST /v3/animations/rig-check
Ingresso
{ input: "task_abc123" }
Uscita
riggable: true, rig_type: "biped"
If riggable=true, pass task_id + rig_type to rig
3
POST /v3/animations/rig
Ingresso
{ input: "task_abc123", rig_type: "biped" }
Uscita
New task_id for rigged model
Poll until success, pass rigged task_id to retarget
4
POST /v3/animations/retarget
Ingresso
{ input: "task_rig456", animations: [...] }
Uscita
task_id with animated model URLs
Download output.model_urls
Parametri chiave
| Parametro | Valore | Perché |
|---|---|---|
model | P1-20260311 | La migliore topologia low-poly per le risorse di gioco |
face_limit | 5000 | Conteggio poligoni Mobile/game-friendly |
texture | true | Fedeltà visiva per i personaggi |
rig_type | biped | Scheletro umanoide per personaggio |
spec | mixamo | Compatibile con l'importazione di Unity/Unreal |
animations | preset:walkpreset:idlepreset:run | Set di locomozione essenziale |
Tempo stimato
~105s
Costo (Crediti)
~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"])Suggerimenti per gli sviluppatori
- •Chiama sempre rig-check prima del rig: restituisce lo rig_type consigliato e previene i guasti
- •Sondaggio delle attività ogni 2 secondi; non superare 1 richiesta/second per evitare limiti di velocità
- •Usa le specifiche: "mixamo" per Unity/Unreal; utilizzare spec: "tripo" per pipeline personalizzate
Insidie comuni
- •Se rig-check restituisce riggable=false, prova a rigenerare con un prompt più pulito (evita pose complesse)
- •Retarget accetta solo il modello truccato task_ids: il passaggio di una generazione grezza task_id fallirà