Seedance 2.5 API in Russia: AI video generation with no VPN, paid in USDT
Seedance is ByteDance’s video model: from text, images or a reference video it makes a clip with a soundtrack built in. Seedance 2.5 produces up to 30 seconds per request at 480p, 720p or 1080p. On RuAPI the model is available over the API: one key, an asynchronous OpenAI-style /v1/videos endpoint, per-token billing from a USDT balance, no foreign card needed. This is an API for developers and automations — n8n, bots, your own services — not a subscription web editor. A 4-second 480p clip costs about $0.52.
Updated:
import time, requests
BASE = "https://www.ruapi.ai/v1"
HEADERS = {"Authorization": "Bearer sk-..."}
# 1. create the task
task = requests.post(f"{BASE}/videos", headers=HEADERS, json={
"model": "doubao-seedance-2.5",
"prompt": "Night city, neon reflections on wet asphalt, slow dolly-in",
"seconds": "4",
"metadata": {"resolution": "480p", "ratio": "16:9"},
}).json()
if "id" not in task:
raise SystemExit(task)
# 2. check the status every 10 seconds
while True:
video = requests.get(f"{BASE}/videos/{task['id']}", headers=HEADERS).json()
if video["status"] in ("completed", "failed"):
break
time.sleep(10)
# 3. download the MP4 within 23 hours after it is ready
if video["status"] == "completed":
mp4 = requests.get(f"{BASE}/videos/{task['id']}/content", headers=HEADERS)
mp4.raise_for_status()
open("video.mp4", "wb").write(mp4.content)
else:
print(video.get("error"))
This Python example creates a doubao-seedance-2.5 task (4 seconds, 480p — about $0.52), waits until it is ready and saves video.mp4. Replace sk-… with your own key (Seedance becomes available after your first top-up). The same requests in curl are in step 3 below.
What gets in the way of using Seedance from Russia
Seedance is a paid model, not a free website.
Most people search for Seedance with the word “free”, but video generation is expensive even at ByteDance itself. For developers the model is sold over the API on BytePlus ModelArk, and enabling Seedance 2.5 there requires an account balance above $30 or a purchased resource pack (docs.byteplus.com, Nov 7, 2026). On RuAPI the minimum top-up is 5 USDT, and you pay only for finished clips.
A foreign cloud account is hard to pay for from Russia.
Russian cards don’t work with foreign services, and a VPN doesn’t solve payment. The RuAPI balance is topped up in USDT from 5 USDT over TRC20, BEP20, TON or Polygon; you can buy USDT for rubles via SBP — step by step at docs.ruapi.ai/en/buy-usdt. Cards from foreign banks are accepted too. The RuAPI site and API open from Russia directly.
Per-token video pricing takes getting used to.
The cost of a clip depends on resolution, length and whether the input includes a reference video. When you submit a task, RuAPI reserves an estimated amount, and once the clip is ready it recalculates by the actual tokens and refunds the difference to your balance. Tasks rejected by moderation are not charged, and every charge shows up in the Console log.
Ways to connect to the Seedance API
OpenAI format: /v1/videos
Good for new code and for n8n: POST https://www.ruapi.ai/v1/videos creates a task, GET /v1/videos/{id} returns its status, and GET /v1/videos/{id}/content returns the MP4. Seedance parameters — resolution, aspect ratio, images, videos — go in metadata. A step-by-step example is below.
BytePlus ModelArk format: /v1/contents/generations/tasks
If you already have code for the Seedance API on BytePlus ModelArk, there’s no need to rewrite it — just change the base URL to https://www.ruapi.ai/v1, the key to your RuAPI key and the model name (see below). A task is created with POST https://www.ruapi.ai/v1/contents/generations/tasks in the same request format (content, resolution, ratio, duration), and its status comes from GET /v1/contents/generations/tasks/{id}. In the model field, use the RuAPI model name — doubao-seedance-2.5, doubao-seedance-2.0 and so on — not the dated version ID from the BytePlus console.
A callback instead of polling
Add callback_url (https only) and, optionally, callback_secret to the request. When the task finishes, RuAPI sends a POST to that address with the same JSON a status request would return; with callback_secret, the request is signed with HMAC-SHA256 in the X-Callback-Signature header. If your server doesn’t reply with a 2xx code, delivery is retried. Works in both formats; details at docs.ruapi.ai/en/video-generation.
By default, an account can have up to 3 unfinished video tasks at a time: the next one gets HTTP 429 and is not charged. Need more? Write to support@ruapi.ai or to @RuAPI_Support on Telegram.
How to connect the Seedance API through RuAPI: 3 steps
A RuAPI key replaces a BytePlus key: the same key calls the Seedance video models and the text models — Claude, GPT, Gemini, DeepSeek.
Sign up and top up your balance
Create an account at www.ruapi.ai with email, Google, Yandex or Telegram. Top up in USDT (USDC works too) from 5 USDT over TRC20, BEP20, TON or Polygon, or with a card from a foreign bank. There is no subscription, and the balance doesn’t expire.
The $0.05 trial credit a new account usually gets works only with three text models: claude-haiku-5-5, deepseek-flash and gpt-6-luna. You can’t make video with it: Seedance unlocks after your first top-up.
Create an API key
Console → API Keys → “Create API key”. Video costs much more than text, so a separate key with a budget for Seedance is handy: in the Credit limit block, turn off “Unlimited” and enter an amount.


