API

Wan 3.0 Prime API

Видео

API Wan 3.0 Prime создаёт видео длительностью 2–30 секунд в 480p / 720p / 1080p из текста, первого/последнего кадров или мультимодальных референсов. Режим референсов принимает до 10 изображений, 5 видео и 5 аудиофайлов. Каждое изображение должно быть не больше 30 МБ.

Авторизация

Bearerstringheaderобязательно

API-ключ для авторизации запросов

Тело

application/json
modelstringобязательно
wan-3-0-prime
input.promptstringобязательно

Опишите объект, действие, сцену, освещение, движение камеры и последовательность событий. Пробелы в начале и конце удаляются.

input.frames_imagesstring[]необязательно

Список из одного или двух общедоступных HTTPS-адресов изображений: первый кадр и необязательный последний. Этот режим нельзя сочетать с reference_images, reference_videos или reference_audios.

Максимум URL: 2.

Максимальный размер изображения: 30 МБ.

Пример: ["https://example.com/first-frame.png","https://example.com/last-frame.png"]

input.reference_imagesstring[]необязательно

Список общедоступных HTTPS-адресов референсных изображений. Можно сочетать с reference_videos и reference_audios, но не с frames_images. Передавайте строки URL, не файлы или base64.

Максимум URL: 10.

Максимальный размер изображения: 30 МБ.

Пример: ["https://example.com/your-image.png"]

input.reference_videosstring[]необязательно

Список общедоступных HTTPS-адресов референсных видео. Не сочетайте с frames_images. Видео меняют расход кредитов; см. соответствующую строку и формулу ниже.

Максимум URL: 5.

Пример: ["https://example.com/your-video.mp4"]

input.reference_audiosstring[]необязательно

Список общедоступных HTTPS-адресов референсного аудио. Можно сочетать с другими списками reference_*, но не с frames_images.

Максимум URL: 5.

Пример: ["https://example.com/your-audio.mp3"]

input.reference_video_durationnumberнеобязательно

Суммарная длительность всех референсных видео в секундах. Обязательна при reference_videos. При расчёте округляется вверх до целых секунд, максимум 15 дополнительных секунд. Без референсных видео поле нужно пропустить.

input.durationintegerнеобязательно

Длительность видео в целых секундах от 2 до 30. По умолчанию 5. Расход кредитов зависит от длительности.

По умолчанию: 5

2–30
input.resolutionstringнеобязательно

Разрешение видео. Используйте одно из значений в нижнем регистре ниже. Разрешение определяет ставку в кредитах.

По умолчанию: 720p

480p720p1080p
input.aspect_ratiostringнеобязательно

Соотношение ширины и высоты. По умолчанию 16:9. Входные кадры могут влиять на итоговую композицию.

По умолчанию: 16:9

16:99:161:13:44:3
input.soundbooleanнеобязательно

Нужно ли генерировать звук вместе с видео. По умолчанию false. Передавайте логическое значение JSON, не строку.

По умолчанию: false

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

Выберите один режим: без медиа для генерации из текста; frames_images для первого и последнего кадров; либо сочетайте reference_images, reference_videos и reference_audios для референсов. Нельзя сочетать frames_images со списками медиа reference_*. Все ресурсы передаются списками общедоступных HTTPS-адресов, не файлами или base64. Замените адреса example.com. Сохраните data.task_id и опрашивайте POST /api/v1/check до completed или failed.

POST /api/v1/create
curl -X POST https://nanobanana.io/api/v1/create \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "wan-3-0-prime",
  "input": {
    "prompt": "Красный ретроавтомобиль едет по прибрежной дороге на закате. Камера плавно следует сбоку, а тёплый свет отражается в океане.",
    "duration": 5,
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "sound": false
  }
}'
POST /api/v1/create · HTTP 201
{
  "data": {
    "task_id": "task_example",
    "model": "wan-3-0-prime",
    "status": "processing",
    "credits": 900
  }
}

Опрашивайте этот endpoint с возвращённым ID задачи до её завершения или ошибки. Рекомендуем выполнять polling каждые 5 секунд для получения актуального статуса.

POST /api/v1/check
{
  "task_id": "task_example"
}

Ответ

Статус задачи, возвращаемый POST /api/v1/check. ID, URL и временные метки ниже приведены для примера.

idstringобязательно

Идентификатор задачи в data.id совпадает с task_id в запросе проверки.

statusstringобязательно
completed означает успешную генерацию, а data.data содержит результаты. При других статусах data.data равно null.
failed_reasonstringнеобязательно

Возвращается только при status failed и объясняет причину ошибки. Для completed и processing это поле отсутствует.

Завершено · completed

Ссылки для скачивания находятся в data.data.results.

POST /api/v1/check · HTTP 200
{
  "data": {
    "id": "task_example",
    "created_at": 1791244800,
    "model": "wan-3-0-prime",
    "status": "completed",
    "data": {
      "results": [
        "https://example.com/generated.mp4"
      ],
      "processing_time": 120
    }
  }
}

Другие статусы

При processing или failed значение data.data равно null. Этот пример показывает failed: только failed содержит failed_reason. При processing продолжайте проверку, при failed прекратите её.

POST /api/v1/check · HTTP 200
{
  "data": {
    "id": "task_example",
    "created_at": 1791244800,
    "model": "wan-3-0-prime",
    "status": "failed",
    "data": null,
    "failed_reason": "Generation failed."
  }
}

Расход кредитов

Кредиты за оплачиваемую секунду по разрешению и режиму референсного видео.

Кредиты за оплачиваемую секунду по разрешению и режиму референсного видео.
Генерация480P720P1080P
Без референсных видео90180360
С референсными видео90180360

Один запрос создаёт одно видео. Без длительности или разрешения используются значения по умолчанию выше. Референсные видео могут увеличить расход; используйте нужную строку и формулу.

Без референсного видео: созданные секунды × ставка. С видео: (созданные секунды + min(15, ceil(reference_video_duration))) × ставка. Ставка за секунду не меняется; длительность референса добавляет оплачиваемые секунды.

Поле credits в ответе POST /api/v1/create показывает число кредитов, списанных за задачу.