Skip to Content
APIGénération de vidéoStatut de la vidéo

Obtenir le statut vidéo

GET https://api.ofox.ai/v1/videos/{id}

Interrogez le statut et le résultat d’une tâche. Après avoir créé une tâche, interrogez cet endpoint jusqu’à ce que status atteigne un état terminal — completed, failed, cancelled ou expired.

Terminal
curl https://api.ofox.ai/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718 \ -H "Authorization: Bearer $OFOX_API_KEY"

Limite de débit

Cet endpoint est limité par clé API (par défaut 5 req/s avec un burst de 20). Les requêtes au-delà de la limite renvoient 429 rate_limited avec un Header Retry-After: 1. La création (POST) et l’annulation (DELETE) ne sont pas soumises à cette limite.

N’interrogez pas plus d’une fois par seconde, ou fournissez un callback_url à la création de la tâche pour recevoir un webhook au lieu du polling.

Réponse

{ "id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718", "status": "completed", "model": "google/veo-3.1", "prompt": "A golden retriever running on the beach at sunset", "unsigned_urls": ["https://upstream.example/out.mp4"], "mirror_urls": ["https://cdn.ofox.ai/videos/vgen_xxx.mp4?sig=..."], "usage": { "video_seconds": 5, "video_cost": "0.4000000000" }, "created_at": 1776211362, "updated_at": 1776211400 }

Un timeout est signalé comme status: "failed" avec error.code défini sur expired. Pour la liste complète des codes d’erreur, consultez Codes d’erreur.

L’objet Video

ChampTypeDescription
idstringIdentifiant unique de la tâche (UUID)
statusenumVoir Machine d’états
modelstringSlug du modèle
promptstringPrompt original
unsigned_urlsstring[]Présent quand completed. URL vidéo originale en amont (temporaire, peut expirer en 24h)
mirror_urlsstring[]Présent quand completed et que le fournisseur du modèle a le miroir CDN activé. URL signée persistante — voir URL vidéo
errorobjectPrésent quand failed : {code, message}
usageobjectPrésent quand completed : {video_seconds, video_cost}. video_seconds correspond aux secondes facturées (inclut les secondes d’entrée v2v) ; video_cost est le montant réel au prix du niveau plateforme, sous forme de chaîne décimale fixe à 10 décimales (évite les pertes de précision)
created_at / updated_atintegerSecondes Unix

Machine d’états

Sept états, construits sur le nommage OpenRouter et étendus avec cancelled / expired.

StatutTerminalDescription
pendingAcceptée, pas encore soumise en amont
queuedSoumise en amont, en attente dans la file
in_progressGénération en amont
completedSuccès, URL vidéo disponibles
failedÉchec (y compris timeout, error.code=expired)
cancelledAnnulée
expiredExpirée

Transitions : pending → queued → in_progress → completed est le chemin de succès. Tout état non terminal peut passer à failed, cancelled ou expired.

URL vidéo

Une tâche réussie peut renvoyer deux ensembles d’URL, selon que le fournisseur du modèle a le miroir CDN activé.

ChampSourceCaractéristiques
unsigned_urlsAdresse originale du fournisseur en amontTemporaire — toujours présente · peut expirer en 24h · non signée
mirror_urlsMiroir CDN ofoxPersistante — uniquement pour les fournisseurs avec CDN activé · signée à chaque requête · possède une TTL

Préférez mirror_urls (persistantes et stables). Lorsqu’un modèle ne renvoie que unsigned_urls, téléchargez ou réhébergez le fichier rapidement avant l’expiration de l’adresse temporaire en amont.

Last updated on