Saltar al contenido principal
Realice peticiones periódicas (poll) a este endpoint para verificar el estado de su tarea de generación de modelos 3D.
Si la respuesta de creación incluye poll_url, prioriza esa URL exacta para el polling. id y task_id deben tratarse como la misma identidad de tarea asíncrona.Si la tarea ya no existe o ya no está disponible en el registro público de tareas, TokenLab devuelve async_task_not_found con el mensaje Task not found or no longer available.

Parámetros de ruta

id
string
requerido
El ID de la tarea de generación 3D.

Respuesta

id
string
ID de la tarea.
task_id
string
Alias del identificador de tarea asíncrona cuando está disponible.
status
string
Estado de la tarea: pending, processing, completed o failed.
progress
integer
Valor de progreso opcional. Solo se devuelve cuando hay un progreso real disponible; usa status para determinar la finalización.
model_url
string
URL para descargar el archivo del modelo 3D (cuando se haya completado).
glb_url
string
URL para descargar el modelo en formato GLB (cuando esté disponible).
fbx_url
string
URL para descargar el modelo en formato FBX (cuando esté disponible).
error
string
Mensaje de error (cuando falle).
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"
}