PixVerse V6 Max API

Принимает текстовое описание и возвращает готовый ролик. 8 соотношений сторон, от 16:9 до 21:9, описание до 5 000 символов. Модель PixVerse, выпущена 22 октября 2026 года.

Принимает изображение и оживляет его, возвращая ролик. На вход одно изображение, описание до 5 000 символов. Модель PixVerse, выпущена 22 октября 2026 года.

PixVerse V6 Max API работает в России без VPN: один API ключ GEN202, оплата рублями с российской карты.

Цена: за секунду, 360p — от 7.3 кр. (3,65 ₽ · $0.0332), 540p — от 11 кр. (5,5 ₽ · $0.05), 720p — от 13.4 кр. (6,7 ₽ · $0.0609), 1080p — от 26.7 кр. (13,35 ₽ · $0.1214).

Цена: за секунду, 360p — от 7.3 кр. (3,65 ₽ · $0.0332), 540p — от 11 кр. (5,5 ₽ · $0.05), 720p — от 13.4 кр. (6,7 ₽ · $0.0609), 1080p — от 26.7 кр. (13,35 ₽ · $0.1214).

кр. — кредиты, покупаются за рубли.

Model

Статус

работает

Статус

работает

Песочница

Input

Ещё настройки

Чтобы создать видео — войдите и получите 50 кредитов на тесты и любое использование сервиса.

{
  "model": "pixverse/6-max-text-to-video",
  "input": {
    "prompt": "Ginger cat in a white spacesuit floats in zero gravity above Earth. It slowly turns its head toward the camera, front paws drifting; sunlight glints across the helmet visor, the blue planet reflected in the glass. The camera eases backwards, revealing a solar panel at the edge of frame. Cinematic, soft rim light, shallow depth of field.",
    "aspect_ratio": "1:1",
    "quality": "720p",
    "duration": 3
  }
}
Output
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "cm8r4t0vk0001s60p2xq7f9ab",
    "model": "pixverse/6-max-text-to-video",
    "state": "success",
    "resultJson": "{\"resultUrls\":[\"https://file.example/result.mp4\"]}",
    "failCode": "",
    "failMsg": "",
    "creditsConsumed": 54.6
  }
}
Input

Ещё настройки

Чтобы создать видео — войдите и получите 50 кредитов на тесты и любое использование сервиса.

{
  "model": "pixverse/6-max-image-to-video",
  "input": {
    "prompt": "Ginger cat in a white spacesuit floats in zero gravity above Earth. It slowly turns its head toward the camera, front paws drifting; sunlight glints across the helmet visor, the blue planet reflected in the glass. The camera eases backwards, revealing a solar panel at the edge of frame. Cinematic, soft rim light, shallow depth of field.",
    "image_urls": [
      "https://gen202.com/assets/sample-nano-banana-pro.jpg"
    ],
    "quality": "720p",
    "duration": 3
  }
}
Output
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "cm8r4t0vk0001s60p2xq7f9ab",
    "model": "pixverse/6-max-image-to-video",
    "state": "success",
    "resultJson": "{\"resultUrls\":[\"https://file.example/result.mp4\"]}",
    "failCode": "",
    "failMsg": "",
    "creditsConsumed": 54.6
  }
}

Цена PixVerse V6 Max

Цена за секунду. Списывается фактический расход, о котором сообщил поставщик.

Вариант Наша цена
360p без звука 7.3 кр. $0.03323,65 ₽
540p без звука, 360p со звуком 11 кр. $0.055,5 ₽
720p без звука, 540p со звуком 13.4 кр. $0.06096,7 ₽
720p со звуком 18.2 кр. $0.08279,1 ₽
1080p без звука 26.7 кр. $0.121413,35 ₽
1080p со звуком 34 кр. $0.154517 ₽

кр. — кредиты, покупаются за рубли.

Цена за секунду. Списывается фактический расход, о котором сообщил поставщик.

Вариант Наша цена
360p без звука 7.3 кр. $0.03323,65 ₽
540p без звука, 360p со звуком 11 кр. $0.055,5 ₽
720p без звука, 540p со звуком 13.4 кр. $0.06096,7 ₽
720p со звуком 18.2 кр. $0.08279,1 ₽
1080p без звука 26.7 кр. $0.121413,35 ₽
1080p со звуком 34 кр. $0.154517 ₽

кр. — кредиты, покупаются за рубли.

Вызов через API

POST https://api.gen202.com/api/v1/jobs/createTask
GET https://api.gen202.com/api/v1/jobs/recordInfo?taskId=…

Ролик делается минуты, поэтому файл не приходит в ответ на запрос. Первый вызов ставит задачу и сразу отвечает её номером, второй по этому номеру отдаёт состояние задачи, а когда она готова — ссылку на результат. Ключ передаётся в обоих запросах заголовком Authorization: Bearer sk-… и выпускается в кабинете. На один ключ шлюз пропускает 30 постановок задачи и 300 запросов состояния в минуту.

Поля запроса

Значения проверяются до обращения к поставщику: поле не из списка модели или значение вне перечисления возвращают 422 и кредитов не тратят.

ПолеТипОбяз.Допустимые значения
model текст обязательное pixverse/6-max-text-to-video
input объект обязательное Параметры генерации — поля из таблицы ниже

