> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# 3D-Modell-Status abrufen

> Ruft den Status und das Ergebnis einer 3D-Generierungsaufgabe ab

Fragen Sie diesen Endpunkt ab, um den Status Ihrer 3D-Modell-Generierungsaufgabe zu überprüfen.

<Info>
  Wenn die Create-Response `poll_url` enthält, sollten Sie zum Polling bevorzugt genau diese URL verwenden. `id` und `task_id` sollten als dieselbe asynchrone Task-ID behandelt werden.

  Wenn die Aufgabe nicht mehr existiert oder im öffentlichen Aufgabenprotokoll nicht mehr verfügbar ist, gibt TokenLab `async_task_not_found` mit der Meldung `Task not found or no longer available.` zurück.
</Info>

## Pfadparameter

<ParamField path="id" type="string" required>
  Die ID der 3D-Generierungsaufgabe.
</ParamField>

## Antwort

<ResponseField name="id" type="string">
  Aufgaben-ID.
</ResponseField>

<ResponseField name="task_id" type="string">
  Alias der asynchronen Task-ID, wenn verfügbar.
</ResponseField>

<ResponseField name="status" type="string">
  Aufgabenstatus: `pending`, `processing`, `completed` oder `failed`.
</ResponseField>

<ResponseField name="progress" type="integer">
  Optionaler Fortschrittswert. Wird nur zurückgegeben, wenn ein echter Fortschrittswert verfügbar ist; verwenden Sie `status`, um den Abschluss zu erkennen.
</ResponseField>

<ResponseField name="model_url" type="string">
  URL zum Herunterladen der 3D-Modelldatei (nach Abschluss).
</ResponseField>

<ResponseField name="glb_url" type="string">
  URL zum Herunterladen des Modells im GLB-Format (sofern verfügbar).
</ResponseField>

<ResponseField name="fbx_url" type="string">
  URL zum Herunterladen des Modells im FBX-Format (sofern verfügbar).
</ResponseField>

<ResponseField name="error" type="string">
  Fehlermeldung (im Fehlerfall).
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.tokenlab.sh/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
    -H "Authorization: Bearer sk-your-api-key"
  ```

  ```python Python theme={null}
  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
  ```

  ```javascript JavaScript theme={null}
  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));
    }
  }
  ```

  ```go Go theme={null}
  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 PHP theme={null}
  <?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);
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response (Completed) theme={null}
  {
    "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"
  }
  ```
</ResponseExample>
