Interrogez cet endpoint pour vérifier le statut de votre tâche de génération de modèle 3D.
Si la réponse de création contient poll_url, privilégiez cette URL exacte pour le polling. id et task_id doivent être traités comme le même identifiant de tâche asynchrone. Si la tâche n’existe plus ou n’est plus disponible dans l’enregistrement public de tâche, TokenLab renvoie async_task_not_found avec le message Task not found or no longer available.
Paramètres de chemin
L’ID de la tâche de génération 3D.
Réponse
Alias de l’identifiant de tâche asynchrone lorsqu’il est disponible.
Statut de la tâche : pending, processing, completed ou failed.
Valeur de progression facultative. Renvoyée uniquement lorsqu’une progression réelle est disponible ; utilisez status pour déterminer la fin de la tâche.
URL pour télécharger le fichier du modèle 3D (une fois terminé).
URL pour télécharger le modèle au format GLB (si disponible).
URL pour télécharger le modèle au format FBX (si disponible).
Message d’erreur (en cas d’échec).
cURL
Python
JavaScript
Go
PHP
curl "https://api.tokenlab.sh/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
-H "Authorization: Bearer sk-your-api-key"
import requests
import time
task_id = "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
while True :
response = requests.get(
f "https://api.tokenlab.sh/v1/tasks/ { task_id } " ,
headers = { "Authorization" : "Bearer sk-your-api-key" }
)
result = response.json()
if result[ "status" ] == "completed" :
print ( f "3D Model URL: { result[ 'model_url' ] } " )
break
elif result[ "status" ] == "failed" :
print ( f "Error: { result[ 'error' ] } " )
break
time.sleep( 5 ) # Poll every 5 seconds
const taskId = 'ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ;
async function pollFor3DModel () {
while ( true ) {
const response = await fetch (
`https://api.tokenlab.sh/v1/tasks/ ${ taskId } ` ,
{ headers: { 'Authorization' : 'Bearer sk-your-api-key' } }
);
const result = await response . json ();
if ( result . status === 'completed' ) {
console . log ( `3D Model URL: ${ result . model_url } ` );
return result . model_url ;
} else if ( result . status === 'failed' ) {
throw new Error ( result . error );
}
await new Promise ( r => setTimeout ( r , 5000 ));
}
}
package main
import (
" encoding/json "
" fmt "
" net/http "
" time "
)
func main () {
taskID := "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
for {
req , _ := http . NewRequest ( "GET" ,
fmt . Sprintf ( "https://api.tokenlab.sh/v1/tasks/ %s " , taskID ), nil )
req . Header . Set ( "Authorization" , "Bearer sk-your-api-key" )
client := & http . Client {}
resp , _ := client . Do ( req )
var result map [ string ] interface {}
json . NewDecoder ( resp . Body ). Decode ( & result )
resp . Body . Close ()
if result [ "status" ] == "completed" {
fmt . Printf ( "3D Model URL: %s \n " , result [ "model_url" ])
break
} else if result [ "status" ] == "failed" {
fmt . Printf ( "Error: %s \n " , result [ "error" ])
break
}
time . Sleep ( 5 * time . Second )
}
}
<? php
$taskId = 'ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ;
while ( true ) {
$ch = curl_init ( "https://api.tokenlab.sh/v1/tasks/{ $taskId }" );
curl_setopt_array ( $ch , [
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer sk-your-api-key'
]
]);
$response = curl_exec ( $ch );
curl_close ( $ch );
$result = json_decode ( $response , true );
if ( $result [ 'status' ] === 'completed' ) {
echo "3D Model URL: { $result ['model_url']} \n " ;
break ;
} elseif ( $result [ 'status' ] === 'failed' ) {
echo "Error: { $result ['error']} \n " ;
break ;
}
sleep ( 5 );
}
{
"id" : "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
"task_id" : "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
"poll_url" : "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
"status" : "completed" ,
"model_url" : "https://cdn.tripo3d.ai/abc123.glb" ,
"glb_url" : "https://cdn.tripo3d.ai/abc123.glb" ,
"fbx_url" : "https://cdn.tripo3d.ai/abc123.fbx"
}