Alibaba · Видео · API

Wan API — цены в рублях и подключение за 5 минут

Wan API (Alibaba) в рублях: text-to-video и image-to-video через один ключ Zerocoder. Цена за клип, примеры кода, лимиты и возвраты.

Семейство Wan (Alibaba)

Wan — семейство моделей генерации видео от Alibaba. На площадке доступны две модели: text-to-video создаёт ролик по текстовому описанию, image-to-video оживляет загруженный кадр, добавляя движение камеры и объектов. Обе работают с настраиваемой длительностью и соотношением сторон, что удобно для коротких промо-роликов и анимации статичных изображений.

Подключение через Zerocoder

Одним ключом API вы получаете доступ ко всем моделям Wan и остальным моделям площадки — не нужно заводить отдельные договоры и ключи у разных поставщиков. Биллинг — отдельный рублёвый кошелёк API: пополнение картой РФ или по счёту для юрлица, без VPN и зарубежных карт. Документация и выпуск ключей — в личном кабинете API на zerocoder.com, запросы совместимы со стандартными HTTP-клиентами и SDK.

Как устроен запрос

Генерация видео асинхронная: вы отправляете POST-запрос с указанием модели, текста (prompt), длительности и формата кадра — для image-to-video дополнительно передаётся ссылка на референсный кадр. В ответ приходит идентификатор задачи, а готовность и ссылку на результат вы получаете, опрашивая статус задачи. Цены и список моделей — в едином справочнике, баланс кошелька — отдельным запросом.

Доступные модели и цены

Таблица строится из живого прайса GET /v1/models: цены уже с наценкой, в рублях и в долларах по внутреннему курсу. Что пропало из таблицы — временно не отдаёт шлюз.

МодельЕдиница₽$Примеры стоимостиEndpoint
wan/2-7-text-to-videoрекомендуем-68%за клип14,4 ₽$0.160
1 генерация: 14,4 ₽ · $0.160
10 генераций: 144 ₽ · $1.60
/v1/videos
wan/2-7-image-to-videoрекомендуем-68%за клип14,4 ₽$0.160
1 генерация: 14,4 ₽ · $0.160
10 генераций: 144 ₽ · $1.60
/v1/videos
Экономия до-68%

Сравнение с официальным API

Официальные тарифы вендоров против цен Zerocoder за ту же единицу — секунду видео, картинку или миллион токенов. Бейдж «-NN%» — разница в цене за ту же единицу (для текста — смесь вход : выход 3 : 1, без минимума за вызов; допущения — под таблицей). Здесь — только модели, где мы дешевле официального API хотя бы на 5 %; полный прайс семейства — в таблице выше.

МодельОфициальный API (USD)Zerocoder (₽ и $)Экономия
wan/2-7-text-to-videoAlibaba · Wan 2.7 text-to-video$0.50 за 5 с ролика ($0.10/с)720P · ≈ 45 ₽14,4 ₽ · $0.160за клип-68%
wan/2-7-image-to-videoAlibaba · Wan 2.7 image-to-video$0.50 за 5 с ролика ($0.10/с)720P · ≈ 45 ₽14,4 ₽ · $0.160за клип-68%
Официальные цены — со страниц вендоров: Alibaba — проверены 4 октября 2026 г. Цены Zerocoder — живой прайс GET /v1/models, уже с наценкой; доллары — по внутреннему курсу (1 $ = 90 ₽). В нашу цену входят оплата в рублях и работа без VPN. Допущения сравнения:
  • цена за клип: официальная посчитана как цена секунды × 5 с (seconds по умолчанию в API); если клип длиннее, официальная цена выше и экономия больше показанной
  • видео — официальный тариф разрешения из строки (720P): наш вызов API по умолчанию рендерит в этом разрешении или выше, а где у вендора нужного тарифа нет, взят более дешёвый — экономия при этом занижена, не завышена

Калькулятор стоимости

Выберите модель и объём — калькулятор считает по тем же формулам, что биллинг API.

