Жылдам бастау
Алғашқы генерацияны бірнеше минутта іске қосыңыз. Барлық 1 496 модель бірдей сұрау түрін қабылдап, кескін, бейне және аудио үшін бірдей сұрау нысанын қайтарады: мұны осы жерден бір рет үйреніңіз.
1. API кілтін алыңыз
Кілтті https://doitong.com/developers/dashboard#keys мекенжайында жасап, оны орта айнымалысында сақтаңыз: ол тек бір рет көрсетіледі. Әр кілттің өз бюджеті болуы мүмкін, сондықтан бүкіл есептік жазбаға қауіп төндірмей, оны агентке бере аласыз. GET /account API теңгеріміңізді қайтарады.
export DOITONG_API_KEY="doitong_..."
curl "https://api.doitong.ru/v1/account" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const res = await fetch("https://api.doitong.ru/v1/account", {
headers: { Authorization: `Bearer ${process.env.DOITONG_API_KEY}` },
});
console.log(await res.json());
import os
import requests
r = requests.get(
"https://api.doitong.ru/v1/account",
headers={"Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}"},
)
print(r.json())
Орындалулар есептік жазбаңыздың API кредиттеріндегі API теңгерімінен төленеді: 1 000 API кредиті = 1 $, ал әр модель өз жасаушысының бағасы бойынша дәл есептеледі. https://doitong.ru/developers/dashboard#balance мекенжайында толықтырыңыз.
2. Бағаны біліп, содан кейін іске қосыңыз
POST /quote/{model_id} кіріс JSON-ын қабылдап, нақты бағаны қайтарады. Оған кілт қажет емес және ештеңе тұрмайды. Бірдей кірісті іске қосу дәл сол соманы құрайды: баға сұрауы — алынатын төлем. (Пайдалануға қарай есептелетін модель — ерекшелік: оның баға сұрауы іске қосу құнының ең жоғары сомасы, ал пайдаланылмаған бөлігі орындалудан кейін қайтарылады.)
curl -X POST "https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video" \
-H "Content-Type: application/json" \
-d '{"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": true}'
const res = await fetch("https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ image: "https://example.com/fox.jpg", duration: 5, generate_audio: true }),
});
const quote = await res.json();
console.log(quote.credits, quote.usd); // 840 "0.84"
import requests
r = requests.post(
"https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video",
json={"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": True},
)
print(r.json()["credits"], r.json()["usd"]) # 840 0.84
{
"object": "quote",
"model": "kling-video/v3/pro/image-to-video",
"credits": 840,
"usd": "0.84",
"unit": "second",
"quantity": 5,
"unit_credits": 168,
"mode": "exact",
"breakdown": "5 s × 168 API credits"
}
Содан кейін сол денені POST /run/{model_id} мекенжайына жіберіңіз. Байланысты 20 секундқа дейін ұстап тұру үшін ?wait=20 қосыңыз: жылдам модель дайын нәтижені бір айналымда қайтарады. Қайта жіберу ешқашан екі рет орындалмауы (немесе екі рет есептелмеуі) үшін Idempotency-Key тақырыбын жіберіңіз.
curl -X POST "https://api.doitong.ru/v1/run/flux/schnell?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: lighthouse-001" \
-d '{"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"}'
const res = await fetch("https://api.doitong.ru/v1/run/flux/schnell?wait=20", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DOITONG_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "lighthouse-001",
},
body: JSON.stringify({ prompt: "A lighthouse on a rocky coast at dusk, warm light in the window" }),
});
const request = await res.json();
console.log(request.status, request.outputs[0]?.url);
import os
import requests
r = requests.post(
"https://api.doitong.ru/v1/run/flux/schnell",
params={"wait": 20},
headers={
"Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}",
"Idempotency-Key": "lighthouse-001",
},
json={"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"},
)
request = r.json()
print(request["status"], request["outputs"][0]["url"] if request["outputs"] else None)
Жауап — сұрау нысаны:
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "flux/schnell",
"status": "succeeded",
"cost": { "credits": 3, "usd": "0.003", "charged": 3, "refunded": 0 },
"outputs": [
{ "type": "image", "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg", "width": 1024, "height": 768, "stored": true }
],
"error": null
}
3. Күйді бақылаңыз
Күту уақыты біткенде модель әлі жұмыс істеп тұрса, сұраудың id идентификаторы және ағымдағы status мәні бар 202 Accepted жауабын аласыз. Әр сұрау бірдей өмірлік циклден өтеді:
-
queuedҚабылданды және ақысы алынды, воркерді күтуде -
runningМодель жасап жатыр -
Соңғы күйлер:
succeededЕсептелген сома алынды; outputs[] ішінде қоймамыздағы URL мекенжайлары барfailedАвтоматты түрде қайтарылды; қате себебін көрсетедіcanceledНәтижеге дейін тоқтатылды; қаражат қайтарылды
Сұрауды оның идентификаторымен қайта оқыңыз. Мұнда да ?wait=20 жұмыс істейді, сондықтан қарапайым цикл жеткілікті:
curl "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const headers = { Authorization: `Bearer ${process.env.DOITONG_API_KEY}` };
let request = await (await fetch("https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20", { headers })).json();
while (request.status === "queued" || request.status === "running") {
const res = await fetch(`https://api.doitong.ru/v1/requests/${request.id}?wait=20`, { headers });
request = await res.json();
}
console.log(request.status, request.outputs[0]?.url);
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}"}
request = {"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t", "status": "queued"}
while request["status"] in ("queued", "running"):
request = requests.get(
f"https://api.doitong.ru/v1/requests/{request['id']}",
params={"wait": 20},
headers=headers,
).json()
print(request["status"], request["outputs"][0]["url"] if request["outputs"] else None)
status мәні succeeded болғанда, outputs[].url сақтау орнымыздағы файлдарға сілтемелерді қамтиды. Сұрау failed немесе canceled болса, оның API кредиттері автоматты түрде қайтарылады, ал error себебін көрсетеді. queued немесе running күйінде тұрған кез келгенін тоқтатыңыз:
curl -X POST "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
-H "Authorization: Bearer $DOITONG_API_KEY"
Ұзақ бейне тапсырмалары үшін сауалнама жіберуді өткізіп, орнына webhook_url бере аласыз (Вебхуктар бөлімін қараңыз).
4. Файлдар
Кез келген ашық URL-ды кіріс ретінде беріңіз немесе жүктеп салу URL-ын алу үшін POST /files сұрауын жіберіңіз, файлды сол жерге PUT арқылы жүктеп, қайтарылған file_url мәнін пайдаланыңыз (Файлдар бөлімін қараңыз). Сәтті орындалған сұрау нәтижелерін outputs[] ішінде түрімен, мазмұн түрімен және белгілі болса, өлшемдері мен ұзақтығымен бірге көрсетеді.
curl -X POST "https://api.doitong.ru/v1/files" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{"filename": "fox.jpg", "content_type": "image/jpeg", "size": 482113}'
Қателер
Әр модель бірдей жолмен қате береді: type, нақты code, мәселе тудырған param және details ішіндегі әр мәселе бар бір конверт. Осылайша агент прозаны оқымай-ақ сұрауды түзете алады. Жарамсыз сұрау үшін ақы алынбайды.
{
"error": {
"type": "invalid_request",
"code": "invalid_input",
"message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.",
"param": "duration",
"details": [ { "param": "duration", "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15." } ],
"request_id": null,
"doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
}
}
Барлық түрлер мен кодтар Қателер бөлімінде берілген.
Баға белгілеу
Бағалар USD және API кредиттерімен көрсетіледі әрі іске қоспас бұрын әр модель бетінде көрсетіледі. Әр сұрауда cost ішінде credits, usd, charged және refunded мәндері болады. Орындалу қабылданғанда ақы алынады; failed және canceled сұрауларының ақшасы автоматты түрде қайтарылады. Кейбір модельдердің бағасы кіріске қарай дәл есептеледі, кейбірі сіз жіберетін файлдардың ұзындығы немесе өлшемі бойынша есептеледі, ал басқалары әр іске қосу үшін болжалды баға алады: кез келген жағдайда баға сұрауында көрсетілген сома төленеді. Кейбір модельдер (тіл және көру модельдері, дауыс, өңдеу уақыты құралдары) пайдалануға қарай есептеледі: баға сұрауы іске қосу құнының ең жоғары сомасы, ал іске қосу пайдаланбаған бөлігі автоматты түрде қайтарылады. Баға белгілеу бөлімін қараңыз.
MCP және AI агенттері
Кез келген MCP клиентін сол Bearer кілтімен https://api.doitong.ru/v1/mcp мекенжайына қосыңыз. Агентіңіз каталогтан іздей алады, модельдерге баға сұрап, оларды іске қоса алады және барлық құжаттама беттерін Markdown ретінде оқи алады.
claude mcp add --transport http doitong-models https://api.doitong.ru/v1/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Келесі қадамдар
- Барлық модельдерді шолыңыз. Әр бетте кодты сіз үшін жазатын сұрау құрастырушысы бар.
- Сұраудың өмірлік циклін Сұраулар бөлімінен үйреніңіз.
- Әр модельде бірдей параметр атауларын пайдаланыңыз: Параметрлер.
- AI кодтау агентімен жұмыс істейсіз бе? Оған https://doitong.com/developers/llms.txt файлын беріңіз немесе MCP серверіне қосыңыз.