Skip to Content
APIGeração de vídeoVisão geral

Video API

Uma API unificada de geração de vídeos compatível com o padrão OpenRouter Video Generation. Um único esquema cobre geração de texto para vídeo, imagem para vídeo, primeiro/último frame e geração guiada por referências. Envie uma tarefa de forma assíncrona e depois consulte por polling ou receba um webhook quando ela terminar.

RecursoDetalhe
Base URLhttps://api.ofox.ai
Estilo de protocoloCompatível com OpenRouter (envio assíncrono → polling / webhook)
Modo de geraçãoInferido implicitamente: sem imagens = texto para vídeo · frame_images = imagem / primeiro-último frame · input_references = guiado por referência
Entrega do resultadoPoll GET (protegido por limite de taxa) ou webhook callback_url (assinado com HMAC, com novas tentativas)
Armazenamento do vídeoURL original do upstream (temporária) + espelho CDN opcional (URL assinada persistente)

Autenticação

Toda requisição carrega sua API key da ofox (formato sk-xxx…) no header HTTP:

Authorization: Bearer $OFOX_API_KEY

callback_url deve usar HTTPS. Destinos de webhook são validados contra SSRF — endereços privados, loopback e de metadados de nuvem são rejeitados. Um endereço não HTTPS ou interno falha na criação com 400 invalid_callback_url.

Início rápido

1. Envie uma tarefa

Terminal
curl -X POST https://api.ofox.ai/v1/videos \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "google/veo-3.1", "prompt": "A golden retriever running on the beach at sunset", "duration": 5, "resolution": "1080p", "aspect_ratio": "16:9", "generate_audio": true }'

A chamada retorna 202 imediatamente com uma URL de polling:

{ "id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718", "status": "pending", "polling_url": "https://api.ofox.ai/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718" }

2. Consulte por polling até concluir

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

Continue consultando até status chegar a um estado terminal — completed, failed, cancelled ou expired. Não faça polling mais de uma vez por segundo; ou informe um callback_url ao criar a tarefa para receber um webhook em vez de usar polling. Veja Obter status do vídeo e Webhooks.

Endpoints

MétodoEndpointDescrição
POST/v1/videosCriar uma tarefa de vídeo
GET/v1/videos/{id}Obter status e resultado da tarefa
DELETE/v1/videos/{id}Cancelar uma tarefa

Preço por segundo

Os modelos de vídeo são cobrados por tempo, não por tokens. A entrada correspondente em pricing.video_pricing.tiers define a tarifa em USD por segundo conforme a resolução, o tipo de entrada e as opções de áudio. pricing.output_video_per_second é apenas o menor preço inicial do modelo. A estimativa é tarifa do nível × duração solicitada; após a conclusão, use usage.video_seconds e usage.video_cost da resposta como segundos cobrados e custo real. Em tarefas de vídeo para vídeo, os segundos cobrados podem incluir a duração do vídeo de entrada.

Próximos passos

Last updated on