Поля input

ПолеТипОбяз.Допустимые значения
prompt текст обязательное от 1 до 5 000 символов
aspect_ratio значение из списка обязательное 16:9 · 4:3 · 1:1 · 3:4 · 9:16 · 2:3 · 3:2 · 21:9 · без него шлюз подставит 16:9
quality значение из списка обязательное 360p · 540p · 720p · 1080p · без него шлюз подставит 720p
duration целое число обязательное целое от 1 до 15
generate_audio_switch да или нет опц. true или false
seed целое число опц. целое от 0 до 2 147 483 647

Ответ

Оба запроса отвечают одним конвертом: {"code":…,"msg":…,"data":…}, где code повторяет HTTP-статус, а полезное лежит в data. Тот же конверт приходит и при отказе — разбирать две формы ответа не нужно.

/api/v1/jobs/createTask

ПолеТипЧто в нём
data.taskId строка Номер задачи. Больше в ответе ничего нет и быть не может — работа только началась.

/api/v1/jobs/recordInfo

ПолеТипЧто в нём
data.taskId строка Номер задачи — тот же, что вернул createTask.
data.model строка Имя модели в том виде, в каком его прислал клиент.
data.state строка Состояние задачи: waiting, queuing, generating, success или fail.
data.param строка Параметры, с которыми задача создана, — строкой JSON внутри JSON.
data.resultJson строка Результат строкой JSON внутри JSON: {"resultUrls":["https://…"]} — разбирается вторым разбором. До завершения задачи — пустая строка.
data.failCode строка Код неудачи из таблицы ниже. У остальных задач — пустая строка.
data.failMsg строка Причина неудачи словами модели. Иначе пустая строка.
data.failComment строка Наш комментарий к словам модели, по-русски: что произошло. Есть не у всякой неудачи; иначе пустая строка.
data.costTime число Сколько задача заняла, миллисекунды. Пока не завершилась — null.
data.completeTime число Когда завершилась, миллисекунды эпохи Unix. Пока не завершилась — null.
data.createTime число Когда создана, миллисекунды эпохи Unix.
data.updateTime число Когда состояние менялось в последний раз, миллисекунды эпохи Unix.
data.creditsConsumed число Сколько кредитов списано. Ноль, пока задача не завершилась, и ноль у неудачной.

Состояния задачи

Состояние лежит в поле state ответа /api/v1/jobs/recordInfo. Первые три означают, что работа идёт: запрос надо повторить примерно через 3 секунды — чаще спрашивать нечего, столько же ждёт между опросами сам шлюз. Два последних состояния окончательные: после них задача не меняется.

stateЧто происходит
waiting Задача принята и стоит в очереди шлюза; поставщику она ещё не отправлена.
queuing Поставщик задачу принял и поставил в свою очередь.
generating Генерация идёт.
success Готово: ссылки на результат лежат в resultJson, в creditsConsumed — сколько списано.
fail Задача не удалась: причина в failCode и failMsg, удержанные кредиты возвращены целиком.

Задача идёт, пока модель не пришлёт результат или отказ. Причина неудачи приходит двумя полями: failCode из таблицы ниже и failMsg словами.

failCodeЧто произошло
501 Поставщик вернул отказ: генерация не удалась.
408 Модель не приняла задачу за 60 минут или не отвечала сутки.
404 Поставщик не знает такой задачи.
429 Поставщик отбил создание задачи по своему лимиту.
500 Поломка на нашей стороне; подробности остаются в журнале шлюза.

Слова модели в failMsg бывают непонятны, поэтому к части неудач шлюз добавляет поле failComment — наш комментарий по-русски о том, что произошло. У остальных неудач это поле пустое.

failMsg, примерfailComment
Image fetch failed. Модель не смогла скачать файл из нашего хранилища. Вероятно, это разовый сбой, повторите запрос. Если ошибка повторится — напишите в поддержку: hi@gen202.com
File type not supported По ссылке открывается страница сайта, а не файл. Загрузите сам файл или дайте прямую ссылку на него.
image #2: width and height must be between 300px and 6000px (got 262x377) (invalid_asset_material) Одна из картинок слишком маленькая. Seedance принимает картинки от 300 до 6000 пикселей по каждой стороне.
Seedance identified your task as video editing based on your prompt. Seedance понял запрос как редактирование присланного видео. В песочнице и чате выберите режим «Редактирование видео», в API поставьте пропорции adaptive и длительность −1.
Seedance identified your task as video extension based on your prompt. Seedance решил, что присланное видео нужно продлить. Для этого поставьте пропорции adaptive, а если продлевать не нужно — уберите эту просьбу из промта.
generate task timeout. Модель не успела создать результат и сама остановила задачу.
Internal Error Модель остановилась и не назвала причину. Возможно, она перегружена или временно недоступна. Или запрос отклонён из-за чувствительной темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды.
The request failed because the input image may contain sensitive information. Модель отклонила загруженную картинку из-за чувствительной темы. Такие темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды.
The generated content was filtered by the safety system. Модель отклонила запрос из-за чувствительной темы. Такие темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды.
The model provider rejected or dropped the task creation request. Модель остановилась и не назвала причину. Возможно, она перегружена или временно недоступна. Или запрос отклонён из-за чувствительной темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды.
No result from the provider within the task deadline. Модель либо не приняла задачу за 15 минут (у видео — за 60), либо не ответила за сутки.

