Wan 3.0
Создавайте видео длительностью 2–30 секунд в 480p, 720p или 1080p по тексту, одному или нескольким изображениям либо референсным видео и аудио.
- Асинхронная обработка: запрос создания возвращает ID задачи. Видео будет доступно после её успешного завершения.
- Ролики длиной 2–30 секунд за один запрос;
duration— целое число секунд. - Четыре варианта ввода: только текст, одно изображение, несколько изображений (до 10) либо референсные видео и аудио (до 5 каждого типа). Изображения нельзя сочетать с референсами.
- Цена зависит от разрешения и запрошенного числа секунд. Задача, завершившаяся ошибкой, не оплачивается.
Открывает модель в API Explorer. Введите свой API-ключ BeatAPI, чтобы создать задачу. Это настоящий запрос: его стоимость спишется с вашего баланса.
Идентификаторы моделей
Обе модели Wan 3.0 используют один адрес API и одинаковые поля запроса, но допустимые диапазоны длительности различаются. Значения ниже взяты непосредственно из контракта шлюза.
Адрес API и авторизация
POST https://api.beatapi.io/v1/videos/tasks
Authorization
string
Обязательно
Передавайте API-ключ BeatAPI как Bearer <BEATAPI_API_KEY>. Создать ключ можно в панели управления. Храните ключи на сервере, а не в коде браузерного или мобильного приложения.
Передавайте тело запроса в JSON с заголовком Content-Type: application/json. Idempotency-Key необязателен. Для каждого логического запроса используйте уникальное значение длиной не более 255 символов и повторно используйте его только для отправки точно такого же тела. В течение 24 часов повтор с тем же ключом и телом возвращает первый ответ с заголовком Idempotent-Replayed: true. Тот же ключ с другим телом возвращает 409 idempotency_conflict. Ответы, отличные от 2xx, не сохраняются, поэтому повтор после 400 или 402 выполняется заново.
Как выполняется запрос
Создайте задачу
Отправьте перечисленные ниже параметры методом POST на указанный адрес. Ответ 201 означает, что задача принята, а её стоимость зарезервирована на балансе. Обработка идёт в фоновом режиме. Сохраните data.id.
Дождитесь завершения
Вызывайте GET /v1/tasks/{task_id}, выдерживая между вызовами data.poll_after_seconds (5 с для изображений, 8 с для видео), пока status не станет succeeded или failed. Можно также настроить вебхук для событий task.succeeded и task.failed. Сохраняйте опрос как резервный способ проверки: задача, остановленная по тайм-ауту обработки, не отправляет событие.
Сохраните результат
При succeeded скачайте файлы по всем ссылкам data.output.media[].url и сохраните нужные результаты у себя. BeatAPI не гарантирует срок доступности этих ссылок. При failed прочитайте data.error_code и data.error_message: зарезервированная сумма возвращена на баланс, а data.retryable показывает, может ли повтор того же запроса завершиться успешно.
Режимы ввода
Параметры запроса
model
string
Обязательно
Модель, которую нужно вызвать.
Значение: wan-3.0
Если значение неверно
- Поле отсутствует:
"model" is required - На этот адрес API отправлена модель изображений:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
prompt
string
Обязательно
Что должно происходить в видео: объект, действие и работа камеры. Если используете референсы, укажите назначение каждого материала.
Длина: 1–5000 символов
- Длина измеряется в символах. Иероглиф CJK считается одним символом.
Если значение неверно
- Поле отсутствует:
"prompt" is required - Пустое значение или превышена допустимая длина:
"prompt" has an unsupported length - Значение не является строкой:
"prompt" must be a string
images
string[]
Необязательно
Изображения, из которых нужно создать видео: одно либо несколько в нужном порядке использования.
Число элементов: 1–10
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.
- Каждая ссылка должна быть общедоступной и начинаться с
https://. При создании задачи шлюз не скачивает и не измеряет файлы. - Нельзя передавать вместе с
reference_videosилиreference_audios. - Если не указать
aspect_ratioиresolution, сохраняются значения по умолчанию16:9и720p, в том числе при входных изображениях: шлюз не определяет их по изображению. Задайте нужные пропорции явно.
Если значение неверно
- Больше 10 ссылок:
"images" accepts at most 10 items - Пустой массив:
"images" requires at least 1 item - Значение не является массивом:
"images" must be an array - Ссылка не начинается с https://:
"images[0]" must be a public HTTPS URL - Передано вместе с полем референсов:
Cannot combine "images" with reference inputs in one task
reference_videos
string[]
Необязательно
Видео, которые модель использует как референсы для нового ролика.
Число элементов: 1–5
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.
- До 5 общедоступных ссылок
https://. При создании задачи шлюз не скачивает, не измеряет и не ограничивает эти ролики, поэтому неподходящий для модели файл вызовет ошибку после отправки с возвратом средств. - Нельзя передавать вместе с
images.
Если значение неверно
- Больше 5 ссылок:
"reference_videos" accepts at most 5 items - Передано вместе с
images:Cannot combine "images" with reference inputs in one task
reference_audios
string[]
Необязательно
Музыкальные, голосовые или звуковые фрагменты, которые модель использует как референсы.
Число элементов: 1–5
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.
- До 5 общедоступных ссылок
https://. При создании задачи файлы не скачиваются и не измеряются. - Нельзя передавать вместе с
images.
Если значение неверно
- Больше 5 ссылок:
"reference_audios" accepts at most 5 items
duration
integer
НеобязательноПо умолчанию: 5
Длительность видео в секундах, целое число.
По умолчанию: 5
Диапазон: 2–30
- Если параметр не указан, используется и оплачивается
5. - Секунды оплачиваются (см. раздел об оплате), поэтому это основной параметр управления стоимостью.
-1для выбора длительности моделью не принимается: передайте целое число из допустимого диапазона.
Если значение неверно
- Число вне диапазона 2–30, нецелое число либо строка вместо числа:
"duration" is outside its supported range
aspect_ratio
string
НеобязательноПо умолчанию: 16:9
Соотношение ширины и высоты видео.
Допустимые значения: 16:9, 9:16, 1:1, 4:3, 3:4
По умолчанию: 16:9
- Если параметр не указан, используется
16:9, в том числе при изображениях или референсах. - Эта модель не поддерживает
adaptive.
Если значение неверно
- Значение отсутствует в списке допустимых:
"aspect_ratio" must be one of: [16:9 9:16 1:1 4:3 3:4]
resolution
string
НеобязательноПо умолчанию: 720p
Разрешение результата. Секунда в 1080p стоит дороже, чем в 720p.
Допустимые значения: 480p, 720p, 1080p
По умолчанию: 720p
- Только строчные буквы.
Если значение неверно
- Недопустимое значение, например
4kили720P:"resolution" must be one of: [480p 720p 1080p]
Перед созданием задачи шлюз также проверяет следующие сочетания параметров:
imagesнельзя сочетать с полями референсных материалов.
Ограничения входных материалов
До создания задачи шлюз проверяет каждый входной материал. Если ограничение нарушено, возвращается 400 bad_request с указанием материала. Средства не списываются.
- При создании задачи шлюз не читает изображения, видео и аудиофайлы, поэтому для этой модели не проверяются ограничения размера файла, разрешения, длительности или формата. Применяются только правила полей, указанные выше.
- Если модель не может скачать или использовать материал по ссылке, уже созданная задача завершается ошибкой, обычно
bad_request, либоcontent_policy_violationпри отказе модерации. Средства возвращаются полностью. - Файл находится на вашем устройстве? Загрузите его через
POST /v1/filesи передайте полученныйdata.url. Поддерживаются png, jpg, jpeg, webp, mp3, wav, aac, m4a, mp4 и mov; до 50 MB, для видео — до 100 MB.
Какие входные данные можно сочетать
Параметры, которые модель не принимает
Эти параметры не игнорируются, а отклоняются до списания средств:
reference_images,generate_audio,seed,quality,sound,task_type,output_format,watermarkи другие поля видеомоделей →field "seed" is not supported by model wan-3.0(с именем переданного поля). Изображения передавайте вimages.- Поле, вообще неизвестное видео-API →
unknown field: <name>.
Примеры запросов
Видео по тексту
Горизонтальный ролик длительностью 5 секунд в 720p.
Видео по изображению
Квадратный ролик длиной 10 секунд в 1080p по одному изображению.
Несколько изображений
Два изображения, передаваемые модели в порядке списка.
Референсные видео и аудио
Замените ссылку на видео своим общедоступным MP4. Вертикальный ролик длиной 30 секунд в стиле референса.
Ответы
Создание задачи (201)
Объект задачи. Поле output равно null, пока задача не завершится успешно. Поля с пометкой «во время выполнения» исчезают после завершения задачи.
Успешно завершённая задача
GET /v1/tasks/{task_id} возвращает HTTP 200 со status: "succeeded" и результатом в data.output.
Поля результата
Задача, завершившаяся ошибкой
Если задача завершилась ошибкой, GET /v1/tasks/{task_id} всё равно возвращает HTTP 200: сведения об ошибке находятся в теле ответа. Зарезервированная сумма возвращается полностью, поэтому списания нет.
Полный пример
Создайте задачу, дождитесь её завершения с интервалом опроса, указанным сервером, и выведите ссылки на результаты. Задайте BEATAPI_API_KEY в переменной окружения и установите requests.
Оплата
- Цена зависит от разрешения и запрошенной длительности (
duration; 5 секунд, если поле не передано). Секунда в 1080p дороже, чем в 720p.aspect_ratio, изображения и референсное аудио на цену не влияют. - При использовании референсного видео оплачивается сумма длительностей референса и результата по одной ставке; каждая длительность округляется вверх. Например, референс на 3.2 секунды и результат на 5 секунд оплачиваются как 4 + 5 = 9 секунд.
- В таблице ниже указана цена 8-секундных роликов. Другая длительность оплачивается посекундно по тому же тарифу выбранного разрешения.
- Цена резервируется при создании задачи. Поле
data.usage.billable_duration_secondsпоказывает длительность, по которой она рассчитана. - Если задача завершилась ошибкой, в том числе из-за модерации после отправки, средства возвращаются полностью.
Текущие базовые цены совпадают с указанными на странице цен. Если для аккаунта согласована скидка, стоимость будет ниже. Фактически списанная сумма всегда указана в data.usage задачи.
Частые ошибки
Краткий справочник HTTP-ошибок
Ошибки до создания задачи возвращаются с HTTP-статусом, отличным от 2xx, без списания средств. Обрабатывайте error.code или error.retryable; причина указана в message. Полный список и правила повторов приведены в разделе ошибок.
Аутентификация
Передавайте API-ключ в виде Authorization: Bearer <BEATAPI_API_KEY>.
Заголовки
Передавайте тело запроса в JSON с заголовком Content-Type: application/json. Idempotency-Key необязателен. Для каждого логического запроса используйте уникальное значение длиной не более 255 символов и повторно используйте его только для отправки точно такого же тела. В течение 24 часов повтор с тем же ключом и телом возвращает первый ответ с заголовком Idempotent-Replayed: true. Тот же ключ с другим телом возвращает 409 idempotency_conflict. Ответы, отличные от 2xx, не сохраняются, поэтому повтор после 400 или 402 выполняется заново.
Запрос
Модель, которую нужно вызвать.
Значение: wan-3.0
Если значение неверно
- Поле отсутствует:
"model" is required - На этот адрес API отправлена модель изображений:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
Что должно происходить в видео: объект, действие и работа камеры. Если используете референсы, укажите назначение каждого материала.
Длина: 1–5000 символов
- Длина измеряется в символах. Иероглиф CJK считается одним символом.
Если значение неверно
- Поле отсутствует:
"prompt" is required - Пустое значение или превышена допустимая длина:
"prompt" has an unsupported length - Значение не является строкой:
"prompt" must be a string
Соотношение ширины и высоты видео.
Допустимые значения: 16:9, 9:16, 1:1, 4:3, 3:4
По умолчанию: 16:9
- Если параметр не указан, используется
16:9, в том числе при изображениях или референсах. - Эта модель не поддерживает
adaptive.
Если значение неверно
- Значение отсутствует в списке допустимых:
"aspect_ratio" must be one of: [16:9 9:16 1:1 4:3 3:4]
Длительность видео в секундах, целое число.
По умолчанию: 5
Диапазон: 2–30
- Если параметр не указан, используется и оплачивается
5. - Секунды оплачиваются (см. раздел об оплате), поэтому это основной параметр управления стоимостью.
-1для выбора длительности моделью не принимается: передайте целое число из допустимого диапазона.
Если значение неверно
- Число вне диапазона 2–30, нецелое число либо строка вместо числа:
"duration" is outside its supported range
Изображения, из которых нужно создать видео: одно либо несколько в нужном порядке использования.
Число элементов: 1–10
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.
- Каждая ссылка должна быть общедоступной и начинаться с
https://. При создании задачи шлюз не скачивает и не измеряет файлы. - Нельзя передавать вместе с
reference_videosилиreference_audios. - Если не указать
aspect_ratioиresolution, сохраняются значения по умолчанию16:9и720p, в том числе при входных изображениях: шлюз не определяет их по изображению. Задайте нужные пропорции явно.
Если значение неверно
- Больше 10 ссылок:
"images" accepts at most 10 items - Пустой массив:
"images" requires at least 1 item - Значение не является массивом:
"images" must be an array - Ссылка не начинается с https://:
"images[0]" must be a public HTTPS URL - Передано вместе с полем референсов:
Cannot combine "images" with reference inputs in one task
Музыкальные, голосовые или звуковые фрагменты, которые модель использует как референсы.
Число элементов: 1–5
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.
- До 5 общедоступных ссылок
https://. При создании задачи файлы не скачиваются и не измеряются. - Нельзя передавать вместе с
images.
Если значение неверно
- Больше 5 ссылок:
"reference_audios" accepts at most 5 items
Видео, которые модель использует как референсы для нового ролика.
Число элементов: 1–5
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.
- До 5 общедоступных ссылок
https://. При создании задачи шлюз не скачивает, не измеряет и не ограничивает эти ролики, поэтому неподходящий для модели файл вызовет ошибку после отправки с возвратом средств. - Нельзя передавать вместе с
images.
Если значение неверно
- Больше 5 ссылок:
"reference_videos" accepts at most 5 items - Передано вместе с
images:Cannot combine "images" with reference inputs in one task
Разрешение результата. Секунда в 1080p стоит дороже, чем в 720p.
Допустимые значения: 480p, 720p, 1080p
По умолчанию: 720p
- Только строчные буквы.
Если значение неверно
- Недопустимое значение, например
4kили720P:"resolution" must be one of: [480p 720p 1080p]
Ответ
Объект задачи. Поле output равно null, пока задача не завершится успешно. Поля с пометкой «во время выполнения» исчезают после завершения задачи.

