Skip to Content
APIGeneración de videoEstado del video

Obtener estado del video

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

Consulta el estado y resultado de una tarea. Después de crear una tarea, consulta este endpoint hasta que status llegue a un estado terminal: completed, failed, cancelled o expired.

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

Límite de tasa

Este endpoint tiene límite de tasa por API Key (predeterminado 5 req/s con ráfaga de 20). Las solicitudes por encima del límite devuelven 429 rate_limited con un header Retry-After: 1. Crear (POST) y cancelar (DELETE) no están sujetos a este límite.

No consultes más de una vez por segundo, o proporciona un callback_url al crear la tarea para recibir un webhook en lugar de consultar.

Respuesta

{ "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 se informa como status: "failed" con error.code establecido en expired. Para la lista completa de códigos de error, consulta Códigos de error.

El objeto Video

CampoTipoDescripción
idstringIdentificador único de tarea (UUID)
statusenumVer Máquina de estados
modelstringSlug del modelo
promptstringPrompt original
unsigned_urlsstring[]Presente cuando completed. URL de video original upstream (temporal, puede expirar en 24h)
mirror_urlsstring[]Presente cuando completed y el proveedor del modelo tiene espejado CDN habilitado. URL firmada persistente; ver URLs de video
errorobjectPresente cuando failed: {code, message}
usageobjectPresente cuando completed: {video_seconds, video_cost}. video_seconds son los segundos facturados (incluye segundos de input v2v); video_cost es el cargo real al precio del nivel de plataforma, como string de punto fijo con 10 decimales (evita pérdida de precisión)
created_at / updated_atintegerSegundos Unix

Máquina de estados

Siete estados, basados en la nomenclatura de OpenRouter y extendidos con cancelled / expired.

StatusTerminalDescripción
pendingAceptada, aún no enviada upstream
queuedEnviada upstream, esperando en cola
in_progressGenerando upstream
completedÉxito, URLs de video disponibles
failedFalló (incluye timeout, error.code=expired)
cancelledCancelada
expiredExpirada

Transiciones: pending → queued → in_progress → completed es la ruta de éxito. Cualquier estado no terminal puede pasar a failed, cancelled o expired.

URLs de video

Una tarea exitosa puede devolver dos conjuntos de URLs, según si el proveedor del modelo tiene espejado CDN habilitado.

CampoFuenteCaracterísticas
unsigned_urlsDirección original del proveedor upstreamTemporal: siempre presente · puede expirar en 24h · sin firma
mirror_urlsEspejo CDN de ofoxPersistente: solo para proveedores con CDN habilitado · firmada en cada solicitud · tiene TTL

Prefiere mirror_urls (persistentes y estables). Cuando un modelo devuelve solo unsigned_urls, descarga o vuelve a alojar el archivo pronto, antes de que expire la dirección temporal upstream.

Last updated on