Skip to Content
Referência da 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.io
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
# Opcional: fixar um provedor. Se omitir, a plataforma faz o roteamento # "provider": { "type": "byteplus" } curl -X POST https://api.ofox.io/v1/videos \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance/seedance-2.5", "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.io/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718" }

2. Consulte por polling até concluir

Terminal
curl https://api.ofox.io/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

Este endpoint serve 12 modelos, que diferem em duração máxima, resolução, proporções e tarifa — veja a matriz completa em Modelos de vídeo.

Fixar um provedor

Um modelo de vídeo pode ser atendido por mais de um provedor. Passe provider.type no nível superior do corpo da requisição para fixar a tarefa em um deles:

{ "model": "bytedance/seedance-2.0-mini", "prompt": "...", "provider": { "type": "byteplus" } }

Sem esse campo, a tarefa é distribuída por peso. Os provedores disponíveis estão em Roteamento de provedores.

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