за клип14,4 ₽ $0.160
в месяц · 10144 ₽ $1.60

Цены из GET /v1/models, курс — внутренний. Неудачная генерация не списывается.

Первый запрос

Один ключ zc-sk-…, заголовок x-api-key (или Authorization: Bearer), база https://zerocoder.com/api/v1. Примеры собраны из реальных контрактов маршрутов.

1

Создайте ключ

В кабинете → API: пополните баланс в рублях и создайте ключ zc-sk-…

2

Отправьте запрос

Скопируйте пример ниже — id модели уже подставлен из прайса.

3

Проверьте списание

GET /v1/balance покажет баланс; цена вызова приходит в ответе.

model: wan/2-7-text-to-video
# 1) start the render — price_rub is charged up front, refunded if the render fails
curl https://zerocoder.com/api/v1/videos \
  -H "x-api-key: zc-sk-…" -H "content-type: application/json" \
  -d '{"model": "wan/2-7-text-to-video", "prompt": "A drone shot over a foggy pine forest at sunrise, slow dolly in", "seconds": 5, "aspect": "16:9"}'
# → {"id":"vid_…","object":"video","model":"wan/2-7-text-to-video","status":"queued","seconds":5,"price_rub":…,"balance_rub":…,"poll":"/api/v1/videos?id=vid_…"}

# 2) poll until status is "completed" (url) or "failed" (refunded: true)
curl "https://zerocoder.com/api/v1/videos?id=vid_…" -H "x-api-key: zc-sk-…"
# image-to-video: add "image": "https://…/frame.jpg" to the body
import time, requests

API = "https://zerocoder.com/api/v1"
H = {"x-api-key": "zc-sk-…"}

job = requests.post(f"{API}/videos", headers=H, json={
    "model": "wan/2-7-text-to-video",
    "prompt": "A drone shot over a foggy pine forest at sunrise, slow dolly in",
    "seconds": 5,            # 4–10
    "aspect": "16:9",        # or 9:16 / 1:1; "image": "https://…" for image-to-video
}).json()
print("charged", job["price_rub"], "RUB, balance", job["balance_rub"])

while True:
    st = requests.get(f"{API}/videos", headers=H, params={"id": job["id"]}).json()
    if st["status"] == "completed":
        print(st["url"]); break
    if st["status"] == "failed":
        print("failed, refunded:", st.get("refunded")); break
    time.sleep(4)
const API = "https://zerocoder.com/api/v1";
const H = { "x-api-key": "zc-sk-…", "content-type": "application/json" };

const job = await fetch(`${API}/videos`, {
  method: "POST", headers: H,
  body: JSON.stringify({ model: "wan/2-7-text-to-video", prompt: "A drone shot over a foggy pine forest at sunrise, slow dolly in", seconds: 5, aspect: "16:9" }),
}).then((r) => r.json());
console.log("charged", job.price_rub, "RUB");

for (;;) {
  const st = await fetch(`${API}/videos?id=${job.id}`, { headers: H }).then((r) => r.json());
  if (st.status === "completed") { console.log(st.url); break; }
  if (st.status === "failed") { console.log("failed, refunded:", st.refunded); break; }
  await new Promise((r) => setTimeout(r, 4000));
}

Как подключить Wan API: первый запрос за 5 минут

