Doubao API: How to Access ByteDance's Video and Image Models
If you have searched for the Doubao API and come away confused, the reason is that Doubao is a family name, not a model name. There is no single endpoint called "Doubao". ByteDance ships several distinct model lines under that umbrella, and the two that matter for generation work are:
- Seedance โ video generation, text-to-video and image-to-video
- Seedream โ image generation, text-to-image and multi-reference editing
Sending doubao as a model name will not work anywhere. You send the specific
model, and the names are all prefixed accordingly.
The model strings you actually send
This is the part most guides skip. The names below are what go in the model
field of the request body.
Video โ Seedance
| Model | What it is |
|---|---|
doubao-seedance-2-0 |
The flagship. Best quality, highest cost. |
doubao-seedance-2-0-fast |
Faster and cheaper, same pipeline. |
doubao-seedance-2-0-mini |
The cheapest of the three. |
Each also answers to a dated identifier (doubao-seedance-2-0-260128 and so
on) and to bytedance/seedance-2.0-style aliases. Pin the dated name in
production if you need the output to stay stable; use the short name if you want
to follow the current release.
Images โ Seedream
| Model | What it is |
|---|---|
doubao-seedream-5-0-pro-260628 |
The Pro tier. |
doubao-seedream-5-0 |
The current standard tier. |
doubao-seedream-4-5-251128 |
The previous generation, still live. |
Which one you want
Work from the job rather than the name.
Video that a human will watch once โ doubao-seedance-2-0-fast. Drafts,
social clips, internal review. The gap to the flagship is visible side by side
and invisible in a feed.
Video that represents the product โ doubao-seedance-2-0. Use it when the
clip is the deliverable rather than a step toward one.
High volume where cost dominates โ doubao-seedance-2-0-mini.
Images โ start on doubao-seedream-5-0 and move to the Pro tier only when
the standard tier is failing on quality rather than on resolution. Those are
different problems, and conflating them is the most common way to overspend.
Getting access
- Sign up at ccapi.ai
- Open Console โ Tokens and create a token
- Copy the key โ it starts with
sk-and is shown once - Add credit under Console โ Top Up
One key reaches every model on the platform, not just the Doubao family. There is no separate cloud account to register and no regional console to configure, which is usually why people go looking for an aggregator in the first place.
Making a call
Video generation is asynchronous, because rendering takes longer than an HTTP request should wait. You submit a job and poll it:
curl https://api.ccapi.ai/v1/videos \
-H "Authorization: Bearer sk-YOUR-KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-fast",
"prompt": "a red bicycle rolling through a puddle, slow motion",
"metadata": { "ratio": "16:9", "duration": 5 }
}'
The response carries a task id. Poll it until the status reads completed and
the result carries a video URL. Images are synchronous and return the asset
directly.
To do the same from Claude Code, Cursor or Cline without writing the request at all, connect the MCP server and ask in plain language. The same key works.
How billing works
Video and image models bill per call, not per token. Prompt length is free; retries are not. The rate varies with the model and with the requested resolution and duration, and your account's group rate is applied to the model's base price โ which is why this article gives you model names rather than dollar figures. The pricing page shows the rate that applies to your account when you are signed in.
Failed generations and outputs blocked by content moderation are not billed.
Frequently asked questions
Is there a single "Doubao API" endpoint?
No. Doubao is a family name covering several model lines. You call the specific
model โ Seedance for video, Seedream for images โ and the model names carry the
doubao- prefix.
Do I need a separate ByteDance account? No. One CCAPI key reaches the Doubao models along with every other model on the platform.
What is the difference between Seedance and Seedream? Seedance generates video, Seedream generates images. They are separate models that happen to sit under the same family name.
Which Seedance model should I start with?
doubao-seedance-2-0-fast. It is materially cheaper than the flagship and the
difference is hard to see in anything short of a side-by-side comparison. Move
up when the output is the deliverable.
Does prompt length affect the price? No. These models bill per call, so a long prompt costs exactly what a short one does. A failed generation is worth reading rather than repeating.
Can I pin a model version?
Yes, and you should in production. Use the dated identifiers such as
doubao-seedance-2-0-260128. The short names follow the current release, which
is convenient in development and surprising in production.
The short version
Doubao is the family. Seedance is the video model and Seedream is the image model, and you address them by their prefixed names rather than by "doubao". Start on the fast tier, pin the dated name once it matters, and check your rate on the pricing page.