Seedance 2.0 Eco is the economy tier of ByteDance's Seedance 2.0, with the same request body and modes. It renders 4-15 second clips at 720p, 1080p or 4K and supports automatic duration, reference images, clips and audio, and generated sound. Two trade-offs apply: picture quality may be below the standard variants, and generation typically takes 50-100 seconds longer. It suits batch jobs and background pipelines where nobody is sitting and waiting for the result.
Best for
- Overnight batch rendering of product or catalog videos
- Background pipelines that deliver results by webhook
- Large test runs across many prompts
- 1080p or 4K drafts where a small quality drop is acceptable
Prompting tips
- Use a
webhook_urlinstead of polling, since jobs take longer; see /docs/webhooks. - Keep prompts under about 500 characters, as recommended for the Seedance 2.0 family.
- Describe one main action per clip and state the camera move.
- Compare a sample against Seedance 2.0 before committing a large batch.
FAQ
How much does Seedance 2.0 Eco cost?
The price is from $0.248 per second. As with every model on Jantaris, failed generations are not charged and the estimate is shown before submission.
How much slower is Seedance 2.0 Eco?
Generation typically takes 50-100 seconds longer than on the standard variants.
Does Seedance 2.0 Eco support 4K?
Yes. It offers 720p, 1080p and 4K, but not 480p.
How to call Seedance 2.0 Eco via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-eco",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "adaptive",
"resolution": "720p",
"duration": 5
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "seedance-2.0-eco",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "adaptive",
"resolution": "720p",
"duration": 5
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "seedance-2.0-eco",
"input": {
"prompt": "A slow dolly shot through a neon-lit night market in the rain, reflections on wet asphalt, cinematic",
"aspect_ratio": "adaptive",
"resolution": "720p",
"duration": 5
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Parameters
| Parameter | Type | Allowed | Default |
|---|---|---|---|
prompt * | string | ≤ 20000 chars | |
aspect_ratio | string | 16:9 9:16 1:1 4:3 3:4 21:9 adaptive | adaptive |
resolution | string | 720p 1080p 4k | 720p |
duration | integer | 4-15 | 5 |
generate_audio | boolean | true | |
image_url | string | ||
end_image_url | string | ||
image_urls | array | max 9 | |
video_urls | array | max 3 | |
audio_urls | array | max 3 |
The same schema is available from GET /v1/models/seedance-2.0-eco.









