Search for “seedance pro api” and you’ll get eleven model pages from eleven platforms, each showing its own parameters and its own price per second. What none of them tell you is that there are two fundamentally different ways to reach ByteDance’s Seedance Pro models — the official cloud (Volcengine Ark domestically, BytePlus ModelArk internationally) and aggregator platforms — and they don’t share a billing unit, an activation process, or an endpoint shape. The official route charges per token and asks you to activate models; aggregators charge per second of output and hand you a key in minutes. This guide gives you both paths with real endpoints, real code, and a side-by-side cost comparison, current as of August 2026.
What “Pro” Means in ByteDance’s Seedance Lineup
Seedance Pro is not one model — it’s a tier inside a family. ByteDance’s official naming breaks down as:
- Seedance 1.0 Pro — the multi-shot generation model that made Seedance a name: text-to-video and image-to-video (including first-and-last-frame control), up to 1080p, with strong prompt adherence and multi-shot scene consistency.
- Seedance 1.5 Pro — a joint audio-video model. It generates synchronized audio (speech, sound effects, ambient) in the same call as the video, which is the single biggest practical difference from 1.0 Pro.
- Seedance 2.0 series (and 2.5) — the newer multimodal-reference generation, supporting up to 9 reference images, reference videos and audio, and up to 15s multi-shot output. We covered its integration separately in our Seedance 2.0 API guide; this article stays on the Pro tier.
One naming trap before we go further: some aggregator platforms list a model called “Seedance 2.0 Pro” (for example EmpirioLabs sells a seedance-2-0-pro endpoint). That’s a marketplace label for the 2.0 architecture, not an official ByteDance model name. On the official platform the 2.0 series is seedance-2.0-*, and the Pro tier is 1.0 Pro and 1.5 Pro. Keep that distinction in mind when comparing listings.
Also note the versioning scheme: official model IDs carry a date suffix (e.g. seedance-1-5-pro-251215, seedance-1-0-pro-250528, seedance-1-0-pro-fast-251015). ByteDance rotates these when a model is updated, so your integration should read the model ID from configuration, not hard-code it. The Seedance official product page and the BytePlus model list are the two places to check current IDs.
Two Routes to the Seedance Pro API: Official Cloud vs Aggregator
Every way to call Seedance Pro is one of two architectures, and the choice matters more than any parameter:
| Dimension | Official: BytePlus ModelArk / Volcengine Ark | Aggregator (e.g. Modellix, fal, Replicate, kie) |
|---|---|---|
| Billing unit | Per token (est. tokens from resolution × duration) | Per second of generated video |
| Activation | Model activation in console; 2.x models need balance > $30 or a resource pack | None — key works immediately |
| Account setup | Cloud account, API key management, model activation | Sign-up + API key |
| Endpoint | https://ark.ap-southeast.bytepluses.com/api/v3/contents/generations/tasks |
Platform-specific unified endpoint (Modellix: https://api.modellix.ai/api/v1/bytedance/seedance-1.5-pro-t2v/async) |
| Auth | Bearer API key (console-generated) | Bearer API key |
| Regional access | Volcengine (CN) vs BytePlus (international) — separate accounts and keys | One account, no regional split |
| Other models | Only ByteDance/Volcengine models | Multiple providers behind one key |
Both routes reach the same underlying models — ByteDance’s Dreamina Seedance 1.5 Pro and 1.0 Pro are served through ModelArk, and aggregators license access to the same models. The difference is the layer around them: billing convention, activation friction, and how many vendors you manage.
A bias disclosure that matters: Modellix is an aggregator and we sell access to Seedance Pro, so we have a commercial interest in the aggregator route looking good. The numbers and code below are taken from live sources on both sides so you can verify — and if your use case genuinely fits the official route, say so without hesitation. The framework we’re giving you is the same one we’d use to evaluate a competitor’s product.
Getting an API Key: Official Activation vs Aggregator Free Credit
Official route (BytePlus ModelArk). Create a BytePlus account, then generate a long-term API key on the API key management page. The step people underestimate is model activation: video models are not callable by default. Per the official docs, before enabling Dreamina Seedance 2.0/2.5 you need a BytePlus account balance above USD 30, or a purchased Seedance resource pack with available quota. The 1.0 Pro / 1.5 Pro models also require activation through the console’s model management before you can query their model IDs. Budget for this step — it’s where “five minutes to first request” dies. If your infrastructure is in mainland China, the domestic route is Volcengine Ark (see the Volcengine Seedance quickstart); the BytePlus path is the international one and needs no China-region account.
Aggregator route. Sign up, create an API key, and the key works on every model the platform carries. Modellix, for instance, offers $10–30 of free credit without a credit card, which is enough to run several dozen Seedance Pro jobs before paying anything — create a Modellix account and API key. The trade-off is the reverse of the official route’s: zero activation friction, but you’re paying per second through a middle layer rather than per token to ByteDance directly.
If you’re deciding between the two, the honest rule of thumb: the official route wins when you’re all-in on ByteDance models at serious volume (the per-token economics reward scale), need direct vendor support, or have compliance reasons to hold the vendor relationship yourself. Aggregators win when you’re evaluating models, need multiple vendors behind one key, or want to move from signup to first output in minutes.
Seedance Pro Request Shape: Endpoint, Auth, and Parameters
The official API is the reference shape, so start there. Creating a video generation task on BytePlus ModelArk:
1 | POST https://ark.ap-southeast.bytepluses.com/api/v3/contents/generations/tasks |
Request body (text-to-video):
1 | { |
Key details from the official API reference:
contentis an array, and each entry declares its type:text,image_url,video_url,audio_url, ordraft_task(1.5 Pro supports a draft-then-final two-step mode). Image-to-video passes one or twoimage_urlentries withrole: "first_frame"/"last_frame".- Image constraints: single image < 30 MB, width/height 300–6000 px, aspect ratio 0.4–2.5, formats jpeg/png/webp/bmp/tiff/gif (1.5 Pro also accepts heic/heif). Request body max 64 MB — don’t Base64 large files.
- Prompt: recommended ≤ 1,000 English words. Longer prompts scatter the model’s attention and produce missing elements.
- Parameters can also be appended to the prompt text (
--rs 720p --rt 16:9 --dur 5), but the docs recommend passing them in the body — the body path validates strictly and returns errors for invalid values; the prompt-append path silently ignores them.
Aggregator shape (Modellix). The same call through Modellix uses a flat, per-model endpoint and mirrors most of these fields:
1 | POST https://api.modellix.ai/api/v1/bytedance/seedance-1.5-pro-t2v/async |
1 | { |
The 1.5 Pro schema adds generate_audio (default true, 1.5 Pro exclusive), service_tier (default/flex), and return_last_frame. The per-model schema is published at each model page (e.g. the Seedance 1.5 Pro T2V model page) on the site. Whatever route you pick, the submit/poll pattern is the same — which is exactly what the next section covers.
Code: Submit a Text-to-Video Job (cURL + Python)
A complete text-to-video job on the official BytePlus route:
1 | curl --request POST \ |
The response returns a task ID synchronously — the video itself is generated asynchronously:
1 | { |
Poll with GET https://ark.ap-southeast.bytepluses.com/api/v3/contents/generations/tasks/{id} until status is succeeded or failed. The same flow through Modellix — submission returns data.task_id plus a ready-to-call data.get_result.url you can poll directly.
Python, official route, with polling and a 24-hour URL warning:
1 | import time |
Same pattern on Modellix, swapping the base URL and response fields:
1 | import time |
Treat both snippets as a starting skeleton, not a copy-paste production module — verify the response field names against the current docs for the model ID you actually use.
The Async Lifecycle: Polling, Status Codes, and URL Expiry
Video generation is a batch job, not a request/response call. Both routes follow the same lifecycle, and the official status vocabulary is worth memorizing:
| Status | Meaning | Your action |
|---|---|---|
queued |
Accepted, waiting for compute | Back off and poll again |
running |
Generating | Poll with exponential backoff (start 5s, cap 30s) |
succeeded |
Done — content.video_url available |
Download immediately |
failed |
Generation error | Read the error, fix input, resubmit |
cancelled / expired |
Cancelled, or task/URL expired | Treat as terminal; don’t retry as-is |
Two expiry rules that bite people in production, straight from the task retrieval docs:
- Output video URLs are valid for 24 hours. Download or transfer the result before the URL expires — build a storage step into your pipeline, don’t leave URLs in a database.
- Task records are queryable for 7 days only (query window
[T-7 days, T)). Log the task ID and the output together, or you lose the audit trail.
The same constraints apply through aggregators (Modellix’s async tasks behave identically, and it logs per-call status, cost, and output retention in the console). If you’re chaining generations — 1.5 Pro’s draft mode works this way — keep the intermediate task IDs around, because the final-video call references the draft’s task ID.
Seedance Pro Pricing: Token Billing vs Per-Second Rates
Here’s where most comparisons go wrong, and why you can’t just compare two price cards. The official route bills in tokens; aggregators bill in dollars per second of generated video. Those units don’t convert by a fixed ratio — token consumption depends on resolution, duration, and (for 1.5 Pro) whether audio is generated.
Official token pricing (from the BytePlus billing page, current as of August 2026):
| Model | Unit price (per token, two tiers listed) |
|---|---|
seedance-1-5-pro-251215 |
Video with audio: 2.4 / without audio: 1.2; lower tier: 1.2 / 0.6 |
seedance-1-0-pro-250528 |
2.5 / 1.25 |
seedance-1-0-pro-fast-251015 |
1 / 0.5 |
The pricing page’s conversion formula: estimated token consumption = (input video duration + output video duration) × output width × output height × output frame rate / 1024, and estimated price = unit price × token consumption. You’re only charged for successfully generated videos — content-moderation failures cost nothing. Draft mode (1.5 Pro) charges a reduced conversion factor (0.7 silent / 0.6 with audio).
The structural point to notice: 1.5 Pro with audio is priced at 2× the silent rate. If your pipeline doesn’t need generated audio, generate_audio: false halves your official-route unit cost — that’s the cheapest optimization in this article. The audio tier difference is a detail most Seedance comparisons omit entirely — our Seedance vs Kling price comparison covers the same trap on the audio dimension.
Aggregator per-second pricing (Modellix, captured live from model pages on August 10, 2026):
| Model (Modellix endpoint) | 480p | 720p | 1080p |
|---|---|---|---|
bytedance/seedance-1.0-pro-t2v |
$0.0345/s | $0.0690/s | $0.1380/s |
bytedance/seedance-1.0-pro-fast-t2v |
$0.0124/s | $0.0248/s | $0.0497/s |
bytedance/seedance-1.5-pro-t2v |
$0.0276/s | $0.0598/s | $0.1196/s |
bytedance/seedance-1.5-pro-i2v |
$0.0276/s | $0.0598/s | $0.1196/s |
(1.0 Pro I2V mirrors its T2V pricing; full catalog at modellix.ai/models.)
Cost example. A 5-second, 720p, silent text-to-video job on 1.5 Pro:
- Modellix: 5 s × $0.0598/s = $0.299 per job (flat, predictable).
- Official: token estimate ≈ (0 + 5) × 1280 × 720 × 24 / 1024 ≈ 108,000 tokens, × 1.2 (silent, upper tier) ≈ 129,600 → priced in their token billing; the exact dollar figure depends on the tier mapping on the billing page.
Honest caveat: we’re not going to declare a flat “which is cheaper” winner, because the official token math depends on the tier mapping and your input mix, and it rewards volume in ways a per-second card can’t show. What we can say: aggregator pricing is predictable per job and includes no activation barrier; official pricing can beat it at scale if you’re generating constantly, especially for silent 480p/720p work. Model both against your actual duration mix before committing — and re-check the billing pages, because ByteDance rotates pricing (the 2.0 mini/fast models are on limited-time discounts as of August 2026).
Seedance 1.0 Pro vs 1.5 Pro: Which to Integrate
Three questions decide it:
- Do you need generated audio? If the output must include speech, effects, or ambient sound, 1.5 Pro is the only Pro-tier answer — it’s the joint audio-video model. If you handle audio separately (TTS, music beds), 1.0 Pro keeps the pipeline simpler — there’s no audio branch to manage — but it isn’t the cheaper pick: at comparable settings, 1.5 Pro silent is cheaper on both routes (official silent unit price 1.2 vs 1.0 Pro’s 1.25; on Modellix, 1.5 Pro T2V at 480p is $0.0276/s vs 1.0 Pro’s $0.0345/s).
- Is this high-volume, quality-tolerant work? The
fastvariants (1.0 Pro fast) exist exactly for this: $0.0124/s at 480p on Modellix, roughly a third of the standard rate. Draft passes, batch testing, and throwaway storyboards belong here. - Do you need multi-shot or multimodal reference inputs? Neither 1.0 Pro nor 1.5 Pro does what Seedance 2.0 does with 1–9 reference images and reference video/audio. If multi-shot narrative consistency is the requirement, that’s the 2.0 series, not Pro — choosing the right generation avoids re-architecting later (the guide linked above covers it in detail).
For most text-to-video and image-to-video production pipelines, 1.5 Pro is the default pick (native audio, strong prompt adherence, draft mode for cheap iteration), with 1.0 Pro fast as the cost tier and 2.0 as the multimodal tier.
Integration Pitfalls and Error Handling
- Validate inputs locally before submitting. The official API is strict on image dimensions (300–6000 px, aspect 0.4–2.5, < 30 MB) and prompt length (≤ 1,000 words). A preflight check on your side turns “failed generation after 2 minutes” into an instant local error.
- Separate retry buckets. Transient failures (5xx, timeouts before ack) deserve backoff retries; permanent ones (
invalid_input, content-policy rejections, expired URLs) must be surfaced, not retried — retrying a policy rejection burns money and time identically. - Don’t hard-code model IDs.
seedance-1-5-pro-251215will be replaced when ByteDance ships an update; keep the ID in config and watch the model list. - Download outputs immediately. 24-hour URL validity is not a suggestion. Attach a storage sink (TOS bucket, S3, or local) to the poll loop.
- Know what you pay for on failure. Official route: only successful generations are billed; moderation failures cost nothing. Aggregator behavior differs by platform — Modellix’s per-call logs show cost per attempt so you can see discard-rate economics directly.
Frequently Asked Questions About the Seedance Pro API
Is there a free way to try the Seedance Pro API?
Aggregators are the practical free path: Modellix gives $10–30 free credit without a credit card, enough for dozens of 5-second jobs. BytePlus’s official route requires an account balance above $30 (or a resource pack) to activate the 2.x models; the 1.0/1.5 Pro models need console activation.
What is the difference between the official API and aggregator APIs?
Billing unit (tokens vs per second), activation (model activation + balance threshold vs instant key), and scope (ByteDance-only vs multi-provider). The underlying models are the same; see the comparison table above.
How much does the Seedance Pro API cost?
Official route: token-based, 1.5 Pro listed at 2.4/1.2 (with/without audio, upper tier) and 1.2/0.6 (lower tier), 1.0 Pro at 2.5/1.25, fast at 1/0.5. Aggregators: per second — e.g. Modellix 1.5 Pro T2V at $0.0276 (480p) to $0.1196 (1080p) per second. Both change over time; check the live billing pages.
Is Seedance Pro the same as Seedance 2.0?
No. Pro is the 1.0 Pro / 1.5 Pro tier (multi-shot, audio on 1.5 Pro). Seedance 2.0/2.5 is the newer multimodal-reference generation. Some marketplaces label 2.0 endpoints “Pro” — official naming uses seedance-2.0-* for that series.
Does the Seedance Pro API support image-to-video?
Yes — both 1.0 Pro and 1.5 Pro support image-to-video with first-frame (and first-and-last-frame) control, passing image_url entries in the content array with role set to first_frame/last_frame.
What are the output limits?
Video URLs expire after 24 hours and task records are queryable for 7 days. Image inputs max out at 30 MB each and the request body at 64 MB. Check the official API reference for the model-specific limits on your model ID.
Whichever route you pick, the first step is the same: run one real job before you architect around it. Start with a Modellix account and its free credit, or a BytePlus API key and a single text-to-video call — then model your actual duration mix against both billing pages before you commit. The model you choose matters less than knowing which layer you’re buying.