Ссылка на готовый файл живёт 14 дней — столько его хранит поставщик. Файл, который нужен дольше, скачивайте к себе сразу после того, как задача пришла в состояние success.

Отказы

Тело отказа одно на все случаи: {"code":…,"msg":…,"data":null}. Задача, не дошедшая до результата, не тарифицируется — удержанные кредиты возвращаются целиком.

КодАдресКогда
400 /api/v1/jobs/createTask Тело запроса — не разбираемый JSON.
401 /api/v1/jobs/createTask Ключа нет в заголовке Authorization, либо он неверный или отключён.
402 /api/v1/jobs/createTask Свободных кредитов меньше, чем удерживается под задачу.
403 /api/v1/jobs/createTask Аккаунт заблокирован: вызовы модели, пополнение и загрузка файлов ему закрыты. Ключи при этом не отключены — запрет лежит на аккаунте.
413 /api/v1/jobs/createTask Тело запроса больше 512 КиБ.
415 /api/v1/jobs/createTask Тело отправлено не как application/json или заголовок Content-Type не передан.
422 /api/v1/jobs/createTask Поле model пустое или его имени нет в каталоге, input — не объект, поле не из списка модели либо значение вне её перечисления. В сообщении перечислено, что принимается. Тот же код — если во входе наша ссылка на готовый результат старше 14 дней: файла уже нет, его нужно загрузить заново. И если модель не может выполнить именно это сочетание полей: в сообщении сказано, что поменять, — например, другие файлы-образцы.
429 /api/v1/jobs/createTask Больше 30 запросов в минуту на один ключ, больше 50 незавершённых задач на аккаунте либо таймаут: за час 5 запросов к моделям этого вида отклонены из-за чувствительной темы, и запуск всех моделей этого вида приостановлен. У такого отказа в теле есть поле timeout с временем окончания паузы, а в заголовке Retry-After — секунды до него.
500 /api/v1/jobs/createTask Поломка на нашей стороне. Подробности остаются в журнале шлюза и наружу не уходят.
401 /api/v1/jobs/recordInfo Ключа нет в заголовке Authorization, либо он неверный или отключён.
404 /api/v1/jobs/recordInfo Задачи с таким номером нет или она создана другим аккаунтом.
422 /api/v1/jobs/recordInfo Параметр taskId не передан.
429 /api/v1/jobs/recordInfo Больше 300 запросов в минуту на один ключ.
500 /api/v1/jobs/recordInfo Поломка на нашей стороне. Подробности остаются в журнале шлюза и наружу не уходят.

Пример вызова

task.sh
# 1. Поставить задачу — в ответе придёт её номер
TASK=$(curl -s https://api.gen202.com/api/v1/jobs/createTask \
  -H "Authorization: Bearer sk-ваш-ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "pixverse/6-max-text-to-video",
    "input": {
      "prompt": "Ginger cat in a white spacesuit floats in zero gravity above Earth. It slowly turns its head toward the camera, front paws drifting; sunlight glints across the helmet visor, the blue planet reflected in the glass. The camera eases backwards, revealing a solar panel at the edge of frame. Cinematic, soft rim light, shallow depth of field.",
      "aspect_ratio": "1:1",
      "quality": "720p",
      "duration": 3
    }
  }' | jq -r '.data.taskId')

# 2. Спрашивать состояние, пока задача не закончится: waiting, queuing и
#    generating означают «работа идёт», success и fail — окончательные
while true; do
  RECORD=$(curl -s "https://api.gen202.com/api/v1/jobs/recordInfo?taskId=$TASK" \
    -H "Authorization: Bearer sk-ваш-ключ")
  STATE=$(echo "$RECORD" | jq -r '.data.state')
  case "$STATE" in success|fail) break;; esac
  sleep 3
done

# 3. Забрать результат. Ссылка на файл лежит в resultJson — это строка JSON
#    внутри JSON, поэтому её разбирают вторым разбором (fromjson)
echo "$RECORD" | jq -r '.data |
  if .state == "fail"
  then "отказ \(.failCode): \(.failMsg)"
  else .resultJson | fromjson | .resultUrls[0]
  end'
task.py
import json
import time

import requests

headers = {"Authorization": "Bearer sk-ваш-ключ"}

# 1. Поставить задачу — в ответе придёт её номер
created = requests.post(
    "https://api.gen202.com/api/v1/jobs/createTask",
    headers=headers,
    json={
      "model": "pixverse/6-max-text-to-video",
      "input": {
        "prompt": "Ginger cat in a white spacesuit floats in zero gravity above Earth. It slowly turns its head toward the camera, front paws drifting; sunlight glints across the helmet visor, the blue planet reflected in the glass. The camera eases backwards, revealing a solar panel at the edge of frame. Cinematic, soft rim light, shallow depth of field.",
        "aspect_ratio": "1:1",
        "quality": "720p",
        "duration": 3
      }
    },
).json()
task_id = created["data"]["taskId"]