Submit a task and download the clip
- Create a task: curl https://www.ruapi.ai/v1/videos -H "Authorization: Bearer sk-…" -H "Content-Type: application/json" -d '{"model": "doubao-seedance-2.5", "prompt": "Night city, neon reflections on wet asphalt, slow dolly-in", "seconds": "5", "metadata": {"resolution": "720p", "ratio": "16:9"}}' — the response contains a task id like task_….
- Check the status: curl https://www.ruapi.ai/v1/videos/task_… -H "Authorization: Bearer sk-…". Poll every 5–10 seconds: status goes queued → in_progress → completed. On failed, the reason is in the error field.
- Download the clip: curl -L https://www.ruapi.ai/v1/videos/task_…/content -H "Authorization: Bearer sk-…" -o video.mp4. Save it within 23 hours after it is ready — after that the link stops working.
- Images and videos are passed as public URLs inside metadata (base64 is not supported). metadata.images: 1 image is the first frame, 2 are the first and last frames, 3 or more are references (up to 30 on 2.5). metadata.videos — MP4 reference videos (up to 10 on 2.5, 30 seconds in total). Tip: for 2.5 with a first frame it’s better to leave ratio out — per the BytePlus docs, in this mode the aspect ratio comes from the image (adaptive).
- Always set seconds (4–30 on 2.5, 4–15 on 2.0) and resolution so you know the price in advance. A ready-made Python and curl script that waits for the result and saves the file: docs.ruapi.ai/en/video-generation.
Generation is asynchronous: the response with the id comes back at once, the clip a few minutes later. In n8n that is an HTTP Request node (POST), then Wait and a loop with HTTP Request (GET) until the status is completed, and a final request to /content with the response set to a file.
Seedance on RuAPI: models and prices
Models
doubao-seedance-2.5 — up to 30 s; 480p, 720p, 1080p; no 4K
doubao-seedance-2.0 — up to 15 s; up to 4K
doubao-seedance-2.0-fast and 2.0-mini — up to 15 s; 480p and 720p
Audio is generated together with the video
Seedance 2.5: price per 1M tokens
480p and 720p — $12.84; 1080p — $14.04
With a reference video — $7.68 (480p/720p) and $8.40 (1080p); the reference’s own tokens count too
A 4-second 480p clip — about 40K tokens ≈ $0.52
Seedance 2.0 — $8.40; 2.0-fast — $6.72; 2.0-mini — $4.20 (480p/720p)
What a 2.5 clip costs (estimate*)
480p: 5 s ≈ $0.64; 10 s ≈ $1.29
720p: 5 s ≈ $1.39; 10 s ≈ $2.77; 30 s ≈ $8.32
1080p: 5 s ≈ $3.41; 10 s ≈ $6.82; 30 s ≈ $20.47
* 16:9, no reference video; tokens ≈ width × height × seconds × 24 ÷ 1024. The final amount is in the Console log
Frequently asked questions
See also: Nano Banana API: image generation · GPT Image API: images from OpenAI · n8n in Russia: AI models in automations · Dify in Russia · AI models over the API: which to choose · Gemini API in Russia · Grok API in Russia · How to pay for AI APIs from Russia · Paying for the API with crypto · All models and prices