От ключа до продакшена — шесть шагов по реальным контрактам /api/v1. Каждый шаг ведёт в нужный раздел документации.

  1. 1

    Получите ключ в кабинете

    Зарегистрируйтесь, откройте раздел API в кабинете, пополните баланс в рублях и создайте ключ формата zc-sk-…. Один ключ открывает Wan и все остальные модели каталога.

    Подробнее →
  2. 2

    Отправьте первый запрос

    POST /v1/videos с полями model, prompt, seconds и aspect: в ответе придут id задачи, статус queued и price_rub — сумма списывается до старта рендера Wan.

    Подробнее →
  3. 3

    Опрашивайте статус задачи

    GET /v1/videos?id=… раз в несколько секунд, пока status не станет completed (поле url) или failed (refunded: true — деньги уже вернулись на баланс). Ссылка на файл временная — скачивайте сразу.

    Подробнее →
  4. 4

    Обработайте лимиты и ошибки

    30 запросов в минуту на ключ: на 429 подождите и повторите с нарастающей паузой; 402 — пополните баланс; 400 — сверьте model по GET /v1/models. Неудачная генерация не списывается, повторять её безопасно.

    Подробнее →
  5. 5

    Следите за бюджетом

    GET /v1/balance отдаёт баланс и расход за 30 дней; цена каждого вызова приходит прямо в ответе — пишите её в свои логи и поставьте порог оповещения в своём мониторинге.

    Подробнее →
  6. 6

    Выводите в продакшен

    Ключ храните в секретах сервера, не во фронтенде. Под большой объём Wan напишите нам — лимит поднимается индивидуально, юрлицам доступна оплата по счёту. Фактическую стабильность смотрите на странице статуса.

    Подробнее →

Без кода

Любой инструмент, который умеет HTTP-запрос, умеет и наш API: один POST с заголовком x-api-key.
HTTP Requestn8n

Узел HTTP Request: метод POST, адрес ручки /api/v1, заголовок x-api-key и JSON-тело из полей воркфлоу. Для видео — узел Wait и второй HTTP Request на GET ?id= в цикле до completed.

HTTP → Make a requestMake

Модуль HTTP «Make a request»: POST, Body type JSON, заголовок x-api-key. Ответ парсится автоматически — url картинки или текст ответа подставляются в следующие модули.

Webhooks by ZapierZapier

Действие Webhooks by Zapier → Custom Request: POST, Data — JSON с model и prompt, Headers — x-api-key. Поля ответа доступны следующим шагам запа.

Apps ScriptGoogle Sheets

В Apps Script — UrlFetchApp.fetch с method post, contentType application/json и payload из ячеек: промты в одной колонке, результат записывается в соседнюю.

любой бот-фреймворкTelegram-бот

Бот на aiogram, grammY или Telegraf вызывает тот же HTTP API: сообщение пользователя → запрос к модели → ответ в чат. Для видео — опрос статуса и отправка файла по готовой ссылке.

OpenAI-совместимый base URLPython / Node SDK

Для текстовых моделей официальные SDK OpenAI и Anthropic работают с заменённым base URL и нашим ключом — код приложения не меняется. Картинки и видео — обычный HTTP-запрос из любого языка.

Для бизнеса

Поможем внедрить ИИ в ваш бизнес

Не только ключ: поможем встроить Wan и другие модели в ваши процессы — от аудита до продакшена, с оплатой по счёту.

  • Аудит процессовСмотрим, где в ваших процессах ИИ окупается: поддержка, продажи, контент, документы. Называем конкретные сценарии и модели.
  • Интеграция в CRM, сайт, Telegram, n8nПодключаем по нашему API или готовыми сценариями без кода; один ключ и общий баланс на все модели.
  • Оплата в рублях по счётуЮрлицам — счёт на расчётный счёт, закрывающие документы для бухгалтерии, зачисление на API-баланс.
  • Поддержка и лимитыПомогаем с промтами и архитектурой, поднимаем лимит запросов под вашу нагрузку индивидуально.

Входные материалы, лимиты и возврат денег

  • Текст → видео и картинка → видео (image: публичная https-ссылка)
  • Длительность seconds: 4–10 с (по умолчанию 5)
  • aspect 16:9 / 9:16 / 1:1 или явный size
  • Списание до старта по price_rub, при сбое рендера — возврат (refunded: true)
  • Ролик дольше 30 минут в очереди — возврат автоматически
  • 30 запросов в минуту на ключ (все ручки вместе)

Ответы с ошибками и возвраты