# 2. Спрашивать состояние, пока задача не закончится: waiting, queuing и
#    generating означают «работа идёт», success и fail — окончательные
while True:
    task = requests.get(
        "https://api.gen202.com/api/v1/jobs/recordInfo",
        headers=headers,
        params={"taskId": task_id},
    ).json()["data"]
    if task["state"] in ("success", "fail"):
        break
    time.sleep(3)

# 3. Разобрать итог. У неудачи причина в failCode и failMsg
if task["state"] == "fail":
    raise SystemExit("отказ " + task["failCode"] + ": " + task["failMsg"])

# resultJson — строка JSON внутри JSON, поэтому разбор второй
result = json.loads(task["resultJson"])
print(result["resultUrls"][0])
print("списано кредитов:", task["creditsConsumed"])

Пример проходит весь путь: ставит задачу, повторяет запрос состояния раз в 3 секунды, пока задача не закончится, и разбирает ответ до ссылки на файл. Разборов два, потому что поле resultJson — строка JSON внутри JSON. В теле первого запроса стоят обязательные поля модели и значения из её перечислений, поэтому он проходит проверку шлюза как есть. Подставить остаётся только свой ключ. Пример на оболочке разбирает ответ через jq; на Python своего ничего не нужно, кроме requests.

POST https://api.gen202.com/api/v1/jobs/createTask
GET https://api.gen202.com/api/v1/jobs/recordInfo?taskId=…

Ролик делается минуты, поэтому файл не приходит в ответ на запрос. Первый вызов ставит задачу и сразу отвечает её номером, второй по этому номеру отдаёт состояние задачи, а когда она готова — ссылку на результат. Ключ передаётся в обоих запросах заголовком Authorization: Bearer sk-… и выпускается в кабинете. На один ключ шлюз пропускает 30 постановок задачи и 300 запросов состояния в минуту.

Поля запроса

Значения проверяются до обращения к поставщику: поле не из списка модели или значение вне перечисления возвращают 422 и кредитов не тратят.

ПолеТипОбяз.Допустимые значения
model текст обязательное pixverse/6-max-image-to-video
input объект обязательное Параметры генерации — поля из таблицы ниже

Поля input

ПолеТипОбяз.Допустимые значения
prompt текст обязательное от 1 до 5 000 символов
image_urls список ссылок обязательное одна ссылка на изображение
quality значение из списка обязательное 360p · 540p · 720p · 1080p · без него шлюз подставит 720p
duration целое число обязательное целое от 1 до 15
generate_audio_switch да или нет опц. true или false
seed целое число опц. целое от 0 до 2 147 483 647

Ссылка на изображение принимается только полным адресом на http или https: не длиннее 2048 символов, на общедоступном сайте, без имени и пароля перед адресом и без порта, кроме 80 и 443. Относительный путь, а также адреса внутри сети — localhost, 127.0.0.1, 10.0.0.5, 192.168.1.2 — и имена без точки шлюз отклоняет ответом 422, к поставщику не обращаясь.

Ответ

Оба запроса отвечают одним конвертом: {"code":…,"msg":…,"data":…}, где code повторяет HTTP-статус, а полезное лежит в data. Тот же конверт приходит и при отказе — разбирать две формы ответа не нужно.

/api/v1/jobs/createTask

ПолеТипЧто в нём
data.taskId строка Номер задачи. Больше в ответе ничего нет и быть не может — работа только началась.

/api/v1/jobs/recordInfo

ПолеТипЧто в нём
data.taskId строка Номер задачи — тот же, что вернул createTask.
data.model строка Имя модели в том виде, в каком его прислал клиент.
data.state строка Состояние задачи: waiting, queuing, generating, success или fail.
data.param строка Параметры, с которыми задача создана, — строкой JSON внутри JSON.
data.resultJson строка Результат строкой JSON внутри JSON: {"resultUrls":["https://…"]} — разбирается вторым разбором. До завершения задачи — пустая строка.
data.failCode строка Код неудачи из таблицы ниже. У остальных задач — пустая строка.
data.failMsg строка Причина неудачи словами модели. Иначе пустая строка.
data.failComment строка Наш комментарий к словам модели, по-русски: что произошло. Есть не у всякой неудачи; иначе пустая строка.
data.costTime число Сколько задача заняла, миллисекунды. Пока не завершилась — null.
data.completeTime число Когда завершилась, миллисекунды эпохи Unix. Пока не завершилась — null.
data.createTime число Когда создана, миллисекунды эпохи Unix.
data.updateTime число Когда состояние менялось в последний раз, миллисекунды эпохи Unix.
data.creditsConsumed число Сколько кредитов списано. Ноль, пока задача не завершилась, и ноль у неудачной.

Состояния задачи

Состояние лежит в поле state ответа /api/v1/jobs/recordInfo. Первые три означают, что работа идёт: запрос надо повторить примерно через 3 секунды — чаще спрашивать нечего, столько же ждёт между опросами сам шлюз. Два последних состояния окончательные: после них задача не меняется.

stateЧто происходит
waiting Задача принята и стоит в очереди шлюза; поставщику она ещё не отправлена.
queuing Поставщик задачу принял и поставил в свою очередь.
generating Генерация идёт.
success Готово: ссылки на результат лежат в resultJson, в creditsConsumed — сколько списано.
fail Задача не удалась: причина в failCode и failMsg, удержанные кредиты возвращены целиком.

