Генерирует видео по тексту или из изображения, умеет делать переход между двумя кадрами и продлевать готовый ролик. Цена зависит от разрешения и аудио: 360p - 5 ₽/сек. (7 ₽/сек. с аудио), 540p - 7 ₽/сек. (9 ₽/сек. с аудио), 720p - 9 ₽/сек. (12 ₽/сек. с аудио), 1080p - 18 ₽/сек. (23 ₽/сек. с аудио).
Общая документация Public API · API-ключ можно создать в настройках аккаунта
PixVerse 6.0 делает короткие ролики от 1 до 15 секунд в четырёх режимах: оживляет картинку, рисует видео по тексту, строит переход между двумя кадрами и продлевает уже готовое видео. Умеет добавлять звук, собирать ролик из нескольких клипов и оптимизировать промпт сама. Это рабочий инструмент для сторис, рекламных тизеров, анимации иллюстраций и аватарок.
Каждый вызов создаёт асинхронную операцию: вы получаете id, а результат забираете отдельным запросом статуса.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус queued.Режимы, которые доступны через API:
image_to_video - оживить одну картинку по описанию движения.text_to_video - видео только по тексту, с выбором пропорций.transition - переход от первого кадра к последнему: два изображения и описание того, что происходит между ними.extend - продлить готовый ролик по ссылке на видео.{
"tool": "pixverse-6-0",
"input": {
"...": "..."
}
}
tool - slug нейросети, здесь всегда "pixverse-6-0".input - параметры конкретного запуска.input, без дополнительного вложенного объекта input.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
pixverse_generation_type | enum | Нет | Режим: image_to_video (если не передать), text_to_video, transition или extend. |
prompt | string | Да | Что должно происходить в кадре, от 3 до 4000 символов. Для extend - что происходит дальше. |
image_url | string (url) | Нет | Исходная картинка. Обязательна в режиме image_to_video. Только http/https, форматы .jpg, .jpeg, .png, .webp. |
first_image_url | string (url) | Нет | Первый кадр. Обязателен в режиме transition. Те же форматы. |
end_image_url | string (url) | Нет | Последний кадр. Обязателен в режиме transition. Те же форматы. |
video_url | string (url) | Нет | Ролик, который нужно продлить. Обязателен в режиме extend. Форматы .mp4, .mov, .webm. |
aspect_ratio | enum | Нет | Пропорции результата в режимах text_to_video и transition: 16:9 (если не передать), 4:3, 1:1, 3:4, 9:16, 2:3, 3:2, 21:9. В остальных режимах пропорции берутся из исходного файла. |
resolution | enum | Нет | Разрешение: 360p, 540p, 720p (если не передать) или 1080p. Влияет на цену. |
duration | number | Нет | Длительность в секундах, целое число от 1 до 15. Если не передать - 5. |
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "image_to_video",
"prompt": "Девушка на фото поворачивает голову к камере и улыбается, волосы колышет лёгкий ветер, камера медленно наезжает",
"image_url": "https://cdn.example.com/source-image-1.jpg",
"resolution": "720p",
"duration": 5,
"generate_audio_switch": true
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "image_to_video",
"prompt": "Девушка на фото поворачивает голову к камере и улыбается, волосы колышет лёгкий ветер, камера медленно наезжает",
"image_url": "https://cdn.example.com/source-image-1.jpg",
"resolution": "720p",
"duration": 5,
"generate_audio_switch": true
}
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "image_to_video",
"prompt": "Девушка на фото поворачивает голову к камере и улыбается, волосы колышет лёгкий ветер, камера медленно наезжает",
"image_url": "https://cdn.example.com/source-image-1.jpg",
"resolution": "720p",
"duration": 5,
"generate_audio_switch": True
}
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "text_to_video",
"prompt": "Кинематографичный пролёт над ночным городом, неоновые вывески, дождь, отражения на асфальте",
"aspect_ratio": "9:16",
"resolution": "540p",
"duration": 8,
"use_negative_prompt": true,
"negative_prompt": "текст, водяные знаки, размытие"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "text_to_video",
"prompt": "Кинематографичный пролёт над ночным городом, неоновые вывески, дождь, отражения на асфальте",
"aspect_ratio": "9:16",
"resolution": "540p",
"duration": 8,
"use_negative_prompt": true,
"negative_prompt": "текст, водяные знаки, размытие"
}
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "text_to_video",
"prompt": "Кинематографичный пролёт над ночным городом, неоновые вывески, дождь, отражения на асфальте",
"aspect_ratio": "9:16",
"resolution": "540p",
"duration": 8,
"use_negative_prompt": True,
"negative_prompt": "текст, водяные знаки, размытие"
}
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "transition",
"prompt": "Бутон медленно раскрывается в цветок, свет становится теплее",
"first_image_url": "https://cdn.example.com/source-image-1.jpg",
"end_image_url": "https://cdn.example.com/source-image-2.jpg",
"aspect_ratio": "1:1",
"resolution": "720p",
"duration": 5
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "transition",
"prompt": "Бутон медленно раскрывается в цветок, свет становится теплее",
"first_image_url": "https://cdn.example.com/source-image-1.jpg",
"end_image_url": "https://cdn.example.com/source-image-2.jpg",
"aspect_ratio": "1:1",
"resolution": "720p",
"duration": 5
}
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "transition",
"prompt": "Бутон медленно раскрывается в цветок, свет становится теплее",
"first_image_url": "https://cdn.example.com/source-image-1.jpg",
"end_image_url": "https://cdn.example.com/source-image-2.jpg",
"aspect_ratio": "1:1",
"resolution": "720p",
"duration": 5
}
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "extend",
"prompt": "Камера продолжает движение вперёд, на горизонте появляется рассвет",
"video_url": "https://cdn.example.com/source-video-1.mp4",
"resolution": "720p",
"duration": 5
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "extend",
"prompt": "Камера продолжает движение вперёд, на горизонте появляется рассвет",
"video_url": "https://cdn.example.com/source-video-1.mp4",
"resolution": "720p",
"duration": 5
}
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
"tool": "pixverse-6-0",
"input": {
"pixverse_generation_type": "extend",
"prompt": "Камера продолжает движение вперёд, на горизонте появляется рассвет",
"video_url": "https://cdn.example.com/source-video-1.mp4",
"resolution": "720p",
"duration": 5
}
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "pixverse-6-0",
"cost": 45,
"balance_after": 495,
"created_at": "2026-09-17T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "pixverse-6-0",
"cost": 45,
"created_at": "2026-09-17T12:00:00Z",
"completed_at": "2026-09-17T12:03:10Z",
"result": {
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/pixverse-6-0/video-1.mp4"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "pixverse-6-0",
"cost": 45,
"created_at": "2026-09-17T12:00:00Z",
"completed_at": "2026-09-17T12:00:20Z",
"result": null,
"error_message": "Произошла ошибка, сервис временно недоступен. Попробуйте повторить запрос позже."
}
После создания операции сохраните id и проверяйте её статус запросом:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const response = await fetch(
'https://bratuha.ru/api/v1/operations/op_uuid-123',
{
headers: {
Authorization: 'Bearer brth_ваш_ключ',
},
}
)
const data = await response.json()
Пока операция выполняется, status будет queued или processing. Опрашивайте статус раз в 5-10 секунд.
После успешного завершения result содержит одно видео:
{
"type": "video",
"urls": [
"https://storage.bratuha.ru/results/pixverse-6-0/video-1.mp4"
]
}
type всегда равен "video".urls содержит одну ссылку на MP4.duration; ставка зависит от resolution и generate_audio_switch:| Разрешение | Без аудио | С аудио |
|---|---|---|
360p | 5 ₽/сек | 7 ₽/сек |
540p | 7 ₽/сек | 9 ₽/сек |
720p | 9 ₽/сек | 12 ₽/сек |
1080p | 18 ₽/сек | 23 ₽/сек |
720p, 5 секунд, без аудио - 45 ₽; 1080p, 8 секунд, с аудио - 184 ₽.cost ответа. Если операция завершилась с ошибкой, деньги возвращаются на баланс автоматически.POST /api/v1/operations не идемпотентен: каждый повторный запрос создаёт новую операцию и списывает деньги.queued проверяйте статус по id.http/https ссылки, без localhost и приватных адресов. HEIC/HEIF принимаются только при загрузке через форму сайта, по URL в API - нет.image_to_video - image_url, в transition - оба кадра, в extend - video_url. Лишние ссылки для других режимов игнорируются.transition берите кадры одного размера и похожей композиции: так переход получается плавным, а не «телепортом».extend продлевается именно поданный ролик, поэтому ссылка должна вести на короткое видео хорошего качества; длинные файлы обрабатываются дольше и дороже по времени ожидания.1080p заметно дороже и дольше: проверьте идею на 540p, а финал делайте в высоком разрешении.generate_audio_switch | boolean | Нет | Добавить звуковую дорожку. По умолчанию выключено; включение повышает ставку за секунду. |
generate_multi_clip_switch | boolean | Нет | Собрать ролик из нескольких сменяющихся сцен вместо одного непрерывного движения. Не работает в extend. |
thinking_type | enum | Нет | Оптимизация промпта: auto (если не передать), enabled или disabled. Не работает в extend. |
use_negative_prompt | boolean | Нет | Передайте true, чтобы учитывался negative_prompt. |
negative_prompt | string | Нет | Чего не должно быть в кадре, до 4000 символов. Работает только вместе с use_negative_prompt: true. |