Ātrais sākums
Palaidiet savu pirmo ģenerēšanu dažu minūšu laikā. Visi 1496 modeļi pieņem viena veida pieprasījumu un atgriež vienu un to pašu pieprasījuma objektu attēliem, video un audio: apgūstiet to šeit vienreiz.
1. Iegūstiet API atslēgu
Izveidojiet atslēgu vietnē https://doitong.com/developers/dashboard#keys un saglabājiet to vides
mainīgajā: tā tiek parādīta tikai vienreiz. Katrai atslēgai var būt savs budžets, tāpēc varat to nodot aģentam,
nepakļaujot riskam visu kontu. GET /account atgriež jūsu API atlikumu.
export DOITONG_API_KEY="doitong_..."
curl "https://api.doitong.com/v1/account" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const res = await fetch("https://api.doitong.com/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.com/v1/account",
headers={"Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}"},
)
print(r.json())
Izpildes tiek apmaksātas no jūsu konta API atlikuma API kredītos: 1000 API kredītu = 1 $, un katrs modelis maksā precīzi tā izstrādātāja noteikto cenu. Papildiniet atlikumu vietnē https://doitong.com/developers/dashboard#balance.
2. Saņemiet cenu piedāvājumu, pēc tam palaidiet
POST /quote/{model_id} pieņem ievades JSON un atgriež precīzu cenu. Tam nav nepieciešama atslēga, un tas neko nemaksā.
Tās pašas ievades palaišana maksā tieši norādīto summu: piedāvājums ir maksa. (Izņēmums ir modelis, kura cena
atkarīga no lietojuma: tā piedāvājums ir maksimālā summa, ko var maksāt izpilde, bet neizmantotā daļa tiek atmaksāta
pēc izpildes.)
curl -X POST "https://api.doitong.com/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.com/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.com/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"
}
Pēc tam nosūtiet to pašu pamattekstu uz POST /run/{model_id}. Pievienojiet ?wait=20, lai savienojums tiktu uzturēts līdz 20 sekundēm: ātrs
modelis atgriezīs pabeigto rezultātu vienā turp-atpakaļ pieprasījumā. Nosūtiet Idempotency-Key galveni, lai atkārtots
pieprasījums nekad neizpildītu darbību (vai neiekasētu maksu) divreiz.
curl -X POST "https://api.doitong.com/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.com/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.com/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)
Atbilde ir pieprasījuma objekts:
{
"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. Sekojiet statusam
Ja modelis joprojām darbojas, kad gaidīšanas laiks beidzas, saņemsiet 202 Accepted ar pieprasījuma id un pašreizējo
status. Katrs pieprasījums iziet vienu un to pašu dzīves ciklu:
-
queuedPieņemts un apmaksāts, gaida izpildītāju -
runningModelis ģenerē -
Beigu statusi:
succeededKvota ir ieturēta; outputs[] satur URL mūsu krātuvēfailedAutomātiski atmaksāts; kļūda paskaidro iemeslucanceledApturēts pirms rezultāta saņemšanas; atmaksāts
Nolasiet pieprasījumu vēlreiz, izmantojot tā id. Arī šeit darbojas ?wait=20, tāpēc pietiek ar vienkāršu ciklu:
curl "https://api.doitong.com/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.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20", { headers })).json();
while (request.status === "queued" || request.status === "running") {
const res = await fetch(`https://api.doitong.com/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.com/v1/requests/{request['id']}",
params={"wait": 20},
headers=headers,
).json()
print(request["status"], request["outputs"][0]["url"] if request["outputs"] else None)
Kad status ir succeeded, outputs[].url satur saites uz failiem mūsu krātuvē. Ja pieprasījums failed vai tika
canceled, tā API kredīti tiek automātiski atmaksāti, bet error norāda iemeslu. Atceliet visu, kas joprojām ir
queued vai running:
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
-H "Authorization: Bearer $DOITONG_API_KEY"
Gariem video darbiem varat izlaist statusa pārbaudi un tā vietā nodot webhook_url (skatiet Tīmekļa āķi).
4. Faili
Kā ievadi nododiet jebkuru publisku URL vai pieprasiet augšupielādes URL ar POST /files, ievietojiet failu tajā ar
PUT un izmantojiet atgriezto file_url (skatiet Faili). Veiksmīgs pieprasījums uzskaita savus rezultātus
outputs[] ar tipu, satura tipu un, ja zināms, izmēriem un ilgumu.
curl -X POST "https://api.doitong.com/v1/files" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{"filename": "fox.jpg", "content_type": "image/jpeg", "size": 482113}'
Kļūdas
Katrs modelis kļūst kļūdains vienā un tajā pašā veidā: viens aploksnes objekts ar type, precīzu code, problemātisko
param un katru problēmu laukā details, lai aģents varētu izlabot pieprasījumu, nelasot aprakstu. Par nederīgu pieprasījumu
nekas netiek iekasēts.
{
"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"
}
}
Visi tipi un kodi ir uzskaitīti sadaļā Kļūdas.
Cenas
Cenas ir USD un API kredītos, un tās tiek parādītas katra modeļa lapā pirms palaišanas. Katram pieprasījumam ir cost ar
credits, usd, charged un refunded. Maksa par izpildi tiek iekasēta, kad tā tiek pieņemta; failed un canceled pieprasījumiem
maksa tiek automātiski atmaksāta. Dažiem modeļiem cena tiek aprēķināta precīzi pēc ievades, dažiem pēc nosūtīto failu
garuma vai izmēra, bet citi iekasē aptuveno cenu par izpildi: jebkurā gadījumā maksājat piedāvājumā norādīto summu. Dažiem
modeļiem (valodas un redzes modeļiem, balss un apstrādes laika rīkiem) maksa tiek aprēķināta pēc lietojuma: piedāvājums ir
maksimālā summa, ko var maksāt izpilde, un neizmantotā daļa tiek automātiski atmaksāta. Skatiet Cenas.
MCP un AI aģenti
Savienojiet jebkuru MCP klientu ar https://api.doitong.com/v1/mcp, izmantojot to pašu Bearer atslēgu. Jūsu aģents var meklēt katalogā, saņemt
cenu piedāvājumus un palaist modeļus, kā arī nolasīt katru dokumentācijas lapu Markdown formātā.
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Nākamās darbības
- Pārlūkojiet visus modeļus. Katrā lapā ir pieprasījumu veidotājs, kas uzraksta kodu jūsu vietā.
- Uzziniet par pieprasījuma dzīves ciklu: Pieprasījumi.
- Izmantojiet vienus un tos pašus parametru nosaukumus katram modelim: Parametri.
- Strādājat ar AI kodēšanas aģentu? Nododiet tam https://doitong.com/developers/llms.txt vai savienojiet MCP serveri.