Задача идёт, пока модель не пришлёт результат или отказ. Причина неудачи приходит двумя полями: failCode из таблицы ниже и failMsg словами.

failCodeЧто произошло
501 Поставщик вернул отказ: генерация не удалась.
408 Модель не приняла задачу за 60 минут или не отвечала сутки.
404 Поставщик не знает такой задачи.
429 Поставщик отбил создание задачи по своему лимиту.
500 Поломка на нашей стороне; подробности остаются в журнале шлюза.

Слова модели в failMsg бывают непонятны, поэтому к части неудач шлюз добавляет поле failComment — наш комментарий по-русски о том, что произошло. У остальных неудач это поле пустое.

failMsg, примерfailComment
Image fetch failed. Модель не смогла скачать файл из нашего хранилища. Вероятно, это разовый сбой, повторите запрос. Если ошибка повторится — напишите в поддержку: hi@gen202.com
File type not supported По ссылке открывается страница сайта, а не файл. Загрузите сам файл или дайте прямую ссылку на него.
image #2: width and height must be between 300px and 6000px (got 262x377) (invalid_asset_material) Одна из картинок слишком маленькая. Seedance принимает картинки от 300 до 6000 пикселей по каждой стороне.
Seedance identified your task as video editing based on your prompt. Seedance понял запрос как редактирование присланного видео. В песочнице и чате выберите режим «Редактирование видео», в API поставьте пропорции adaptive и длительность −1.
Seedance identified your task as video extension based on your prompt. Seedance решил, что присланное видео нужно продлить. Для этого поставьте пропорции adaptive, а если продлевать не нужно — уберите эту просьбу из промта.
generate task timeout. Модель не успела создать результат и сама остановила задачу.
Internal Error Модель остановилась и не назвала причину. Возможно, она перегружена или временно недоступна. Или запрос отклонён из-за чувствительной темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды.
The request failed because the input image may contain sensitive information. Модель отклонила загруженную картинку из-за чувствительной темы. Такие темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды.
The generated content was filtered by the safety system. Модель отклонила запрос из-за чувствительной темы. Такие темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды.
The model provider rejected or dropped the task creation request. Модель остановилась и не назвала причину. Возможно, она перегружена или временно недоступна. Или запрос отклонён из-за чувствительной темы: нагота и откровенные сцены, дети, известные люди, насилие, чужие персонажи и бренды.
No result from the provider within the task deadline. Модель либо не приняла задачу за 15 минут (у видео — за 60), либо не ответила за сутки.

Ссылка на готовый файл живёт 14 дней — столько его хранит поставщик. Файл, который нужен дольше, скачивайте к себе сразу после того, как задача пришла в состояние success.

Отказы

Тело отказа одно на все случаи: {"code":…,"msg":…,"data":null}. Задача, не дошедшая до результата, не тарифицируется — удержанные кредиты возвращаются целиком.

КодАдресКогда
400 /api/v1/jobs/createTask Тело запроса — не разбираемый JSON.
401 /api/v1/jobs/createTask Ключа нет в заголовке Authorization, либо он неверный или отключён.
402 /api/v1/jobs/createTask Свободных кредитов меньше, чем удерживается под задачу.
403 /api/v1/jobs/createTask Аккаунт заблокирован: вызовы модели, пополнение и загрузка файлов ему закрыты. Ключи при этом не отключены — запрет лежит на аккаунте.
413 /api/v1/jobs/createTask Тело запроса больше 512 КиБ.
415 /api/v1/jobs/createTask Тело отправлено не как application/json или заголовок Content-Type не передан.
422 /api/v1/jobs/createTask Поле model пустое или его имени нет в каталоге, input — не объект, поле не из списка модели либо значение вне её перечисления. В сообщении перечислено, что принимается. Тот же код — если во входе наша ссылка на готовый результат старше 14 дней: файла уже нет, его нужно загрузить заново. И если модель не может выполнить именно это сочетание полей: в сообщении сказано, что поменять, — например, другие файлы-образцы.
429 /api/v1/jobs/createTask Больше 30 запросов в минуту на один ключ, больше 50 незавершённых задач на аккаунте либо таймаут: за час 5 запросов к моделям этого вида отклонены из-за чувствительной темы, и запуск всех моделей этого вида приостановлен. У такого отказа в теле есть поле timeout с временем окончания паузы, а в заголовке Retry-After — секунды до него.
500 /api/v1/jobs/createTask Поломка на нашей стороне. Подробности остаются в журнале шлюза и наружу не уходят.
401 /api/v1/jobs/recordInfo Ключа нет в заголовке Authorization, либо он неверный или отключён.
404 /api/v1/jobs/recordInfo Задачи с таким номером нет или она создана другим аккаунтом.
422 /api/v1/jobs/recordInfo Параметр taskId не передан.
429 /api/v1/jobs/recordInfo Больше 300 запросов в минуту на один ключ.
500 /api/v1/jobs/recordInfo Поломка на нашей стороне. Подробности остаются в журнале шлюза и наружу не уходят.

Пример вызова

