Veo 3.1 Fast Image to Video
ᠵᡠᠸᡝᠪᡠᠮᠪᡳ
veo3.1/fast/image-to-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/v1/run/veo3.1/fast/image-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://vit.doitong.com/api/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/veo3.1/fast/image-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png"
}),
});
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://vit.doitong.com/api/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": False,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/veo3.1/fast/image-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/mnc/developers/docs/mcp)
claude mcp add --transport http doitong-models https://vit.doitong.com/api/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "veo3.1/fast/image-to-video",
"input": {
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png"
}
}
Veo 3.1 Fast Image to Video ᠮᠣᠳᡝᠯ (veo3.1/fast/image-to-video) ᠪᡝ Doitong API ᠵᠠᠯᡳᠨᡩᡝ ᠠᠰᡠᠮᠪᡳ. ᠠᡤᡝᠨᡨᡳ ᡩᠠᡳᠯᠠᠨ: https://doitong.com/mnc/developers/models/veo3.1/fast/image-to-video.md
POST https://vit.doitong.com/api/v1/run/veo3.1/fast/image-to-video?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png"
}
ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝᠨᡳ ᠠᠨᠠᠮᡝ "queued" ᡳᠨᡠ "running" ᠪᡝ, GET https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20 ᠪᡝ ᠠᠨᠠᠮᡝ "succeeded" ᠪᡝᠴᡳ ᠠᠰᡠᠮᠪᡳ; ᡶᡳᠯᡝ ᠪᡝ outputs[].url ᠪᡝᠴᡳ ᠣᠨᡩᠣᠮᡝ. POST https://vit.doitong.com/api/v1/quote/veo3.1/fast/image-to-video ᠪᡝ ᡝᠮᡠ ᠪᡠᠶᡝᠮᡝ ᠪᡝ ᠠᠰᡠᠮᠪᡳᡩᡝ ᠵᠠᠯᡤᠠᠨ ᠪᡝ ᠶᠠᠪᡠᠮᠪᡳ ᠰᡳᠨᡳ ᠠᠮᡤᠠ ᠠᠰᡠᠮᠪᡳ ᠣᠯᡥᠣᠮᡝ.
ᡝᠨᡳ ᠵᠠᠯᡳᠨ: $0.40 400 API ᠺᠷᡝᡩᡳᠲ ᡝᡵᡝ ᠵᠠᠯᡳᠨᡩᡝ ᠠᠰᡠᠮᠪᡳ
ᠰᡳᠨᡳ ᠵᠠᠮᡠᠰᡳᠨ API ᠵᡳᡵᡤᠠ. ᡝᠯᡝ ᡝᠨᡩᡝ ᡳᠯᡤᠠᠮᠪᡳ ᡝᡵᡝ ᠮᡠᠨᡩᡝ ᡴᠣᡩᡝ ᡩᠠᠮᡠ ᠮᡝᠨᡩᡝᡵᡝ ᠪᠠᡩᡝᠯᡝᠨ ᠠᠮᡪᡳ ᡳᠨᡠ API ᠵᡳᡵᡤᠠ ᡩᡝᠪᡨᡝᡵᡝ ᡩᡝ ᠠᡴᡠ᠉ ᡳᠨᡠ ᡝᡵᡝᠩᡤᡝ ᠠᠮᠪᠠᠨ ᠮᡠᠨᡩᡝ ᠪᡝ ᠠᠰᡠᡵᠠᠮᠪᡳ: ᠮᡠᡵᡝ ᡩᠠᠮᡠ ᠪᡠᠶᡝᡵᡝ ᠪᠠᡩᡝᠯᡝᠨ ᡩᡝ ᠰᡳᠨᡩᡝᠮᡝ ᠠᠪᡠᠮᡝ ᠰᠠᠮᡪᡳ᠉
ᡝᡵᡝᠮᡝ
ᡥᡡᠯᠠᠨ{ "shot": { "composition": "wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike", "lens": "35mm", "frame_rate": "24fps", "camera_movement": "static" }, "subject": { "description": "a futuristic, strong motorbike assembling itself from scattered parts", "wardrobe": "", "props": "mechanical parts, gears, wires, pistons, body panels, wheels" }, "scene": { "location": "large, clear industrial factory floor", "time_of_day": "midday", "environment": "shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze" }, "visual_details": { "action": "motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle", "special_effects": "electric zaps, soft glows, heat distortion waves rising from the exhaust", "hair_clothing_motion": "" }, "cinematography": { "lighting": "bright overhead industrial lighting with sharp contrast, emphasizing form and texture", "color_palette": "warm tones with metallic highlights and soft amber reflections", "tone": "epic and intense, emphasizing mechanical precision and power" }, "audio": { "music": "minimalist, deep synthetic pulses that build with the assembly", "ambient": "deep factory hum, subtle air movements", "sound_effects": "clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble", "mix_level": "cinematic mix with prioritized effects and balanced music bed" }, "dialogue": { "character": "", "line": "", "subtitles": false } }
ᡤᡳᠰᡠᠨ ᠪᡠᠶᡝᠮᡝ
ᠵᠠᡴᡠᠨᡳ ᠵᡠᠯᡝ ᡩᡝᡵᡤᡳ ᡩᡝᠪᡝᠰᡠᠮᡝ ᠵᡠᠯᡤᡝ ᠪᡠᠶᡝᠮᡝ᠈ ᡳᠨᡳ ᡤᡳᠰᡠᠨ ᠪᠠᡳ ᡝᠨᡝᠩᡤᡳ ᠠᠮᠪᡳ
/run/veo3.1/fast/image-to-video?wait=20
ᠵᠠᠯᡳᠨ → $0.40
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://vit.doitong.com/api/v1/run/veo3.1/fast/image-to-video?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://vit.doitong.com/api/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://vit.doitong.com/api/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/veo3.1/fast/image-to-video?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png"
}),
});
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://vit.doitong.com/api/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": False,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/veo3.1/fast/image-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": "veo3.1/fast/image-to-video",
"input": {
"prompt": "{\n \"shot\": {\n \"composition\": \"wide shot centered at eye level, capturing the full view of the factory floor and the assembling motorbike\",\n \"lens\": \"35mm\",\n \"frame_rate\": \"24fps\",\n \"camera_movement\": \"static\"\n },\n\n \"subject\": {\n \"description\": \"a futuristic, strong motorbike assembling itself from scattered parts\",\n \"wardrobe\": \"\",\n \"props\": \"mechanical parts, gears, wires, pistons, body panels, wheels\"\n },\n\n \"scene\": {\n \"location\": \"large, clear industrial factory floor\",\n \"time_of_day\": \"midday\",\n \"environment\": \"shiny, clean surfaces with strong light and dramatic shadows; the atmosphere is warm and filled with subtle ambient haze\"\n },\n\n \"visual_details\": {\n \"action\": \"motorbike parts fly in from all directions, clicking and locking into place to form a complete, sleek vehicle\",\n \"special_effects\": \"electric zaps, soft glows, heat distortion waves rising from the exhaust\",\n \"hair_clothing_motion\": \"\"\n },\n\n \"cinematography\": {\n \"lighting\": \"bright overhead industrial lighting with sharp contrast, emphasizing form and texture\",\n \"color_palette\": \"warm tones with metallic highlights and soft amber reflections\",\n \"tone\": \"epic and intense, emphasizing mechanical precision and power\"\n },\n\n \"audio\": {\n \"music\": \"minimalist, deep synthetic pulses that build with the assembly\",\n \"ambient\": \"deep factory hum, subtle air movements\",\n \"sound_effects\": \"clicks, whirs, zaps, shinks, thuds, whooshes, crackles, hiss, rumble\",\n \"mix_level\": \"cinematic mix with prioritized effects and balanced music bed\"\n },\n\n \"dialogue\": {\n \"character\": \"\",\n \"line\": \"\",\n \"subtitles\": false\n }\n}",
"duration": "4s",
"resolution": "720p",
"generate_audio": false,
"image": "https://content.doitong.com/dev-api/2026/10/21/req_yg4iszi3085vhtnni2w1pfm2/0-U0GKmQ8vaXNu2J2S7PyWQ_D7e1WHp8.png"
},
"wait_seconds": 20
}
}
}
ᡝᠨᡳ ᠵᠠᠯᡳᠨ ᠪᡝ ᠵᠠᠯᠠᠨᠠᠮᡝ
ᡳᠨᡝ ᠵᠠᠯᠠᠨ ᡝᡵᡝ ᠪᡠᡵᡝᠪᡝᡵᡳ ᡩᡝ ᠪᡳᠮᡝ᠈ Doitong API ᡩᡝ ᠵᡝᠯᡤᡳ ᡩᠠᡵᠠᠮᡝ᠈ Remember ᠵᡠᠯᡝᠮᡝ ᡤᡳᠯᠠᠮᡝ localStorage ᡩᡝ ᠰᡠᠯᡝᠮᡝ ᠪᡳᠮᡝ API ᠵᠠᠯᠠᠨ ᠠᠪᠠᠮᡝ
Veo 3.1 Fast Image to Video ᡠᡵᡝᠮᡝ
Veo 3.1 ᠸᡝᠰᡳ ᠩᡤᠠᠨ ᡳ ᠵᠠᠯᡠ ᠠᠪᡠᠯᡠᠨ:ᠰᡠᠯᡥᠠ ᠪᡝᠶᡝᠨ᠂ ᠵᠠᠯᡤᠠᠨ ᠣᠴᡳ ᠠᡠᡩᡳᠣ ᠪᡝ ᠪᡠᠮᡝ᠂ ᠠᠰᡥᠠᠨ ᠪᡠᠮᡝ ᠮᡠᠩᡤᠠᠨ ᠵᠠᠯᠠᠨᠠ。 4᠂ 6 ᠣᠴᡳ 8 ᠰᡝᡴᡠᠨᡩ 720p᠂ 1080p ᠣᠴᡳ 4K,ᠠᡩᠠᠯᡳ ᠣᠴᡳ ᠵᠠᠰᠠᡥᠠ 16:9 / 9:16 ᠪᡝᠶᡝᠨ,ᠠᡠᡩᡳᠣ ᠪᡳᠨᠠ ᠣᠴᡳ ᠰᡠᠯᡥᠠ ᠵᠠᠰᠠᠮᡝ ᠪᡠᠮᠪᡳ。
ᠵᠠᡴᡠᠨ
ᠵᠠᡴᡠᠨᡳ ᡤᡳᠰᡠᠨ ᠵᡝᠯᡤᡳ ᠠᠪᠠᠮᠪᡳ᠈ ᠨᡝᠮᡝ ᠮᡠᠰᡝ ᡠᠯᠠᠮᠪᡳ ᠵᠠᡴᡠᠨᡳ ᡤᡳᠰᡠᠨ
promptᡴᠠᠷᠠᡴᡡ
aspect_ratioᠵᡠᠯᡝ
durationᠵᡠᠯᡝ
negative_promptᠵᡠᠯᡝ
resolutionᠵᡠᠯᡝ
generate_audioᠵᡠᠯᡝ
seedᠵᡠᠯᡝ
auto_fixᠵᡠᠯᡝ
safety_toleranceᠵᡠᠯᡝ
image_urlᡴᠠᠷᠠᡴᡡ
image
ᠪᡠᠮᠪᡳᠯᡝᠰᡝ ᡝᠮᡠ ᡤᡝᠮᡠᠨᡳ https:// URL᠈ 10 MB ᡩᡝ ᡩᡝᠷᡤᡳ data: URI ᠵᡝᡵᡤᡳ ᡝᠮᡝ᠈ ᡳᠨᡝ ᠪᡠᠮᠪᡳᠯᡝᠰᡝᠨᡳ file_url ᠠᠪᠠᠮᠪᡳ ᠪᡠᠮᠪᡳ
ᠪᡠᠶᡝᠮᡝ
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "veo3.1/fast/image-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": 400,
"usd": "0.40",
"charged": 400,
"refunded": 0
},
"input": {
"prompt": "The fox trots along the path and the fireflies swirl around it, camera slowly pushes in",
"image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
"duration": 4,
"resolution": "720p"
},
"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
}
},
"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://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://vit.doitong.com/api/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
ᠪᡠᠶᡝᠮᡝᠨᡳ ᡤᡳᠰᡠᠨ
- video
- object {url, content_type, file_name, file_size}ᠮᠣᠳᡝᠯ ᠪᡠᠶᡝᡥᠠᠨ ᠰᡠᠨᡤᠠ.
ᡝᠯᡤᡳ Veo 3.1 ᡠᠯᡤᡳᠨ
ᡝᠯᡤᡳ ᡩᠠᠯᡳᠨ: ᡤᠠᠳᠠᠨ ᡩᡝ ᠰᡠᠨᡤᠠ
AI ᠠᡤᡝᠨᡨᡳ ᡠᠴᡠᠷᡳ᠈ ᡝᡵᡝ ᡩᡝᠪᡝᡵᡳ Markdown ᠰᡳᠨᡩᠠᡵᡳ https://doitong.com/mnc/developers/models/veo3.1/fast/image-to-video.md. ᡝᡵᡝ ᠮᠣᡩᡝᠯ ᠵᠠᡴᡠᠨ ᠰᡠᠯᡠᠮᡝ https://doitong.com/developers/llms.txt