You read the Seedance 2.5 announcement, you sketched a product feature around 30-second generated clips, and now you want to write code. Then you hit the wall every developer hits with a freshly announced model: the capability page is live, but the endpoint you can actually call from your app is a different question entirely.
Here is the honest version of the situation, and a quickstart that respects it. Atlas Cloud has published a Seedance 2.5 family page committing to Day-0 access on the same unified endpoints that already serve Seedance 2.0 and 1.5. At the time of writing that listing is marked Coming Soon and no Atlas Cloud price for Seedance 2.5 has been published. What that means practically is good news: the integration you build today against a live Seedance tier is the same integration you will run at 2.5 launch. The only thing that changes is the model string.
So this quickstart does two jobs. It gets a real video out of a real endpoint today, and it structures your code and your prompts so the upgrade is a one-line diff.
What is actually shipping in Seedance 2.5
Per ByteDance's official Seedance 2.5 page, this is a next-generation audio-video joint generation model built for 30-second storytelling with precise reference control and powerful editing. The concrete claims worth designing around:
- Up to 30 seconds in a single generation, with the option to extend twice for longer, more complete storytelling
- Smoother and more consistent motion, with more realistic visuals
- More precise reference video understanding, capturing intention, framing and cinematic language rather than just transferring motion
- More reliable editing across a wider range of audio and visual edit requests
- White-model control and green-screen editing, plus professional camera movement and performance blocking, aimed at complex production workflows
Note what is not on that list: no benchmark table, no resolution ladder, no reference-asset count. Anything you have seen along those lines is somebody's marketing gloss, not the first-party spec sheet. Build against the claims above.
Step 1: get a key from the console
Sign in at console.atlascloud.ai and create an API key. There is no deposit, no minimum commitment and no waitlist, so the key is usable immediately on pay-as-you-go. One key covers the full catalog of 300+ models across text, image and video, on one billing account, which is the part that matters for this quickstart: the key you mint now is the same key that will call Seedance 2.5.
Store it as an environment variable, never in source. ATLASCLOUD_API_KEY is a fine name.
Step 2: submit a video job
Video generation on Atlas Cloud is a two-step asynchronous REST call, not a chat completion. You POST a job and get back a prediction ID, then you poll that ID until the render finishes. Any HTTP client will do, so there is no vendor SDK to install and no new auth scheme to learn: it is a bearer token on the key you just minted.
python1import os, time, requests 2 3KEY = os.environ["ATLASCLOUD_API_KEY"] 4BASE = "https://api.atlascloud.ai/api/v1/model" 5HEAD = {"Authorization": "Bearer " + KEY, "Content-Type": "application/json"} 6 7job = requests.post(f"{BASE}/generateVideo", headers=HEAD, json={ 8 "model": "bytedance/seedance-2.0/text-to-video", 9 "prompt": "Handheld, subject-following medium shot of a courier weaving through a night market, " 10 "neon reflections on wet asphalt, slight lag on turns.", 11 "duration": 5, 12 "resolution": "720p", 13 "ratio": "adaptive", 14 "bitrate_mode": "standard", 15 "generate_audio": True, 16 "watermark": False, 17}).json() 18 19prediction_id = job["data"]["id"]
The response comes back as {"code": 200, "data": {"id": "...", "status": "processing"}}. Note that model is a plain string field. That detail is the whole upgrade story for this article, and Step 6 comes back to it.
Step 3: poll until the render lands
A 5-second clip is not an instant response, so treat the render as a job with a lifecycle rather than a blocking call. Poll the prediction endpoint until status reaches a terminal value.
python1while True: 2 r = requests.get(f"{BASE}/prediction/{prediction_id}", headers=HEAD).json() 3 status = r["data"]["status"] 4 if status in ("completed", "succeeded", "failed"): 5 break 6 time.sleep(3) 7 8print(status, r["data"]) # on success the payload carries the output URL(s)
Two things worth building in now rather than later. Put a ceiling on the polling loop so a stuck job cannot hang a request handler, and persist the prediction ID before you start polling so a crashed worker can resume instead of paying for the render twice. Both habits carry over unchanged to 2.5.
If your feature works from a reference image or a subject reference instead of pure text, the same flow applies with a different model variant, bytedance/seedance-2.0/image-to-video or bytedance/seedance-2.0/reference-to-video. Subject reference assets are uploaded once through uploadMedia and then passed as asset://<id> in the image fields, so a recurring character or product does not need re-uploading on every call.
Step 4: pick a live Seedance tier and know what a second costs
Atlas Cloud bills video per second of output duration. That is arithmetic you can do in your head before you write any code. Three Seedance tiers are live today:
| Model | Model ID | Atlas Cloud price | Notable |
|---|---|---|---|
| Seedance 2.0 | bytedance/seedance-2.0/text-to-video | $0.112/s | Flagship live tier, instant key, no waitlist |
| Seedance 2.0 Fast | bytedance/seedance-2.0-fast/text-to-video | $0.09/s | Faster variant of the same family |
| Seedance 2.0 Mini | bytedance/seedance-2.0-mini/text-to-video | $0.056/s | Cheapest live Seedance 2.0 tier, also image-to-video and reference-to-video |
| Seedance 1.5 Pro | bytedance/seedance-v1.5-pro/text-to-video | $0.047/s, or $0.018/s on the Fast variant | Native synchronized audio, multilingual lip sync, 4 to 12 second clips |
For orientation, other video models on the same key run in a comparable band: Grok Imagine Video v1.5 at $0.080/s, Wan 2.7 at $0.100/s, Kling V3.0 Turbo at $0.112 standard and $0.095 discounted, MiniMax H3 at $0.14/s.
Which one to build on depends on what your 2.5 feature will eventually do. If audio is central to the output, Seedance 1.5 Pro is the tier that already has native synchronized audio and multilingual lip sync, so your pipeline learns to handle an audio track from day one. If you are iterating on prompt structure and want the lowest cost per experiment, Seedance 2.0 Mini at $0.056/s is the obvious sandbox. If you want the closest thing to a production-grade current-generation render, Seedance 2.0 at $0.112/s is the straightforward pick, with the Fast variant at $0.09/s if throughput matters more than the last increment of quality.
Step 5: check the live price in the Playground before you spend
Before your first paid call, open the model in the Atlas Cloud Playground. Each model shows its live per-model price next to the Run button. This matters more than it sounds: promotional discounts come and go, and the number next to the Run button is the one that will actually bill. Run one generation in the Playground, confirm the output is what your feature needs, then port the settings into code.
The per-second-on-output model also makes your budget conversation trivial. A 10-second clip on Seedance 2.0 Mini is 10 × $0.056. There is no calculator, no token estimate and no post-hoc reconciliation step.
That is worth contrasting with how first-party ByteDance channels bill Seedance. On Volcano Engine Ark in China and BytePlus ModelArk internationally, billing is token-based: estimated token consumption is (input video duration + output video duration) × output width × output height × output frame rate / 1024, multiplied by a token unit price, with actual usage authoritative from the usage.completion_tokens field in the API response. For the Seedance 2.0 series and Seedance 2.5, when the input includes video, a minimum token consumption floor applies, and the floor depends on resolution, aspect ratio and output duration. ByteDance publishes a pricing calculator plus a minimum-token table for exactly this reason.
Both models are legitimate. But if you are budgeting a 30-second render, per-second-on-output duration is mental arithmetic and token-with-floors needs a spreadsheet.
Step 6: write the shot description like it is already 2.5
This is the part of the quickstart that transfers perfectly, because prompt craft is not versioned. Two of the 2.5 capability claims should change how you write today.
Precise reference control. ByteDance's claim is that 2.5 reads a reference video for its intention, framing and cinematic language, going beyond motion transfer. The prompting implication is that your reference asset stops being a motion template and starts being a directorial brief. So stop writing prompts that describe only the subject, and start naming the grammar you want carried over: the lens feel, the framing, the pacing of the cut, whether the camera leads or follows the subject. Write "handheld, subject-following medium shot, slight lag on turns" instead of "person walking, cinematic".
Thirty seconds in a single generation. A 5-second clip is one shot. Thirty seconds is a scene with structure, and 2.5 supports extending twice on top of that. So write shot descriptions with a beat structure rather than a single static description: an establishing beat, a change (a turn, an entrance, a reveal), and a resolution. Name camera movement and performance blocking explicitly, since those are exactly the controls 2.5 is aiming at. Where the subject stands, where they move, what the camera does while they move.
Both habits pay off on the live tiers now. Both are the exact habits 2.5 rewards.
Step 7: plan the swap
Structure your code so the model identifier is configuration, not a literal. One constant, read from environment or config:
python1SEEDANCE_MODEL = os.environ.get("SEEDANCE_MODEL", "bytedance/seedance-2.0/text-to-video")
Then pass SEEDANCE_MODEL where Step 2 hardcoded the string. Because model is a single JSON string field in the generateVideo body, the upgrade at 2.5 launch really is one environment variable. Not a metaphor for a small change, literally one value.
Never hardcode a Seedance 2.5 identifier today, because no Atlas Cloud Seedance 2.5 model ID exists yet. Pull the exact live IDs from the catalog at atlascloud.ai/models rather than copying them from an article, including this one, since new variants get added over time. When 2.5 lands under the Day-0 commitment, the work on your side is that one variable, plus a fresh look at the price next to the Run button and a re-read of any new request parameters, since a 30-second model with extend support will plausibly accept fields the 2.0 body does not have.
Meanwhile, if you need Seedance 2.5 today rather than at Atlas Cloud launch, the honest answer is first-party ByteDance channels: Volcano Engine Ark in China and BytePlus ModelArk internationally. Among aggregators, several are in the same prelaunch or Day-0-commitment state.
FAQ
Q: Can I call Seedance 2.5 on Atlas Cloud right now? A: No. The Seedance 2.5 family page on Atlas Cloud is marked Coming Soon with a Day-0 access commitment on the same unified endpoints that already serve Seedance 2.0 and 1.5. No model ID and no price have been published for it yet.
Q: What does Seedance cost on Atlas Cloud today? A: Seedance 2.0 is $0.112/s, Seedance 2.0 Fast is $0.09/s, Seedance 2.0 Mini is $0.056/s, and Seedance 1.5 Pro is $0.047/s or $0.018/s on its Fast variant. Billing is per second of output duration, and the live price is shown next to the Run button in the Playground.
Q: Do I need a special SDK for video on Atlas Cloud?
A: No. Video is a plain REST flow: POST /api/v1/model/generateVideo to submit a job, then GET /api/v1/model/prediction/{id} to poll it, both authenticated with a bearer token on your Atlas Cloud key. Any HTTP client works. Note that video does not go through the OpenAI-compatible chat endpoint that the text catalog uses, so do not expect chat.completions to render a clip. Per-model request parameters are documented at atlascloud.ai/docs.
Q: Is there a deposit or minimum commitment to get started? A: No. Atlas Cloud is pay-as-you-go with no deposit, no minimum commitment and no waitlist, and the key from console.atlascloud.ai is usable immediately.
Q: Which live tier should I prototype on if I am targeting 2.5? A: Seedance 2.0 Mini at $0.056/s for cheap prompt iteration, Seedance 1.5 Pro if your pipeline needs to handle a native synchronized audio track, and Seedance 2.0 at $0.112/s for the closest current-generation production render.
The bottom line
Atlas Cloud runs Seedance 2.0, Seedance 2.0 Fast, Seedance 2.0 Mini and Seedance 1.5 Pro today on one API key with per-second billing on output duration, SOC II certification, HIPAA compliance and encryption at rest and in transit, and it has published a Day-0 commitment to serve Seedance 2.5 on those same unified endpoints when it ships.