task.sh
# 1. Поставить задачу — в ответе придёт её номер
TASK=$(curl -s https://api.gen202.com/api/v1/jobs/createTask \
  -H "Authorization: Bearer sk-ваш-ключ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "pixverse/6-max-image-to-video",
    "input": {
      "prompt": "Ginger cat in a white spacesuit floats in zero gravity above Earth. It slowly turns its head toward the camera, front paws drifting; sunlight glints across the helmet visor, the blue planet reflected in the glass. The camera eases backwards, revealing a solar panel at the edge of frame. Cinematic, soft rim light, shallow depth of field.",
      "image_urls": [
        "https://gen202.com/assets/sample-nano-banana-pro.jpg"
      ],
      "quality": "720p",
      "duration": 3
    }
  }' | jq -r '.data.taskId')

# 2. Спрашивать состояние, пока задача не закончится: waiting, queuing и
#    generating означают «работа идёт», success и fail — окончательные
while true; do
  RECORD=$(curl -s "https://api.gen202.com/api/v1/jobs/recordInfo?taskId=$TASK" \
    -H "Authorization: Bearer sk-ваш-ключ")
  STATE=$(echo "$RECORD" | jq -r '.data.state')
  case "$STATE" in success|fail) break;; esac
  sleep 3
done

# 3. Забрать результат. Ссылка на файл лежит в resultJson — это строка JSON
#    внутри JSON, поэтому её разбирают вторым разбором (fromjson)
echo "$RECORD" | jq -r '.data |
  if .state == "fail"
  then "отказ \(.failCode): \(.failMsg)"
  else .resultJson | fromjson | .resultUrls[0]
  end'
task.py
import json
import time

import requests

headers = {"Authorization": "Bearer sk-ваш-ключ"}

# 1. Поставить задачу — в ответе придёт её номер
created = requests.post(
    "https://api.gen202.com/api/v1/jobs/createTask",
    headers=headers,
    json={
      "model": "pixverse/6-max-image-to-video",
      "input": {
        "prompt": "Ginger cat in a white spacesuit floats in zero gravity above Earth. It slowly turns its head toward the camera, front paws drifting; sunlight glints across the helmet visor, the blue planet reflected in the glass. The camera eases backwards, revealing a solar panel at the edge of frame. Cinematic, soft rim light, shallow depth of field.",
        "image_urls": [
          "https://gen202.com/assets/sample-nano-banana-pro.jpg"
        ],
        "quality": "720p",
        "duration": 3
      }
    },
).json()
task_id = created["data"]["taskId"]

# 2. Спрашивать состояние, пока задача не закончится: waiting, queuing и
#    generating означают «работа идёт», success и fail — окончательные
while True:
    task = requests.get(
        "https://api.gen202.com/api/v1/jobs/recordInfo",
        headers=headers,
        params={"taskId": task_id},
    ).json()["data"]
    if task["state"] in ("success", "fail"):
        break
    time.sleep(3)

# 3. Разобрать итог. У неудачи причина в failCode и failMsg
if task["state"] == "fail":
    raise SystemExit("отказ " + task["failCode"] + ": " + task["failMsg"])

# resultJson — строка JSON внутри JSON, поэтому разбор второй
result = json.loads(task["resultJson"])
print(result["resultUrls"][0])
print("списано кредитов:", task["creditsConsumed"])

Пример проходит весь путь: ставит задачу, повторяет запрос состояния раз в 3 секунды, пока задача не закончится, и разбирает ответ до ссылки на файл. Разборов два, потому что поле resultJson — строка JSON внутри JSON. В теле первого запроса стоят обязательные поля модели и значения из её перечислений, поэтому он проходит проверку шлюза как есть. Заменить в нём нужно два значения: свой ключ и ссылку на изображение — в примере стоит образец с нашего сайта. Пример на оболочке разбирает ответ через jq; на Python своего ничего не нужно, кроме requests.

Остальные модели этого семейства и их поля — в разделе документации Видео.

Что делает нейросеть PixVerse V6 Max

PixVerse V6 Max — видеомодель PixVerse, которая появилась в API разработчика 22 октября 2026 года. У GEN202 она стоит от 3,65 ₽ до 17 ₽ за секунду, и сумму задают разрешение и звук. Снимает модель по описанию или по одному изображению, с которого начинается видео.

На странице у неё два режима — «Текст» и «Кадры», — и в поле model они уходят разными именами: pixverse/6-max-text-to-video и pixverse/6-max-image-to-video. Длительность, разрешения и ставки у режимов общие, а различает их изображение первого кадра.

Звук модель добавляет по флагу generate_audio_switch, и в каждом разрешении секунда со звуком стоит дороже, чем без него. Обе ставки по каждому разрешению собраны в таблице цен, а все поля запроса разобраны в разделе «PixVerse».

Как снять видео в PixVerse V6 Max: по описанию или с первого кадра

Запрос к PixVerse V6 Max отправляют на адрес GEN202, а видео собирает PixVerse. Все поля стоят в песочнице: там видео запускают, смотрят и скачивают файлом.

Счёт посекундный: заказанная длина умножается на ставку, которую задают разрешение и звук. Самый короткий запуск — 1 секунда в 360p без звука — стоит 3,65 ₽.

