Video API
Единый API генерации видео, совместимый со стандартом OpenRouter Video Generation. Одна схема покрывает генерацию текста в видео, изображения в видео, первый/последний кадр и генерацию по референсам. Отправьте задачу асинхронно, затем опрашивайте ее или получите webhook после завершения.
| Возможность | Детали |
|---|---|
| Base URL | https://api.ofox.ai |
| Стиль протокола | Совместим с OpenRouter (асинхронная отправка → опрос / webhook) |
| Режим генерации | Определяется неявно: нет изображений = текст в видео · frame_images = изображение / первый-последний кадр · input_references = генерация по референсам |
| Доставка результата | Опрос через GET (с защитой лимитом запросов) или webhook callback_url (подписан HMAC, с повторами) |
| Хранение видео | Исходный URL upstream (временный) + опциональное CDN-зеркало (постоянный подписанный URL) |
Аутентификация
Каждый запрос передает ваш ofox API key (формат sk-xxx…) в HTTP-заголовке:
Authorization: Bearer $OFOX_API_KEYcallback_url должен использовать HTTPS. Цели webhook проходят SSRF-проверку — приватные, loopback- и cloud-metadata-адреса отклоняются. Не-HTTPS или внутренний адрес приводит к ошибке создания 400 invalid_callback_url.
Быстрый старт
1. Отправьте задачу
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
}'Вызов сразу возвращает 202 с URL для опроса:
{
"id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718",
"status": "pending",
"polling_url": "https://api.ofox.ai/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718"
}2. Опрашивайте до завершения
curl https://api.ofox.ai/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718 \
-H "Authorization: Bearer $OFOX_API_KEY"Продолжайте запросы, пока status не достигнет конечного состояния — completed, failed, cancelled или expired. Опрашивайте не чаще одного раза в секунду или передайте callback_url при создании задачи, чтобы получить webhook вместо опроса. См. Получение статуса видео и Webhooks.
Эндпоинты
| Метод | Эндпоинт | Описание |
|---|---|---|
POST | /v1/videos | Создание задачи видео |
GET | /v1/videos/{id} | Получение статуса и результата задачи |
DELETE | /v1/videos/{id} | Отмена задачи |
Посекундная тарификация
Видеомодели тарифицируются по времени, а не по токенам. Подходящая запись в pricing.video_pricing.tiers задаёт цену в долларах за секунду с учётом разрешения, типа ввода и аудио. pricing.output_video_per_second — лишь минимальная начальная цена модели. Оценка рассчитывается как ставка уровня × запрошенная длительность; после завершения используйте usage.video_seconds и usage.video_cost из ответа как итоговое число оплачиваемых секунд и фактическую сумму. Для video-to-video в оплачиваемые секунды может входить длительность входного видео.