NezhaGateNezhaGate
POST https://nezhagate.com/v1/videos/generations

Асинхронная генерация видео Veo 3.1: один эндпоинт, тип определяется параметрами — не указывайте image для варианта «текст в видео», укажите image (первый кадр) для варианта «изображение в видео»; tier=lite/fast/quality, resolution=720p/1080p/4k (1080p/4k требуют quality), size=16:9/9:16, duration=4s/6s/8s. Возвращает job id (HTTP 202); опрашивайте GET /v1/videos/jobs/{id} до status=succeeded, результат — в data[0].url (перезалитый mp4). ~1-2 мин на клип, оплата за клип, при ошибке — полный возврат.

Попробовать в песочнице →

Аутентификация

Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Чтобы начать, создайте API-ключ в консоли.

Тело запроса

ПараметрТипОбязательныйОписание
model string Да Model ID, here veo-3.1.
prompt string Да Текстовый промпт с описанием видео.
tier string Нет Уровень качества: lite (по умолчанию, самый дешёвый) / fast / quality.
resolution string Нет Разрешение: 720p (по умолчанию) / 1080p (только для уровня quality; у Lite/Fast — 720p). 4K временно недоступно.
size string Нет Ориентация: 16:9 (альбомная, по умолчанию) / 9:16 (портретная).
duration string Нет Длительность: 4s / 6s / 8s (по умолчанию 8s).
image string Нет Изображение в видео: укажите референсное изображение (используется как первый кадр) — публичный URL, data: URI или base64 — чтобы запустить режим «изображение в видео»; не указывайте для режима текст в видео.

Пример запроса

cURL
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "veo-3.1", "prompt": "a cat surfing a wave at sunset", "tier": "quality", "resolution": "1080p", "size": "16:9", "duration": "8s"}'
# image-to-video: also pass  "image": "https://example.com/first-frame.png"
# 2) poll every ~5s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'

Ответ

200 · JSON
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "queued",
  "model": "veo-3.1"
}

Асинхронная видеозадача (отправка → опрос)

Единая модель; тип выбирается параметрами: tier=lite/fast/quality, resolution=720p/1080p/4k (для 1080p/4k нужен quality), size=16:9/9:16, duration=4s/6s/8s; для варианта «изображение в видео» добавьте параметр image (референс первого кадра). В ответ сразу приходит HTTP 202 и id задачи; опрашивайте, пока status не станет succeeded — результат будет в data[0].url (переразмещённый mp4, ~1-2 мин).

curl · отправка (текст в видео)
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "veo-3.1", "prompt": "кот занимается сёрфингом на закате", "tier": "quality", "resolution": "1080p", "size": "16:9", "duration": "8s"}'
Изображение в видео: дополнительно передайте параметр image (референс первого кадра: публичный URL, data: URI или base64).
Пример ответа
{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "veo-3.1" }
curl · опрос
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
Пример ответа
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "succeeded",
  "model": "veo-3.1",
  "data": [{ "url": "https://img.nezhagate.com/i/9f86d081a8....mp4" }]
}

🕑 data[0].url — это ссылка на наш хостинг изображений; она хранится 60 дней, а затем автоматически удаляется. Чтобы продолжать использовать изображение, скачайте его и сохраните в своём хранилище или CDN.

Тарификация за клип целиком, при сбое — полный возврат; неудачный или прерванный по тайм-ауту рендер автоматически возвращает зарезервированные кредиты.

Коды ошибок

Каждое тело ошибки содержит error.message / error.type / error.code / error.param — ветвите логику по code; полный список — в руководстве по интеграции.

HTTPcodeОписание
401invalid_api_keyAPI-ключ отсутствует или недействителен
402insufficient_quotaНедостаточно средств на балансе или превышена квота ключа
400invalid_requestНеподдерживаемая модель или параметр
429rate_limit_exceededЛимит запросов у провайдера
502upstream_errorВсе маршруты к провайдерам не сработали