Порядок у двух режимов общий, а разница в одном шаге — в изображении для первого кадра.

  1. Выберите режим. «Текст» снимает по одному описанию, «Кадры» добавляет к нему изображение, с которого начнётся видео.
  2. Опишите сцену. Поле prompt вмещает до 5 000 знаков: персонажи, действие, свет и движение камеры.
  3. Приложите изображение. В режиме «Кадры» ссылку на него кладут в список image_urls, и ссылка там одна. Форму кадра видео берёт с этого изображения, а в режиме «Текст» её выбирают полем aspect_ratio.
  4. Выберите длину, разрешение и звук. Поле duration принимает от 1 до 15 секунд, quality — 360p, 540p, 720p и 1080p, а флаг generate_audio_switch добавляет звук. Все три выбора меняют сумму.
  5. Начните с короткого теста. Описание доводят на коротком видео в 360p без звука, а полную длину, 1080p и звук ставят уже готовому описанию.

Чем различаются режимы PixVerse V6 Max

У PixVerse V6 Max режимы различаются только входом: ставки, длительность и разрешения у них одни и те же.

РежимЧто на входеФорма кадраИмя для поля model
«Текст»описаниеодна из 8, поле aspect_ratiopixverse/6-max-text-to-video
«Кадры»описание и одно изображениекак у изображенияpixverse/6-max-image-to-video

Обязательные поля в режиме «Текст» — prompt, aspect_ratio, quality и duration, в режиме «Кадры» — prompt, image_urls, quality и duration. Флаг звука и поле seed стоят в обоих режимах и заполняются по желанию.

Выпуски PixVerse V6: имена у PixVerse и даты

PixVerse V6 Max входит в линейку V6, которую PixVerse объявила 30 марта 2026 года. В таблице — имя у разработчика, дата выхода, что умеет выпуск и имя для поля model.

Имя у PixVerseДата выходаЧто умеетИмя для поля model
PixVerse V6 Max22 октября 2026Видео по описанию и по одному изображению, звук по флагу; от 1 до 15 секунд, до 1080ppixverse/6-max-text-to-video, pixverse/6-max-image-to-video
PixVerse V630 марта 2026Первая модель линейки V6—

Прочерк в строке PixVerse V6 значит, что на этой странице работает PixVerse V6 Max, и в поле model уходят имена её режимов.

Дату V6 Max разработчик записал строкой журнала изменений своего API: «2026-10-22 | Added V6-max support for Text-to-Video and Image-to-Video». Перевод наш: «22 октября 2026 года — добавлена поддержка V6-max для видео по тексту и по изображению». Страница — журнал изменений API PixVerse.

Дата V6 взята из объявления о выпуске в блоге PixVerse, и обе даты приведены по страницам разработчика на 6 ноября 2026 года.

Какой длины и в каком разрешении выходит видео PixVerse V6 Max

Длину PixVerse V6 Max задают полем duration — целым числом секунд от 1 до 15. Оплачивается каждая заказанная секунда.

Разрешений 4: 360p, 540p, 720p и 1080p. Выбирают их полем quality, и в обоих режимах это поле обязательное.

Форм кадра у режима «Текст» 8: 16:9, 4:3, 1:1, 3:4, 9:16, 2:3, 3:2, 21:9. В режиме «Кадры» видео повторяет пропорции присланного изображения.

Звук меняет ставку в каждом разрешении: в 360p секунда стоит 3,65 ₽ без звука и 5,5 ₽ со звуком, в 1080p — 13,35 ₽ и 17 ₽. Остальные сочетания стоят в таблице цен.

Что кладут в запрос PixVerse V6 Max кроме описания

Описание в поле prompt нужно в обоих режимах PixVerse V6 Max и вмещает до 5 000 знаков.

Изображение для режима «Кадры» передают ссылкой в списке image_urls, и ссылка в нём ровно одна. С этого кадра видео начинается, а дальше сцену ведёт описание.

Флаг generate_audio_switch со значением true добавляет к видео звук. По умолчанию флаг выключен, поэтому звук включают явно.

Поле seed принимает целое число от 0 до 2 147 483 647. Полный список полей PixVerse V6 Max с допустимыми значениями стоит в таблице выше.

Что PixVerse говорит о модели PixVerse V6 Max

О V6 Max разработчик пишет в документации своего API, и главное о ней стоит в карте возможностей моделей — в колонке с подписью «Text-to-video and image-to-video with optional native audio». Перевод наш: «Видео по тексту и по изображению, со звуком по желанию». Страница — карта возможностей моделей PixVerse.

В той же колонке записаны вход «Text, images», длительность «1-15 seconds», разрешения «360p / 540p / 720p / 1080p» и формы кадра «16:9 / 9:16 / 4:3 / 3:4 / 1:1 / 2:3 / 3:2 / 21:9». Перевод наш: на входе текст и изображения, длина от 1 до 15 секунд. В форме GEN202 те же границы: длительность от 1 до 15 секунд и разрешения 360p, 540p, 720p и 1080p.

Звук в схеме запроса разработчика задаёт поле generate_audio_switch — флаг типа «boolean» со значением по умолчанию «false», то есть выключенный, пока его не включат. Страница — схема запроса PixVerse для видео по тексту.

