GPT Image 2 API
ᠵᡠᠸᡝᠪᡠᠮᠪᡳ
openai/gpt-image-2
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/openai/gpt-image-2?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.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/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/openai/gpt-image-2?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.com/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/openai/gpt-image-2", 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://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "openai/gpt-image-2",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
}
GPT Image 2 API ᠮᠣᠳᡝᠯ (openai/gpt-image-2) ᠪᡝ Doitong API ᠵᠠᠯᡳᠨᡩᡝ ᠠᠰᡠᠮᠪᡳ. ᠠᡤᡝᠨᡨᡳ ᡩᠠᡳᠯᠠᠨ: https://doitong.com/mnc/developers/models/openai/gpt-image-2.md
POST https://api.doitong.com/v1/run/openai/gpt-image-2?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"
}
ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝᠨᡳ ᠠᠨᠠᠮᡝ "queued" ᡳᠨᡠ "running" ᠪᡝ, GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 ᠪᡝ ᠠᠨᠠᠮᡝ "succeeded" ᠪᡝᠴᡳ ᠠᠰᡠᠮᠪᡳ; ᡶᡳᠯᡝ ᠪᡝ outputs[].url ᠪᡝᠴᡳ ᠣᠨᡩᠣᠮᡝ. POST https://api.doitong.com/v1/quote/openai/gpt-image-2 ᠪᡝ ᡝᠮᡠ ᠪᡠᠶᡝᠮᡝ ᠪᡝ ᠠᠰᡠᠮᠪᡳᡩᡝ ᠵᠠᠯᡤᠠᠨ ᠪᡝ ᠶᠠᠪᡠᠮᠪᡳ ᠰᡳᠨᡳ ᠠᠮᡤᠠ ᠠᠰᡠᠮᠪᡳ ᠣᠯᡥᠣᠮᡝ.
ᡝᠨᡳ ᠵᠠᠯᡳᠨ: ≈$0.106 106 API ᠺᠷᡝᡩᡳᠲ ᡝᡵᡝ ᠵᠠᠯᡳᠨᡩᡝ ᠠᠰᡠᠮᠪᡳ
ᠰᡳᠨᡳ ᠵᠠᠮᡠᠰᡳᠨ API ᠵᡳᡵᡤᠠ. ᡝᠯᡝ ᡝᠨᡩᡝ ᡳᠯᡤᠠᠮᠪᡳ ᡝᡵᡝ ᠮᡠᠨᡩᡝ ᡴᠣᡩᡝ ᡩᠠᠮᡠ ᠮᡝᠨᡩᡝᡵᡝ ᠪᠠᡩᡝᠯᡝᠨ ᠠᠮᡪᡳ ᡳᠨᡠ API ᠵᡳᡵᡤᠠ ᡩᡝᠪᡨᡝᡵᡝ ᡩᡝ ᠠᡴᡠ᠉ ᡳᠨᡠ ᡝᡵᡝᠩᡤᡝ ᠠᠮᠪᠠᠨ ᠮᡠᠨᡩᡝ ᠪᡝ ᠠᠰᡠᡵᠠᠮᠪᡳ: ᠮᡠᡵᡝ ᡩᠠᠮᡠ ᠪᡠᠶᡝᡵᡝ ᠪᠠᡩᡝᠯᡝᠨ ᡩᡝ ᠰᡳᠨᡩᡝᠮᡝ ᠠᠪᡠᠮᡝ ᠰᠠᠮᡪᡳ᠉
Doitong ᡩᡝ ᠪᡠᠶᡝᠮᡝ
Doitong ᡤᡝᠮᡠᠨᡳ GPT Image 2 API ᡩᡝ ᠵᠠᠯᠠᠨ ᠪᡠᠶᡝᠮᡝ᠈ ᡳᠨᡳ ᡤᡳᠰᡠᠨ ᡝᠮᡠ ᡤᡳᠯᠠᠨ ᡩᡝ ᡩᠠᡵᠠᠮᡝ
A polished studio concept art board — a single composite page that reads as a high-end pre-production pitch deck for an animated short. NOT a vintage pencil sketch, NOT a finished movie frame, but a polished concept page in the visual treatment described below. Layout: TOP HEADER (left): bold...
Создай не меняя черты лица. Фотореалистичный винтажный cinematic portrait. В кадре большое напольное зеркало в тонкой арочной раме. Спиной к камере у зеркала стоит взрослая девушка-, корпус развёрнут к своему отражению, голова слегка повёрнута в профиль, взгляд направлен в зеркало на свою...
Создай не меняя черты лица. Фотореалистичный винтажный cinematic portrait. В кадре большое напольное зеркало в тонкой арочной раме. Спиной к камере у зеркала стоит взрослая девушка-, корпус развёрнут к своему отражению, голова слегка повёрнута в профиль, взгляд направлен в зеркало на свою...
Create image: ultra realistic image: man 35 years old sitting in super luxury house (ref4). Luxury furniture, marble floor with east carpet. The most luxurious way. Middle shot One cake in front of him on the marble table, with thin golden lit candles. A man sits relaxed on a luxurious sofa. The...
Create image: ultra realistic image: man 35 years old sitting in super luxury house. Luxury furniture, marble floor with east carpet. The most luxurious way. Middle shot One cake in front of him on the marble table, with thin golden lit candles. A man sits relaxed on a luxurious sofa. The man is...
Сделай этикетку на продукцию оформленную красиво и стильно в соответствии с составом. Можешь ориентироваться по стилю на фото 1. Текст на этикетке: производитель ИП Стрини Ю.Л. «соломка горбуши», состав: рыба горбуша, соль, сахар, специи. Срок хранения при t не от 0 до -3 60 суток. Вес: 500гр
Create image: ultra realistic image: man 35 years old (attached reference ) sitting in super luxury house. Luxury furniture, marble floor with east carpet. The most luxurious way. Middle shot One cake in front of him on the marble table, with thin golden lit candles. A man sits relaxed on a...
Create image: ultra realistic image: man 35 years old sitting in super luxury house. Luxury furniture, marble floor with east carpet. The most luxurious way. Middle shot One cake in front of him on the marble table, with thin golden lit candles. A man sits relaxed on a luxurious sofa. The man is...
Art style: 3D stylized animation. Вид сверху: босые ступни стоят на стильных электронных весах. Экран мягко подсвечивает цифру 70кг. Светлое пушистое ковровое покрытие с фото 2, виднеющееся по краям, озарено тёплым солнечным светом. Кадр лаконичен и целиком сосредоточен на дисплее....
Сделай этикетку на продукцию оформленную красиво и стильно в соответствии с составом. Можешь ориентироваться по стилю на фото 1. Текст на этикетке: производитель ИП Стрини Ю.Л. «соломка горбуши», состав: рыба горбуша, соль, сахар, специи. Срок хранения при t не от 0 до -3 60 суток. Вес: 500гр
Create image: ultra realistic image: man 35 years old sitting in super luxury house (ref4). Luxury furniture, marble floor with east carpet. The most luxurious way. Middle shot One cake in front of him on the marble table, with thin golden lit candles. A man sits relaxed on a luxurious sofa. The...
Art style: Реалистичный кулинарный блог. Крупный план лица ведущей. Она смотрит прямо в объектив с уверенным и ободряющим выражением. Освещение мягко подчеркивает черты ее лица, создавая естественные блики в глазах. Фон — слегка размытая кухня с теплыми огнями и зеленью за окном. Ведущая слегка...
Grungy analog photo of Daphne Blake (from Serial scooby doo) watching her own movie on a 90s CRT TV in a dimly lit bedroom. The TV clearly shows animated scene from scooby doo, with a cartoon-style Daphne in her classic clothes on screen, smiling. Daphne Blake is sitting cross-legged on the floor...
Сделай этикетку на продукцию оформленную красиво и стильно в соответствии с составом. Можешь ориентироваться по стилю на фото 1. Текст на этикетке: производитель ИП Стрини Ю.Л. «соломка кетовая», состав: рыба кета, соль, сахар, специи. Срок хранения при t не от 0 до -3 60 суток.
Art style: DreamWorks-inspired. Светлый современный косметологический кабинет из референса «Кабинет (general)»: белая кушетка по центру, глянцевый кремовый пол, шкафчики и раковина слева, на правой стене рамки сертификатов, тёплые потолочные лампы и открытая дверь в тёмное подсобное помещение....
Art style: Реалистичный кулинарный блог. Светлая современная кухня с панорамным окном, выходящим в хвойный лес. В центре кадра молодая женщина в черное платье с коротким рукавом. разминает металлической толкушкой отварной желтый картофель и ярко-зеленую мякоть авокадо в глубокой белой...
ᡤᡳᠰᡠᠨ ᠪᡠᠶᡝᠮᡝ
ᠵᠠᡴᡠᠨᡳ ᠵᡠᠯᡝ ᡩᡝᡵᡤᡳ ᡩᡝᠪᡝᠰᡠᠮᡝ ᠵᡠᠯᡤᡝ ᠪᡠᠶᡝᠮᡝ᠈ ᡳᠨᡳ ᡤᡳᠰᡠᠨ ᠪᠠᡳ ᡝᠨᡝᠩᡤᡳ ᠠᠮᠪᡳ
/run/openai/gpt-image-2?wait=20
ᠵᠠᠯᡳᠨ → $0.106
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/openai/gpt-image-2?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.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/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/openai/gpt-image-2?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.com/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/openai/gpt-image-2", 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": "openai/gpt-image-2",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"wait_seconds": 20
}
}
}
ᡝᠨᡳ ᠵᠠᠯᡳᠨ ᠪᡝ ᠵᠠᠯᠠᠨᠠᠮᡝ
ᡳᠨᡝ ᠵᠠᠯᠠᠨ ᡝᡵᡝ ᠪᡠᡵᡝᠪᡝᡵᡳ ᡩᡝ ᠪᡳᠮᡝ᠈ Doitong API ᡩᡝ ᠵᡝᠯᡤᡳ ᡩᠠᡵᠠᠮᡝ᠈ Remember ᠵᡠᠯᡝᠮᡝ ᡤᡳᠯᠠᠮᡝ localStorage ᡩᡝ ᠰᡠᠯᡝᠮᡝ ᠪᡳᠮᡝ API ᠵᠠᠯᠠᠨ ᠠᠪᠠᠮᡝ
GPT Image 2 API ᡠᡵᡝᠮᡝ
ᡳᠯᡥᠠᠮᠪᡳ ᡥᡡᠯᡥᠠᠨ ᡩᡝ 32000 ᡥᡡᠯᡥᠠᠨ ᡩᡠᠯᡝᠮᡝ. `image_size` ᡳᠯᡝ ᡝᠯᡴᡝᠨ, auto, ᠠᠴᠠ ᡝᠯᡝᡵᡤᡳ ᠵᡳᠯᡤᠠᠨ ᠨᡝ ᡤᡝᠮᡠ ᠠᠮᡠᠯᠠᠩᡤᠠ ᠪᡳᠮᡝ 16 ᡳ ᡤᡝᠮᡠ ᠰᡠᠯᡝᠮᡝ, 3840px ᡳ ᡝᡵᡝᠨ ᡩᡝᡵᡳ. ᠰᠠᠶᠠᠨ ᡩᡝ ᠪᡳᠮᡝ auto, low, medium ᠠᠴᠠ high, ᠵᡝᠮᡝ ᠵᡠᠰᡝᠨ ᡳ ᡮᡳᠨᠠᠮᠪᡳ 4 ᡩᡝ ᠵᡝᡵᡤᡳ ᡳᠯᡥᠠᠮᠪᡳ png, jpeg ᠠᠴᠠ webp.
ᠵᠠᡴᡠᠨ
ᠵᠠᡴᡠᠨᡳ ᡤᡳᠰᡠᠨ ᠵᡝᠯᡤᡳ ᠠᠪᠠᠮᠪᡳ᠈ ᠨᡝᠮᡝ ᠮᡠᠰᡝ ᡠᠯᠠᠮᠪᡳ ᠵᠠᡴᡠᠨᡳ ᡤᡳᠰᡠᠨ
promptᡴᠠᠷᠠᡴᡡ
image_sizeᠵᡠᠯᡝ
backgroundᠵᡠᠯᡝ
qualityᠵᡠᠯᡝ
num_imagesᠵᡠᠯᡝ
num_outputs
output_formatᠵᡠᠯᡝ
enable_safety_checkerᠵᡠᠯᡝ
ᠪᡠᠶᡝᠮᡝ
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "openai/gpt-image-2",
"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": 106,
"usd": "0.106",
"charged": 106,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"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
}
]
},
"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://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
ᠪᡠᠶᡝᠮᡝᠨᡳ ᡤᡳᠰᡠᠨ
- images
- array of object {url, content_type, file_name, file_size, width, height}ᠮᠣᡩᡝᠯ ᠪᡠᠶᡝᠮᡝᠨᡳ ᠤᠯᡥᠠᠨ ᠤᠨᠠᠰᡳᠨ᠉
ᡝᠯᡤᡳ GPT Image 2 API ᡠᠯᡤᡳᠨ
ᡝᠯᡤᡳ ᡩᠠᠯᡳᠨ: ᡥᡡᠯᠠᠨ ᡩᡝ ᡤᠠᠳᠠᠨ
AI ᠠᡤᡝᠨᡨᡳ ᡠᠴᡠᠷᡳ᠈ ᡝᡵᡝ ᡩᡝᠪᡝᡵᡳ Markdown ᠰᡳᠨᡩᠠᡵᡳ https://doitong.com/mnc/developers/models/openai/gpt-image-2.md. ᡝᡵᡝ ᠮᠣᡩᡝᠯ ᠵᠠᡴᡠᠨ ᠰᡠᠯᡠᠮᡝ https://doitong.com/developers/llms.txt







