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).
кр. — кредиты, покупаются за рубли.
работает
работает
Песочница
Ещё настройки
Чтобы создать видео — войдите и получите 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 } }
{
"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
}
}
Ещё настройки
Чтобы создать видео — войдите и получите 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 } }
{
"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
Ролик делается минуты, поэтому файл не приходит в ответ на запрос. Первый вызов
ставит задачу и сразу отвечает её номером, второй по этому номеру отдаёт состояние задачи, а когда
она готова — ссылку на результат. Ключ передаётся в обоих запросах заголовком
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 | Поломка на нашей стороне. Подробности остаются в журнале шлюза и наружу не уходят. |
Пример вызова
# 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'
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.
Ролик делается минуты, поэтому файл не приходит в ответ на запрос. Первый вызов
ставит задачу и сразу отвечает её номером, второй по этому номеру отдаёт состояние задачи, а когда
она готова — ссылку на результат. Ключ передаётся в обоих запросах заголовком
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 | Поломка на нашей стороне. Подробности остаются в журнале шлюза и наружу не уходят. |
Пример вызова
# 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'
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 ₽.
Порядок у двух режимов общий, а разница в одном шаге — в изображении для первого кадра.
- Выберите режим. «Текст» снимает по одному описанию, «Кадры» добавляет к нему изображение, с которого начнётся видео.
- Опишите сцену. Поле prompt вмещает до 5 000 знаков: персонажи, действие, свет и движение камеры.
- Приложите изображение. В режиме «Кадры» ссылку на него кладут в список image_urls, и ссылка там одна. Форму кадра видео берёт с этого изображения, а в режиме «Текст» её выбирают полем aspect_ratio.
- Выберите длину, разрешение и звук. Поле duration принимает от 1 до 15 секунд, quality — 360p, 540p, 720p и 1080p, а флаг generate_audio_switch добавляет звук. Все три выбора меняют сумму.
- Начните с короткого теста. Описание доводят на коротком видео в 360p без звука, а полную длину, 1080p и звук ставят уже готовому описанию.
Чем различаются режимы PixVerse V6 Max
У PixVerse V6 Max режимы различаются только входом: ставки, длительность и разрешения у них одни и те же.
| Режим | Что на входе | Форма кадра | Имя для поля model |
|---|---|---|---|
| «Текст» | описание | одна из 8, поле aspect_ratio | pixverse/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 Max | 22 октября 2026 | Видео по описанию и по одному изображению, звук по флагу; от 1 до 15 секунд, до 1080p | pixverse/6-max-text-to-video, pixverse/6-max-image-to-video |
| PixVerse V6 | 30 марта 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 года.