Zum Hauptinhalt springen

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.

Pfadparameter

id
string
erforderlich
Kanonische asynchrone Aufgaben-ID. Wenn id und task_id beide vorhanden sind, behandeln Sie sie als dieselbe Aufgabe.
Wenn eine Create-Response poll_url zurückgibt, verwenden Sie genau diese URL. Wenn sie auf /v1/tasks/{id} zeigt, behandeln Sie sie als kanonischen festen Status-Endpunkt.

Antwort

id
string
Kanonische asynchrone Task-ID.
task_id
string
Alias der asynchronen Task-ID.
poll_url
string
Bevorzugte Polling-URL aus der Create-Response.
billing_transaction_id
string
TokenLab-Abrechnungstransaktions-ID, wenn die Abrechnung bereits abgeschlossen ist. Dies ist die Kennung für Dashboard/Abgleich und getrennt von der asynchronen id / task_id.
status
string
Task-Status: pending, processing, completed, failed.
progress
number
Fortschritt in Prozent (0-100).
video_url
string
URL des generierten Videos (nach Abschluss).
video
object
Einzelnes Videoobjekt mit url, duration, width und height, falls verfügbar.
videos
array
Video-Array, wenn der Upstream mehrere Ausgaben zurückgibt.
error
string
Fehlermeldung (falls fehlgeschlagen).
created
integer
Zeitstempel der Erstellung.
updated
integer
Zeitstempel der letzten Aktualisierung.
model
string
Für die Task verwendetes Modell.
curl "https://api.tokenlab.sh/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer sk-your-api-key"
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "progress": 0,
  "model": "sora-2",
  "created": 1706000000,
  "updated": 1706000000
}

Best Practices für Polling

  • Alle 5-10 Sekunden pollen
  • Für lange Tasks exponentielles Backoff implementieren
  • Ein maximales Timeout festlegen (z. B. 10 Minuten)
  • Den Status failed sauber behandeln
import time

def wait_for_video(task_id, max_wait=600, interval=5):
    """Wait for video with timeout."""
    start = time.time()

    while time.time() - start < max_wait:
        response = requests.get(
            f"https://api.tokenlab.sh/v1/tasks/{task_id}",
            headers={"Authorization": "Bearer sk-your-api-key"}
        )
        data = response.json()

        if data["status"] == "completed":
            return data["video_url"]
        elif data["status"] == "failed":
            raise Exception(data.get("error", "Video generation failed"))

        time.sleep(interval)

    raise TimeoutError("Video generation timed out")