# 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid or revoked API key."}}
# 402 {"type":"error","error":{"type":"billing_error","message":"Not enough API balance: …"}}
# 429 {"type":"error","error":{"type":"rate_limit_error","message":"…"}}   ← 30 requests/min per key
# 400 {"type":"error","error":{"type":"invalid_request_error","message":"Unknown model \"…\". See GET /v1/models."}}
# 502 {"type":"error","error":{"type":"api_error","message":"… Charge refunded."}}   ← start failed → money back
# GET ?id → {"id":"vid_…","status":"failed","refunded":true}                        ← render failed → money back

Фактическая стабильность API и генерации видео

Цифры — из публичной сводки /status: доля успешных запросов за период по всему API и по категории в целом (разбивки по отдельным моделям в сводке нет), без обещаний SLA. Неудачная генерация не списывается, повторять её безопасно.

API для разработчиковработает штатно

—сейчас (окно 2 ч)
65%за 30 дней
65%за 90 дней

Генерация видеоработает штатно

—сейчас (окно 2 ч)
68%за 30 дней
68%за 90 дней

Возвраты и списания

  • Списание до старта по price_rub; сбой рендера — возврат автоматически, в ответе refunded: true
  • Задача дольше 30 минут в очереди — возврат автоматически
  • Статус и ссылка на файл — в GET /v1/videos?id=

Учёт ведётся с 6 авг. 2026.

Сценарии использования

1

Продуктовая команда добавляет в маркетинг-редактор кнопку «оживить баннер» на wan/2-7-image-to-video

2

Индихакер делает телеграм-бота: пользователь присылает фото, бот возвращает короткий видеоклип

3

Бэкенд интернет-магазина автоматически анимирует карточки товаров для соцсетей по фото из каталога

4

SaaS для генерации видеорекламы собирает ролики из пользовательских изображений без участия дизайнера

5

Внутренний пайплайн маркетинга превращает текстовые брифы в черновики промо-видео через text-to-video

6

No-code платформа добавляет узел «генерация видео» в сценарии автоматизации контента

Как готовить промт

  • Опишите движение камеры явно: наезд, панорама, облёт или статичный план — модель лучше следует конкретной траектории, чем общим словам «динамично»
  • Задавайте свет и время суток отдельной фразой (мягкий утренний свет, неоновая ночь) — это сильнее влияет на настроение кадра, чем детали объекта
  • Расписывайте происходящее по секундам ролика кратко и последовательно: что в кадре в начале, что меняется к середине и концу
  • Для image-to-video опишите референсный кадр словами: что на нём статично, а что должно начать двигаться — так проще управлять анимацией
  • Избегайте запросов с читаемым текстом в кадре, толпами людей и крупным планом кистей рук — такие детали модель чаще искажает

Готовые промты для Wan

Скопируйте промт и параметры в тело запроса — поля называются так же, как в контракте /api/v1. Подставьте свой материал в угловых скобках.

Пейзажный пролёт для фона сайта

Slow aerial glide over terraced rice fields at sunrise, low mist between the hills, soft golden light, calm cinematic mood
seconds: 10aspect: 16:9

Длинный план без людей — хороший кандидат на 10 секунд.

Вертикальный ролик для Reels и Shorts

Close-up of fresh raspberries falling into a glass of sparkling water in slow motion, bubbles rising, bright kitchen light, vertical framing
seconds: 5aspect: 9:16

Оживить фото интерьера (image-to-video)

The camera slowly pushes in, curtains move gently in the breeze, sunlight flickers across the room, keep the furniture and layout unchanged
seconds: 5aspect: 16:9image: https://…/room.jpg

Выберите в таблице версию image-to-video; ссылка на кадр — публичная https.

Товар на подиуме

A white sneaker rotates slowly on a concrete pedestal, dramatic side light, subtle dust in the air, premium commercial look
seconds: 5aspect: 1:1

Атмосферная заставка

Rain drops running down a window at night with blurred city lights behind, slow focus pull, moody blue and amber tones
seconds: 8aspect: 16:9

