Skip to Content
APIGeração de vídeoStatus do vídeo

Obter status do vídeo

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

Consulte o status e o resultado de uma tarefa. Depois de criar uma tarefa, faça polling neste endpoint até status chegar a um estado 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 taxa

Este endpoint tem limite de taxa por API key (padrão 5 req/s com burst de 20). Requisições acima do limite retornam 429 rate_limited com o header Retry-After: 1. Criação (POST) e cancelamento (DELETE) não estão sujeitos a este limite.

Não faça polling mais de uma vez por segundo; ou forneça um callback_url ao criar a tarefa para receber um webhook em vez de fazer polling.

Resposta

{ "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 }

Um timeout é relatado como status: "failed" com error.code definido como expired. Para a lista completa de códigos de erro, veja Códigos de erro.

O objeto Video

CampoTipoDescrição
idstringIdentificador único da tarefa (UUID)
statusenumVeja Máquina de estados
modelstringSlug do modelo
promptstringPrompt original
unsigned_urlsstring[]Presente quando completed. URL original do vídeo no upstream (temporária, pode expirar em 24h)
mirror_urlsstring[]Presente quando completed e o provedor do modelo tem espelhamento CDN ativado. URL assinada persistente — veja URLs de vídeo
errorobjectPresente quando failed: {code, message}
usageobjectPresente quando completed: {video_seconds, video_cost}. video_seconds são os segundos cobrados (inclui segundos de input v2v); video_cost é a cobrança real no preço do nível da plataforma, uma string decimal fixa com 10 casas (evita perda de precisão)
created_at / updated_atintegerSegundos Unix

Máquina de estados

Sete estados, baseados na nomenclatura do OpenRouter e estendidos com cancelled / expired.

StatusTerminalDescrição
pendingAceita, ainda não enviada ao upstream
queuedEnviada ao upstream, aguardando na fila
in_progressGerando no upstream
completedSucesso, URLs de vídeo disponíveis
failedFalhou (incluindo timeout, error.code=expired)
cancelledCancelada
expiredExpirada

Transições: pending → queued → in_progress → completed é o caminho de sucesso. Qualquer estado não terminal pode mover para failed, cancelled ou expired.

URLs de vídeo

Uma tarefa bem-sucedida pode retornar dois conjuntos de URLs, dependendo de o provedor do modelo ter espelhamento CDN ativado.

CampoFonteCaracterísticas
unsigned_urlsEndereço original do provedor upstreamTemporária — sempre presente · pode expirar em 24h · não assinada
mirror_urlsEspelho CDN da ofoxPersistente — apenas para provedores com CDN ativada · assinada a cada requisição · tem TTL

Prefira mirror_urls (persistentes e estáveis). Quando um modelo retorna apenas unsigned_urls, baixe ou hospede novamente o arquivo rapidamente antes que o endereço temporário do upstream expire.

Last updated on