Пейзажный пролёт для фона сайта
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 секунд.

Wan API (Alibaba) в рублях: text-to-video и image-to-video через один ключ Zerocoder. Цена за клип, примеры кода, лимиты и возвраты.
Wan — семейство моделей генерации видео от Alibaba. На площадке доступны две модели: text-to-video создаёт ролик по текстовому описанию, image-to-video оживляет загруженный кадр, добавляя движение камеры и объектов. Обе работают с настраиваемой длительностью и соотношением сторон, что удобно для коротких промо-роликов и анимации статичных изображений.
Одним ключом 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 |
Официальные тарифы вендоров против цен 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% |
Выберите модель и объём — калькулятор считает по тем же формулам, что биллинг API.
Цены из GET /v1/models, курс — внутренний. Неудачная генерация не списывается.
Один ключ zc-sk-…, заголовок x-api-key (или Authorization: Bearer), база https://zerocoder.com/api/v1. Примеры собраны из реальных контрактов маршрутов.
В кабинете → API: пополните баланс в рублях и создайте ключ zc-sk-…
Скопируйте пример ниже — id модели уже подставлен из прайса.
GET /v1/balance покажет баланс; цена вызова приходит в ответе.
# 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 bodyimport 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));
}
От ключа до продакшена — шесть шагов по реальным контрактам /api/v1. Каждый шаг ведёт в нужный раздел документации.
Зарегистрируйтесь, откройте раздел API в кабинете, пополните баланс в рублях и создайте ключ формата zc-sk-…. Один ключ открывает Wan и все остальные модели каталога.
Подробнее →POST /v1/videos с полями model, prompt, seconds и aspect: в ответе придут id задачи, статус queued и price_rub — сумма списывается до старта рендера Wan.
Подробнее →GET /v1/videos?id=… раз в несколько секунд, пока status не станет completed (поле url) или failed (refunded: true — деньги уже вернулись на баланс). Ссылка на файл временная — скачивайте сразу.
Подробнее →30 запросов в минуту на ключ: на 429 подождите и повторите с нарастающей паузой; 402 — пополните баланс; 400 — сверьте model по GET /v1/models. Неудачная генерация не списывается, повторять её безопасно.
Подробнее →GET /v1/balance отдаёт баланс и расход за 30 дней; цена каждого вызова приходит прямо в ответе — пишите её в свои логи и поставьте порог оповещения в своём мониторинге.
Подробнее →Ключ храните в секретах сервера, не во фронтенде. Под большой объём Wan напишите нам — лимит поднимается индивидуально, юрлицам доступна оплата по счёту. Фактическую стабильность смотрите на странице статуса.
Подробнее →Узел HTTP Request: метод POST, адрес ручки /api/v1, заголовок x-api-key и JSON-тело из полей воркфлоу. Для видео — узел Wait и второй HTTP Request на GET ?id= в цикле до completed.
Модуль HTTP «Make a request»: POST, Body type JSON, заголовок x-api-key. Ответ парсится автоматически — url картинки или текст ответа подставляются в следующие модули.
Действие Webhooks by Zapier → Custom Request: POST, Data — JSON с model и prompt, Headers — x-api-key. Поля ответа доступны следующим шагам запа.
В Apps Script — UrlFetchApp.fetch с method post, contentType application/json и payload из ячеек: промты в одной колонке, результат записывается в соседнюю.
Бот на aiogram, grammY или Telegraf вызывает тот же HTTP API: сообщение пользователя → запрос к модели → ответ в чат. Для видео — опрос статуса и отправка файла по готовой ссылке.
Для текстовых моделей официальные SDK OpenAI и Anthropic работают с заменённым base URL и нашим ключом — код приложения не меняется. Картинки и видео — обычный HTTP-запрос из любого языка.

Не только ключ: поможем встроить Wan и другие модели в ваши процессы — от аудита до продакшена, с оплатой по счёту.
# 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
Цифры — из публичной сводки /status: доля успешных запросов за период по всему API и по категории в целом (разбивки по отдельным моделям в сводке нет), без обещаний SLA. Неудачная генерация не списывается, повторять её безопасно.
Учёт ведётся с 6 авг. 2026.
Продуктовая команда добавляет в маркетинг-редактор кнопку «оживить баннер» на wan/2-7-image-to-video
Индихакер делает телеграм-бота: пользователь присылает фото, бот возвращает короткий видеоклип
Бэкенд интернет-магазина автоматически анимирует карточки товаров для соцсетей по фото из каталога
SaaS для генерации видеорекламы собирает ролики из пользовательских изображений без участия дизайнера
Внутренний пайплайн маркетинга превращает текстовые брифы в черновики промо-видео через text-to-video
No-code платформа добавляет узел «генерация видео» в сценарии автоматизации контента

Скопируйте промт и параметры в тело запроса — поля называются так же, как в контракте /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 секунд.
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:16The 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:1Rain 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 продаётся поклипно: цена одного ролика для каждой версии — в таблице выше и в GET /v1/models, сразу в рублях и с наценкой. Та же сумма приходит в поле price_rub ответа POST /v1/videos ещё до начала рендера, поэтому бюджет серии считается заранее: цена клипа, умноженная на число роликов.
Через 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 с разными id в таблице. Text-to-video строит сцену целиком по описанию; image-to-video берёт стартовый кадр из поля image (публичная https-ссылка) и оживляет его, сохраняя композицию, — в промте тогда описывайте только движение. Картинку передавайте именно версии image-to-video: текстовая модель стартовый кадр не использует.
Длительность задаётся в seconds от 4 до 10 (по умолчанию 5), формат — aspect 16:9, 9:16, 1:1, 4:3 или 3:4, либо явный size. Стартовый кадр для image-to-video — только публичная https-ссылка. Общий лимит ключа — 30 запросов в минуту на все ручки; при превышении Wan вернёт 429, повторите запрос с паузой.
Сумма за клип Wan возвращается на API-баланс автоматически: при статусе failed — сразу, в ответе будет refunded: true, а задачу, которая так и не выдала результат, система закроет с возвратом сама в течение нескольких часов. Оплачиваются только ролики со статусом completed и ссылкой на файл.
Да: в кабинете API компания запрашивает счёт, оплачивает его по безналу, и сумма зачисляется на API-баланс — тем же ключом работают Wan и остальные модели каталога. Для мгновенного пополнения подходит карта российского банка; аккаунт Alibaba Cloud и зарубежная карта не нужны, закрывающие документы выдаются по запросу.
Бесплатных роликов в API нет: кошелёк начинается с минимального первого пополнения, а каждый клип Wan списывается по цене из таблицы. Отладьте промт на одном-двух роликах и только потом запускайте серию — формат запроса у text-to-video и image-to-video одинаковый, меняются только model и поле image.
Нет: Wan тарифицируется за клип, и ролик на 10 секунд стоит столько же, сколько на 4, — длительность задаётся полем seconds. Учтите, что в длинном клипе модели сложнее удержать персонажа и сюжет: сцены с людьми начинайте с 5 секунд, а длинные ролики берите для пейзажей, фонов и плавных пролётов камеры.

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