Самый короткий запрос разработчик показывает примером в той же схеме: описание «A blue glass marble rolls across a clean white table», длительность 1, разрешение 360p и форма кадра 1:1. Перевод наш: «Синий стеклянный шарик катится по чистому белому столу».

Слова PixVerse о V6 Max приведены по документации API разработчика на 6 ноября 2026 года.

Какие пределы PixVerse ставит у PixVerse V6 Max

Изображение для первого кадра разработчик принимает так: «Supported formats: JPEG, PNG, and WebP; the file must be smaller than 20 MB, with neither dimension exceeding 10,000 pixels». Перевод наш: «Форматы — JPEG, PNG и WebP; файл меньше 20 МБ, и ни одна сторона не длиннее 10 000 точек». Страница — загрузка изображения в документации PixVerse.

Изображение на запрос одно: в схеме разработчика его передают одним полем img_id с подписью «Uploaded image ID. Required for ordinary image generation». Перевод наш: «Номер загруженного изображения; нужен для обычного видео из изображения». В форме GEN202 то же задаёт одна ссылка в image_urls.

Длительность в схеме разработчика — целое число, а разрешение quality — обязательное поле без значения по умолчанию, поэтому в запросе к V6 Max его называют всегда.

Что показали независимые проверки PixVerse V6 Max

Сторонний обзор PixVerse V6 Max выложил канал Oprelia AI 4 ноября 2026 года. В описании к видео автор называет модель так: «PixVerse has released V6 Max, an update to its V6 video model focused on control». Перевод наш: «PixVerse выпустила V6 Max — обновление своей модели V6 с упором на управляемость». Видео — Oprelia AI, 4 ноября 2026.

Обзор снят вне GEN202, а слова автора приведены по описанию к его видео на 6 ноября 2026 года.

Официальный канал PixVerse — видео «PixVerse V6 is here» от 3 июня 2026 года. Оно вышло раньше PixVerse V6 Max и посвящено PixVerse V6 — первой модели линейки V6. Длится 2 минуты 40 секунд.

Вопросы и ответы

Как вызвать PixVerse V6 Max через API из России?
Запрос уходит на api.gen202.com, и это адрес GEN202, а не адрес PixVerse: обращения за границу в вызове PixVerse V6 Max нет, поэтому VPN не требуется. В поле model уходит идентификатор выбранного варианта: текст в видео (pixverse/6-max-text-to-video), первый кадр (pixverse/6-max-image-to-video). Порядок вызова PixVerse V6 Max с примерами кода разобран в документации.
Сколько стоит PixVerse V6 Max
Цена за секунду PixVerse V6 Max — от 7.3 кр. (3,65 ₽ · $0.0332) до 34 кр. (17 ₽ · $0.1545). У PixVerse V6 Max списывается фактический расход, а задача, завершившаяся ошибкой, не тарифицируется вовсе.
Нужны ли VPN и иностранная карта для PixVerse V6 Max
Ни то, ни другое: обращение к PixVerse V6 Max идёт на наш адрес, а расчёты с PixVerse ведём мы, поэтому договариваться с ним клиенту не о чем. Оплата рублями с карты российского банка.
Что PixVerse V6 Max принимает на вход
Обязательные поля запроса к PixVerse V6 Max: Текст в видео — prompt — от 1 до 5 000 символов; aspect_ratio — 16:9 · 4:3 · 1:1 · 3:4 · 9:16 · 2:3 · 3:2 · 21:9; quality — 360p · 540p · 720p · 1080p; duration — целое от 1 до 15. Первый кадр — prompt — от 1 до 5 000 символов; image_urls — одна ссылка на изображение; quality — 360p · 540p · 720p · 1080p; duration — целое от 1 до 15. Остальные поля необязательны.
Как подключить PixVerse V6 Max API и сделать первый вызов
Войти на сайт и выпустить ключ в кабинете: при первом входе начисляется 50 кредитов, и этот же ключ открывает PixVerse V6 Max вместе с остальным каталогом. Собственного ключа PixVerse и договора с ним для вызова PixVerse V6 Max не нужно.
Какая компания разработала PixVerse V6 Max
PixVerse V6 Max разработала компания PixVerse: в её API модель появилась 22 октября 2026 года. Это видеомодель, которая снимает видео по описанию или по одному изображению, а звук добавляет по желанию.
PixVerse V6 Max и PixVerse V6 — это одна модель
Это две модели одной линейки: PixVerse V6 разработчик объявил 30 марта 2026 года, а V6 Max пришла в его API 22 октября 2026 года под своим именем v6-max. На этой странице работает PixVerse V6 Max — в режимах по описанию и по изображению первым кадром.
Есть ли у PixVerse V6 Max официальный сайт
Сайт компании — pixverse.ai, а возможности V6 Max PixVerse описывает в карте возможностей моделей своего API. Здесь PixVerse V6 Max вызывают по API ключу GEN202 и оплачивают рублями.
Как включить звук в PixVerse V6 Max
Звук включает флаг generate_audio_switch со значением true, а по умолчанию он выключен. Секунда PixVerse V6 Max со звуком в 1080p стоит 17 ₽, без звука — 13,35 ₽.