
ᠠᠯᡳᠨ ᡠᠨᡩᡝᡵᡝᠮᡝ. “video”, “FLUX” ᠠᡶᡳ “webhooks” ᠪᡝ ᠪᠠᡳ᠌ᠯᠠ.
ᡩᠠᠯᡳᠨ ᠪᡝ ᡠᠯᡥᠠᠮᠪᡳ…
nano-banana-2/edit
# 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/nano-banana-2/edit?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog'\''s pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}'
# 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/nano-banana-2/edit?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}),
});
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": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png",
],
"resolution": "1K",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/nano-banana-2/edit", 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": "nano-banana-2/edit",
"input": {
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}
}
Nano Banana 2 Edit ᠮᠣᠳᡝᠯ (nano-banana-2/edit) ᠪᡝ Doitong API ᠵᠠᠯᡳᠨᡩᡝ ᠠᠰᡠᠮᠪᡳ. ᠠᡤᡝᠨᡨᡳ ᡩᠠᡳᠯᠠᠨ: https://doitong.com/mnc/developers/models/nano-banana-2/edit.md
POST https://vit.doitong.com/api/v1/run/nano-banana-2/edit?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}
ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝᠨᡳ ᠠᠨᠠᠮᡝ "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/nano-banana-2/edit ᠪᡝ ᡝᠮᡠ ᠪᡠᠶᡝᠮᡝ ᠪᡝ ᠠᠰᡠᠮᠪᡳᡩᡝ ᠵᠠᠯᡤᠠᠨ ᠪᡝ ᠶᠠᠪᡠᠮᠪᡳ ᠰᡳᠨᡳ ᠠᠮᡤᠠ ᠠᠰᡠᠮᠪᡳ ᠣᠯᡥᠣᠮᡝ.
ᡝᠨᡳ ᠵᠠᠯᡳᠨ: $0.08 80 API ᠺᠷᡝᡩᡳᠲ ᡝᡵᡝ ᠵᠠᠯᡳᠨᡩᡝ ᠠᠰᡠᠮᠪᡳ
ᠰᡳᠨᡳ ᠵᠠᠮᡠᠰᡳᠨ API ᠵᡳᡵᡤᠠ. ᡝᠯᡝ ᡝᠨᡩᡝ ᡳᠯᡤᠠᠮᠪᡳ ᡝᡵᡝ ᠮᡠᠨᡩᡝ ᡴᠣᡩᡝ ᡩᠠᠮᡠ ᠮᡝᠨᡩᡝᡵᡝ ᠪᠠᡩᡝᠯᡝᠨ ᠠᠮᡪᡳ ᡳᠨᡠ API ᠵᡳᡵᡤᠠ ᡩᡝᠪᡨᡝᡵᡝ ᡩᡝ ᠠᡴᡠ᠉ ᡳᠨᡠ ᡝᡵᡝᠩᡤᡝ ᠠᠮᠪᠠᠨ ᠮᡠᠨᡩᡝ ᠪᡝ ᠠᠰᡠᡵᠠᠮᠪᡳ: ᠮᡠᡵᡝ ᡩᠠᠮᡠ ᠪᡠᠶᡝᡵᡝ ᠪᠠᡩᡝᠯᡝᠨ ᡩᡝ ᠰᡳᠨᡩᡝᠮᡝ ᠠᠪᡠᠮᡝ ᠰᠠᠮᡪᡳ᠉
ᠵᠠᡴᡠᠨᡳ ᠵᡠᠯᡝ ᡩᡝᡵᡤᡳ ᡩᡝᠪᡝᠰᡠᠮᡝ ᠵᡠᠯᡤᡝ ᠪᡠᠶᡝᠮᡝ᠈ ᡳᠨᡳ ᡤᡳᠰᡠᠨ ᠪᠠᡳ ᡝᠨᡝᠩᡤᡳ ᠠᠮᠪᡳ
/run/nano-banana-2/edit?wait=20
ᠵᠠᠯᡳᠨ → $0.08
# 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/nano-banana-2/edit?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog'\''s pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}'
# 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/nano-banana-2/edit?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
}),
});
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": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png",
],
"resolution": "1K",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/nano-banana-2/edit", 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": "nano-banana-2/edit",
"input": {
"prompt": "Turn this photo into a 1:7 scale collectible figurine of the dog on a round clear acrylic base, standing on a tidy wooden desk with soft studio light; keep the dog's pose, fur colors and expression.",
"images": [
"https://content.doitong.com/dev-api/2026/10/21/req_3yckkmcr3dayonfhigdeaiia/0-pz7p4ydjvjJmL__s7lK6p_L0WSl1GK.png"
],
"resolution": "1K"
},
"wait_seconds": 20
}
}
}
ᡳᠨᡝ ᠵᠠᠯᠠᠨ ᡝᡵᡝ ᠪᡠᡵᡝᠪᡝᡵᡳ ᡩᡝ ᠪᡳᠮᡝ᠈ Doitong API ᡩᡝ ᠵᡝᠯᡤᡳ ᡩᠠᡵᠠᠮᡝ᠈ Remember ᠵᡠᠯᡝᠮᡝ ᡤᡳᠯᠠᠮᡝ localStorage ᡩᡝ ᠰᡠᠯᡝᠮᡝ ᠪᡳᠮᡝ API ᠵᠠᠯᠠᠨ ᠠᠪᠠᠮᡝ
Nano Banana 2 ᡳ ᡩᠠᠰᠠᡨᠠᡵᡝ ᠮᠣᡩᡝᠯ: ᡤᠠᠳᠠᠨ ᠪᡝ ᠪᡠᡶᡳ ᡥᠠᠯᠠᡵᡝ ᠪᠠ ᠪᡝ ᡤᡳᠰᡠᡵᡝ, ᡝᠮᡝᠪᡳᠴᡳ ᡤᠠᠳᠠᠨ ᠪᡝ ᠸᠠᠯᡳᠶᠠᡶᡳ ᠰᡠᠨᡤᠠ, ᡤᡳᠰᡠᠨ ᡳ ᡶᡳᠯᡝ ᠵᠠᡳ PDF (ᡝᠮᡠ ᡩᡝ 15 MB ᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ) ᠪᡝ ᡨᡠᠸᠠᠪᡠᡵᡝ ᠪᠠᡳᡨᠠ ᠣᠪᡠᠮᡝ ᠪᡠ. ᠪᡠᠶᡝᠮᡝ ᠪᠠ 0.5K ᠴᡳ 4K ᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ, ᠵᠠᠯᠠᠨ ᡳ ᡥᡝᠴᡝᠨ 1:8 ᠴᡳ 8:1 ᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ, ᠰᠣᠨᠵᠣᠮᡝ ᠸᡝᠪ ᠪᠠᡳᡨᠠ ᠪᠠᡳᡥᠠᠮᡝ ᠵᠠᡳ ᡩᡝᠨ ᡤᡡᠨᡳᠨ, ᡝᠮᡠ ᡤᡝᡪᡳᠯᡝᠨ ᡩᡝ ᡩᡠᡳᠨ ᠪᡠᠶᡝᠮᡝ ᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ.
ᠵᠠᡴᡠᠨᡳ ᡤᡳᠰᡠᠨ ᠵᡝᠯᡤᡳ ᠠᠪᠠᠮᠪᡳ᠈ ᠨᡝᠮᡝ ᠮᡠᠰᡝ ᡠᠯᠠᠮᠪᡳ ᠵᠠᡴᡠᠨᡳ ᡤᡳᠰᡠᠨ
promptᡴᠠᠷᠠᡴᡡ
num_imagesᠵᡠᠯᡝ
num_outputs
seedᠵᡠᠯᡝ
aspect_ratioᠵᡠᠯᡝ
output_formatᠵᡠᠯᡝ
safety_toleranceᠵᡠᠯᡝ
image_urlsᠵᡠᠯᡝ
images
system_promptᠵᡠᠯᡝ
resolutionᠵᡠᠯᡝ
video_urlᠵᡠᠯᡝ
video
audio_urlᠵᡠᠯᡝ
audio
pdf_urlᠵᡠᠯᡝ
limit_generationsᠵᡠᠯᡝ
enable_web_searchᠵᡠᠯᡝ
thinking_levelᠵᡠᠯᡝ
ᠪᡠᠮᠪᡳᠯᡝᠰᡝ ᡝᠮᡠ ᡤᡝᠮᡠᠨᡳ https:// URL᠈ 10 MB ᡩᡝ ᡩᡝᠷᡤᡳ data: URI ᠵᡝᡵᡤᡳ ᡝᠮᡝ᠈ ᡳᠨᡝ ᠪᡠᠮᠪᡳᠯᡝᠰᡝᠨᡳ file_url ᠠᠪᠠᠮᠪᡳ ᠪᡠᠮᠪᡳ
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "nano-banana-2/edit",
"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": 80,
"usd": "0.08",
"charged": 80,
"refunded": 0
},
"input": {
"prompt": "Turn this night street scene into a sunny morning, keep the sneaker and the puddle reflections",
"images": [
"https://content.doitong.com/images/showcase/v3/gen_sneaker_ad.jpg"
],
"resolution": "1K"
},
"output": {
"images": [
{
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768
}
],
"description": "string"
},
"outputs": [
{
"type": "image",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"width": 1024,
"height": 768,
"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"
}
}
AI ᠠᡤᡝᠨᡨᡳ ᡠᠴᡠᠷᡳ᠈ ᡝᡵᡝ ᡩᡝᠪᡝᡵᡳ Markdown ᠰᡳᠨᡩᠠᡵᡳ https://doitong.com/mnc/developers/models/nano-banana-2/edit.md. ᡝᡵᡝ ᠮᠣᡩᡝᠯ ᠵᠠᡴᡠᠨ ᠰᡠᠯᡠᠮᡝ https://doitong.com/developers/llms.txt