Seedance 2.0 Mini
Integrate
bytedance/seedance-2.0/mini/reference-to-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/bytedance/seedance-2.0/mini/reference-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/bytedance/seedance-2.0/mini/reference-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bytedance/seedance-2.0/mini/reference-to-video", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/en-US/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.ru/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "bytedance/seedance-2.0/mini/reference-to-video",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
}
Call the Seedance 2.0 Mini model (bytedance/seedance-2.0/mini/reference-to-video) through the Doitong API. Docs for agents: https://doitong.com/en-US/developers/models/bytedance/seedance-2.0/mini/reference-to-video.md
POST https://api.doitong.ru/v1/run/bytedance/seedance-2.0/mini/reference-to-video?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
If the response status is "queued" or "running", poll GET https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20 until it is "succeeded"; the files are in outputs[].url. POST https://api.doitong.ru/v1/quote/bytedance/seedance-2.0/mini/reference-to-video with the same body returns the exact price before the run.
Files like the example: $2.321 2,321 API credits · ≈ ₽249.07 your files are measured before the run Run it on this page
Your new API key. It is shown only now and is already in the code and in the API key field below. Keep it secret: never put it in code that runs in a browser.
Made on Doitong
Public works made with Seedance 2.0 by the Doitong community. Reuse a prompt in one click.
Video
A close-up portrait of a striking cyberpunk woman with sleek dark hair partially wet and falling around her face. She’s wearing glossy, high-tech neon visor goggles with a vivid color gradient — bright yellow, orange, and pink reflecting glowing city lights. Her expression is confident and...
Video
Ultra-realistic scene featuring miniature construction workers in orange vests and hard hats, actively working on a giant [pizza]. The tiny workers are using small tools, cranes, and machines to [assemble]. The [pizza] is placed on a metal surface or kitchen countertop. Steam or particles rise...
Video
Two sandboarders racing down massive golden sand dunes, carving aggressively in wide S-curves, heading directly toward the camera in a low, dramatic angle. They are captured in mid-motion, kicking up thick trails of sand behind their boards. Both riders wear full protective sandboarding suits in...
Video
A high-fashion cinematic video scene in slow motion, set on a wide white desert with fine rippled sand under a deep blue sky. A tall Black male model and a woman walk together in full-body view, directly toward the camera. The male model wears a dramatic flowing red trench coat, matching tailored...
Video
A fashionable young woman with black hair, walking confidently down a modern city street. She is wearing stylish everyday fashion — a black turtleneck top, oversized gray blazer, and wide-leg black trousers with chunky black boots. Her outfit is monochrome, mostly black and gray, with minimalist...
Video
Scene: On a large metal grill surface, miniature construction workers in orange safety vests and hard hats are preparing a giant steak. The raw meat, marbled and richly textured, rests across the hot grill. Some workers are spreading seasoning using tiny wheelbarrows filled with salt and pepper,...
Video
Subject: Young woman with closed eyes Context: Surrounded by goldfish swimming in the air Action: Portraiture in a dreamy aesthetic Style: Ethereal, artistic, reminiscent of fine art photography Camera motion (optional): Composition (optional): Shallow depth of field Ambiance (optional): Soft...
Video
photorealistic, live-action film, real actress, ARRI Alexa look, desaturated cold tones, soft natural lighting, subtle dust in air, volumetric haze, consistent city destruction young fragile woman, pale skin, long dark ash-blonde hair, slightly messy, dirty torn gray nightgown, barefoot, natural...
Video
Subject: Young man with a beard, large iridescent soap bubbles. Context: Outdoor park at sunset, blurred green foliage. Action: Man gently blows a large bubble from suds on his hand, bubbles float up in slow motion. Style: Cinematic, dreamlike, magical realism, ultra realistic. Camera motion:...
Video
A cute young woman with curly red hair and freckles, wearing a simple white t-shirt, sitting in a stylish, modern café. She is about to take a bite of a large juicy burger, holding it with both hands. The lighting is warm and cinematic, with soft ambient glows from hanging lights in the...
Фокус камеры плавно переходит с капель на стекле на отражение глаз Артёма, а затем обратно. Капли медленно и ритмично стекают вниз, создавая гипнотический эффект. Вспышка молнии на мгновение освещает все стекло, делая капли похожими на россыпь бриллиантов, после чего всё снова погружается в...
Банан подходит к друзьям у бара, они радостно приветствуют друг друга, ударяя кулачками. Одна из виноградинок делает забавное танцевальное движение на стуле. Камера совершает плавный круговой облет на 360 градусов вокруг компании, подчеркивая их единство. Освещение в клубе ритмично меняется от...
Все три персонажа одновременно подпрыгивают, выполняя сложный акробатический трюк в воздухе. Вокруг них взрываются пушки с конфетти, заполняя кадр блестящими частицами. Камера совершает быстрый облет по дуге, замедляясь в момент наивысшей точки прыжка. Эмоциональный пик подчеркивается резким...
Персонажи медленно идут к выходу, Банан поправляет куртку и смотрит в окно на просыпающийся город. Виноградинки устало, но счастливо переглядываются, идя рядом. Камера плавно поднимается к потолку, пока персонажи постепенно уменьшаются в кадре. Свет в клубе медленно гаснет, оставляя лишь слабые...
A very slow, dramatic zoom out from the close-up of Lenny's sad face to a wide shot of the entire basket, showing just how alone he is. The light on him extinguishes as the scene fades to black. On-screen dialogue (characters speak with lip-sync): Lenny (Lemon): "(Sighs heavily) Someday she'll...
A sharp, dramatic zoom-in on Lenny's face as he delivers the harsh line. The background blurs completely, focusing all attention on his emotional state. On-screen dialogue (characters speak with lip-sync): Lenny (Lemon): "He's just using your kindness! To him, you're just another shiny star in...
Build a request
Controls are generated from the model schema. The code and the price update as you change them.
/run/bytedance/seedance-2.0/mini/reference-to-video?wait=20
quote → $2.321
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.ru/v1/run/bytedance/seedance-2.0/mini/reference-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.ru/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.ru/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/bytedance/seedance-2.0/mini/reference-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.ru/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/bytedance/seedance-2.0/mini/reference-to-video", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "bytedance/seedance-2.0/mini/reference-to-video",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"wait_seconds": 20
}
}
}
Run this request
Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key
About Seedance 2.0 Mini
Generates video from a prompt plus reference media: up to 9 `image_urls`, 3 `video_urls` and 3 `audio_urls`, cited in the prompt as @Image1, @Video1, @Audio1 and so on. Output is 480p or 720p, auto or 4 to 15 seconds, with aspect ratios from 21:9 to 9:16. Synchronized audio is generated by default.
Parameters
Send either the canonical name or the native name, not both. Canonical names
promptrequired
image_urlsoptional
images
video_urlsoptional
videos
audio_urlsoptional
audios
resolutionoptional
durationoptional
aspect_ratiooptional
generate_audiooptional
codecoptional
end_user_idoptional
File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files
Output
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "bytedance/seedance-2.0/mini/reference-to-video",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 2321,
"usd": "2.321",
"charged": 2321,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"output": {
"video": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
},
"seed": 42
},
"outputs": [
{
"type": "video",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_size": 1843200,
"width": 1280,
"height": 720,
"duration": 5,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Fields of output
- video
- object {url, content_type, file_name, file_size}Video file produced by generation.
- seed
- integerSeed value applied during generation.
Other Seedance 2.0 variants
More models: Reference to Video
For AI agents: this page as Markdown is at https://doitong.com/en-US/developers/models/bytedance/seedance-2.0/mini/reference-to-video.md. All models and guides: https://doitong.com/developers/llms.txt