Кому подходит Wan API

Отрасли, где этот тип генерации встраивается в процесс, а не остаётся экспериментом.

E-commerce и маркетплейсыТоварные ролики по фиксированной цене за клип — бюджет серии известен заранее.
НедвижимостьОживление фото объектов: наезд камеры, свет из окна, движение штор.
Туризм и HoReCaАтмосферные ролики локаций и блюд для сайта и соцсетей.
Медиа и SMMВертикальные клипы для Reels, Shorts и VK Клипов по контент-плану.
Агентства и продакшнЧерновые раскадровки и фоновые планы до съёмки.
SaaS и приложенияГенерация видео Wan внутри вашего сервиса — один ключ и общий баланс.

Частые вопросы

Сколько стоит ролик Wan API в рублях?

Wan продаётся поклипно: цена одного ролика для каждой версии — в таблице выше и в GET /v1/models, сразу в рублях и с наценкой. Та же сумма приходит в поле price_rub ответа POST /v1/videos ещё до начала рендера, поэтому бюджет серии считается заранее: цена клипа, умноженная на число роликов.

Как запустить генерацию Wan API из Python?

Через requests: POST /v1/videos с заголовком x-api-key и JSON из model, prompt, seconds и aspect — в ответе id задачи и статус queued. Затем раз в несколько секунд опрашивайте GET /v1/videos по этому id до completed и сразу скачивайте mp4. Полные примеры Wan для Python, Node.js и командной строки — в блоке «Первый запрос».

Чем Wan text-to-video отличается от image-to-video?

Это две отдельные модели Wan с разными id в таблице. Text-to-video строит сцену целиком по описанию; image-to-video берёт стартовый кадр из поля image (публичная https-ссылка) и оживляет его, сохраняя композицию, — в промте тогда описывайте только движение. Картинку передавайте именно версии image-to-video: текстовая модель стартовый кадр не использует.

Какие ограничения у Wan API по длительности и формату?

Длительность задаётся в seconds от 4 до 10 (по умолчанию 5), формат — aspect 16:9, 9:16, 1:1, 4:3 или 3:4, либо явный size. Стартовый кадр для image-to-video — только публичная https-ссылка. Общий лимит ключа — 30 запросов в минуту на все ручки; при превышении Wan вернёт 429, повторите запрос с паузой.

Что будет с оплатой, если Wan не сделал ролик?

Сумма за клип Wan возвращается на API-баланс автоматически: при статусе failed — сразу, в ответе будет refunded: true, а задачу, которая так и не выдала результат, система закроет с возвратом сама в течение нескольких часов. Оплачиваются только ролики со статусом completed и ссылкой на файл.

Можно ли оплатить Wan API со счёта организации?

Да: в кабинете API компания запрашивает счёт, оплачивает его по безналу, и сумма зачисляется на API-баланс — тем же ключом работают Wan и остальные модели каталога. Для мгновенного пополнения подходит карта российского банка; аккаунт Alibaba Cloud и зарубежная карта не нужны, закрывающие документы выдаются по запросу.

Есть ли пробный доступ к Wan API без оплаты?

Бесплатных роликов в API нет: кошелёк начинается с минимального первого пополнения, а каждый клип Wan списывается по цене из таблицы. Отладьте промт на одном-двух роликах и только потом запускайте серию — формат запроса у text-to-video и image-to-video одинаковый, меняются только model и поле image.

Влияет ли длительность ролика Wan на цену?

Нет: Wan тарифицируется за клип, и ролик на 10 секунд стоит столько же, сколько на 4, — длительность задаётся полем seconds. Учтите, что в длинном клипе модели сложнее удержать персонажа и сюжет: сцены с людьми начинайте с 5 секунд, а длинные ролики берите для пейзажей, фонов и плавных пролётов камеры.

API нейросетей для ваших продуктов

До -68% к официальному API · оплата в рублях, без VPN