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

  1. Sign up at ccapi.ai
  2. Open Console โ†’ Tokens and create a token
  3. Copy the key โ€” it starts with sk- and is shown once
  4. 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.