Один API для всех моделей AI-видео
Если вы знаете OpenRouter для языковых моделей, Revana — та же идея для генерации видео и изображений: один API-ключ, один формат запроса и один предоплаченный баланс для Seedance, Veo, Kling, Wan, Nano Banana Pro, GPT Image 2 и остального каталога, с автоматическим переходом, когда вышестоящий маршрут не срабатывает.
Проблема вызова каждой модели напрямую
Каждый разработчик моделей ведёт собственный API со своим аккаунтом, ключами, форматом запроса, потоком статусов задач и тарификацией. Разработка под три из них означает три интеграции для поддержки, три баланса для пополнения и три набора кодов ошибок для обработки. Некоторые модели предлагают несколько платформ по разным ценам, с разными лимитами и мощностями, которые то появляются, то исчезают.
Эта цена становится заметной, когда вы хотите попробовать новую модель, что в 2026 году происходит каждые несколько месяцев. Каждая новая модель — это ещё одна интеграция, прежде чем вы вообще сможете понять, подходит ли она вашему продукту.
Как работает Revana
- Один ключ. Зарегистрируйтесь и создайте API-ключ в панели. Он работает для каждой модели каталога.
- Один запрос. Отправьте
POST /v1/generationsс idmodelи объектомinput. Названия полей одинаковы для каждой модели:prompt,image_url,end_image_url,image_urls,resolution,duration,aspect_ratioиaudio. - Цена до запуска. Цена задачи берётся из каталога и резервируется с вашего предоплаченного баланса. Поле или значение, которое модель не поддерживает, отклоняется с
422до какого-либо списания. Вы также можете задатьmax_cost_usdкак потолок. - Маршрутизация. Роутер отправляет задачу по самому дешёвому маршруту для этой модели. Если маршрут не сработал или истёк тайм-аут, задача переходит на следующий.
- Один формат результата. Опрашивайте
GET /v1/generations/{id}. Когда статус станетsucceeded, файлы будут вoutput.urls, а списанная сумма — вcost_usd. Если задача завершилась ошибкой, резерв освобождается.
Задачи асинхронны: изображения обычно занимают секунды, а видео — от менее минуты до нескольких минут. Полный справочник полей и кодов ошибок — в документации.
Один и тот же запрос на трёх моделях
Поскольку формат запроса общий, сравнение моделей — это цикл. Этот скрипт отправляет один промпт в Seedance 2.0, Veo 3.1 Fast и Wan 3.0, а затем выводит каждый результат и его стоимость. У каждой модели свои параметры, поэтому выбирайте значения, которые принимают все три; здесь это 720p, 8 секунд и 16:9.
import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
PROMPT = (
"A paper boat sails down a rain-soaked street gutter at dusk, "
"neon signs reflected in the water. Rain, distant traffic."
)
MODELS = ["seedance-2.0", "veo-3.1-fast", "wan-3.0"]
# Submit the same job to every model; each call returns 202 with an id.
jobs = {}
for model in MODELS:
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": model,
"input": {
"prompt": PROMPT,
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 1.5,
})
resp.raise_for_status()
jobs[model] = resp.json()["id"]
# Poll each job until it finishes.
for model, job_id in jobs.items():
while True:
job = requests.get(f"{API}/generations/{job_id}", headers=HEADERS).json()
if job["status"] in ("succeeded", "failed"):
break
time.sleep(5)
if job["status"] == "succeeded":
print(model, job["output"]["urls"][0], job["cost_usd"])
else:
print(model, "failed:", job["error"])По ценам каталога на октябрь 2026 три задачи стоят:
| Модель | Запрос | Цена |
|---|---|---|
| Seedance 2.0 | 720p, 8 с, звук включён в ставку | $1.20 |
| Veo 3.1 Fast | 720p, 8 с, со звуком (тарифицируется отдельно) | $0.80 |
| Wan 3.0 | 720p, 8 с, звук включён в ставку | $0.72 |
max_cost_usd в 1.5 покрывает все три. Задача, которая обошлась бы дороже своего потолка, не запускается.
Переход между маршрутами
Маршрут — это один источник вышестоящих мощностей для модели. У многих моделей на Revana их больше одного, и роутер использует их по порядку:
- Сначала самый дешёвый. Каждая задача уходит по самому дешёвому маршруту, который принимает её параметры.
- При сбое — следующий. Если этот маршрут не сработал или истёк тайм-аут, задача автоматически переходит на следующий. Поле
attemptsпоказывает, сколько их было опробовано. - Та же модель, та же цена. Каждый маршрут обслуживает запрошенную вами модель по указанной цене. Роутер никогда не подменяет её другой.
- Одно списание. Плата берётся только за маршрут, который сработал. Если не сработали все маршруты, задача завершается как
failedи ничего не стоит.
| Модель | Тип | Маршруты |
|---|---|---|
| Seedance 2.5 | video | пять маршрутов |
| Seedance 2.0 | video | три маршрута |
| Kling 3.0 | video | два маршрута |
| Veo 3.1 Fast | video | два маршрута |
| Veo 3.1 | video | два маршрута |
| Wan 3.0 | video | три маршрута |
| Nano Banana Pro | image | один маршрут |
| GPT Image 2 | image | два маршрута |
Модель с одним маршрутом не может перейти на другой. Переход повышает шанс, что задача завершится, но не гарантирует доступность: обрабатывайте задачи с failed в своём коде, например повторяя позже или самостоятельно переключаясь на другую модель.
Цены и кредиты
Revana работает по принципу оплаты по факту использования. Нет подписки, мест и ежемесячного минимума: вы покупаете предоплаченные кредиты пакетами по $10, $50, $100, $500, $1000 или $5000 и тратите их на любую модель по её указанной цене.
- Большинство моделей видео тарифицируются за секунду видео, по разрешению и, у некоторых моделей, по тому, включён ли звук.
- Модели изображений тарифицируются за изображение, по размеру.
- Стоимость резервируется при отправке, списывается, когда задача завершилась успешно, и освобождается, когда она завершилась ошибкой.
На странице цен перечислены цены всех моделей. Наши руководства показывают, сколько стоят типичные задачи на Seedance 2.0, Veo 3.1 и Kling 3.0.
Читайте каталог в коде
Полный каталог — публичный JSON-файл по адресу https://revana.si/data/models.json. Основные поля каждой модели:
| Поле | Что содержит |
|---|---|
id | строка, которую нужно отправлять как model |
name, maker | отображаемое название и компания, создающая модель |
kind | video or image |
tasks | что принимает модель, например text_to_video или image_to_video |
options | разрешения, соотношения сторон, длительности, звук и лимит входных изображений |
price | единица (за секунду, за изображение или за задачу) и цена для каждого варианта |
routes | сколько маршрутов обслуживают модель |
Например, чтобы вывести все модели, которые умеют делать видео из текста:
# Every model that can make a video from a text prompt
curl -s https://revana.si/data/models.json \
| jq -r '.models[] | select(any(.tasks[]; . == "text_to_video")) | .id'Используйте его, чтобы построить выбор модели, проверять параметры перед отправкой или оценивать цену задачи в собственном интерфейсе. Те же данные питают страницу моделей.
Что нужно знать перед переходом
- Параметры различаются по моделям. Названия полей общие, но каждая модель принимает свои значения. У Kling 3.0, например, нет параметра соотношения сторон. Проверьте страницу модели, прежде чем менять строку
model. - Ссылки на результат истекают. Скачивайте готовые файлы и храните их в собственном хранилище.
- Модель выбираете вы. Маршрутизация меняет, где выполняется задача, но никогда — какая модель её выполняет. Переход на другую модель — решение вашего кода.
- Цены могут меняться. Каталог всегда показывает актуальные цены, а цена каждой задачи фиксируется в момент отправки.
Готовы попробовать? Получите API-ключ, посмотрите модели или начните с быстрого старта.
Частые вопросы
Есть ли один API для всех моделей AI-видео?
Revana даёт один API-ключ, один формат запроса и один предоплаченный баланс для основных моделей видео и изображений, включая Seedance, Veo, Kling, Wan, Hailuo, Grok Imagine, Nano Banana и GPT Image. У каждой модели остаются свои параметры и цена.
Чем Revana похожа на OpenRouter?
OpenRouter даёт разработчикам один API для многих языковых моделей. Revana делает то же для моделей генерации видео и изображений: один ключ, один баланс и маршрутизация между несколькими источниками мощностей для одной и той же модели.
Что происходит, когда вышестоящий маршрут не срабатывает?
Если у модели больше одного маршрута, роутер переводит задачу на следующий маршрут по той же указанной цене. Если не сработали все маршруты, задача завершается как неудавшаяся, а зарезервированная сумма освобождается.
Переключится ли Revana на другую модель, если моя недоступна?
Нет. Роутер меняет маршрут, но никогда не меняет модель. Если хотите перейти на другую модель, сделайте это в своём коде, отправив новый запрос с другим id модели.
Как работает тарификация?
Вы покупаете предоплаченные кредиты пакетами от $10 до $5000 без подписки. Цена каждой задачи берётся из каталога, резервируется при отправке и списывается, только если задача завершилась успешно.
Как получить список моделей и цен в коде?
Загрузите https://revana.si/data/models.json. В нём указана каждая модель с id, разработчиком, задачами, параметрами, ценами и числом маршрутов.
Один ключ на весь каталог
Создайте ключ, пополните предоплаченный баланс и вызывайте любую модель видео или изображений одним и тем же запросом.