Mwanzo wa Haraka
Endesha uzalishaji wako wa kwanza ndani ya dakika chache. Modeli zote 1,496 hupokea aina ileile ya ombi na kurudisha kitu kilekile cha ombi, kwa picha, video na sauti: jifunze mara moja hapa.
1. Pata ufunguo wa API
Unda ufunguo kwenye https://doitong.com/developers/dashboard#keys na uuhifadhi katika
kigezo cha mazingira: utaonyeshwa mara moja tu. Kila ufunguo unaweza kuwa na bajeti yake, kwa hivyo unaweza kumpa wakala
bila kuhatarisha akaunti nzima. GET /account hurejesha salio lako la API.
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())
Uendeshaji hulipiwa kutoka kwenye salio la API la akaunti yako kwa krediti za API: salio za API 1,000 = $ 1, na kila modeli hugharimu bei kamili ya mtengenezaji wake. Ongeza salio kwenye https://doitong.com/developers/dashboard#balance.
2. Pata nukuu, kisha endesha
POST /quote/{model_id} huchukua JSON ya ingizo na kurudisha bei kamili. Haihitaji ufunguo wala haigharimu chochote.
Kuendesha ingizo lilelile hugharimu kiasi hicho hasa: nukuu ndiyo malipo. (Isipokuwa modeli inayotoza kulingana na matumizi: nukuu
yake ndiyo kiwango cha juu ambacho uendeshaji unaweza kugharimu, na sehemu ambayo haikutumika hurejeshwa baada ya uendeshaji.)
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"
}
Kisha tuma mwili huo huo kwa POST /run/{model_id}. Ongeza ?wait=20 ili kushikilia muunganisho kwa hadi sekunde 20: modeli ya
haraka hurudisha tokeo lililokamilika kwa mzunguko mmoja wa ombi na jibu. Tuma kichwa cha Idempotency-Key ili jaribio la
kurudia lisifanye uendeshaji (au kutoza) mara mbili.
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)
Jibu ni kitu cha ombi:
{
"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. Fuatilia hali
Ikiwa modeli bado inafanya kazi muda wa kusubiri unapoisha, utapata 202 Accepted yenye id ya ombi na status yake ya sasa.
Kila ombi hupitia mzunguko uleule wa maisha:
-
queuedYamekubaliwa na kutozwa, yanasubiri mfanyakazi -
runningMuundo unatengeneza -
Hali za mwisho:
succeededImekatwa bei iliyonukuliwa; outputs[] zina URL kwenye hifadhi yetufailedImerejeshwa kiotomatiki; hitilafu inaeleza sababucanceledImesimamishwa kabla ya matokeo; imerejeshwa
Soma ombi tena kwa kutumia id yake. ?wait=20 hufanya kazi hapa pia, kwa hivyo kitanzi rahisi kinatosha:
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)
status ikiwa ni succeeded, outputs[].url huwa na viungo vya faili kwenye hifadhi yetu. Ikiwa ombi failed au canceled,
krediti zake za API hurejeshwa kiotomatiki na error hueleza sababu. Ghairi chochote ambacho bado kiko queued au
running:
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
-H "Authorization: Bearer $DOITONG_API_KEY"
Kwa kazi ndefu za video unaweza kuruka upigaji kura na kupitisha webhook_url badala yake (tazama Webhooks).
4. Faili
Pitisha URL yoyote ya umma kama ingizo, au omba URL ya kupakia kupitia POST /files, kisha PUT faili hapo na utumie
file_url iliyorejeshwa (tazama Files). Ombi lililofanikiwa huorodhesha matokeo yake katika
outputs[] pamoja na aina, aina ya maudhui na, inapojulikana, vipimo na muda.
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}'
Makosa
Kila modeli hushindwa kwa njia ileile: bahasha moja yenye type, code halisi, param yenye tatizo na kila tatizo katika
details, ili wakala aweze kurekebisha ombi bila kusoma maelezo marefu. Hakuna malipo kwa ombi batili.
{
"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"
}
}
Kila aina na msimbo imeorodheshwa katika Errors.
Bei
Bei ziko katika USD na krediti za API na huonyeshwa kwenye kila ukurasa wa modeli kabla ya kuendesha. Kila ombi lina cost yenye
credits, usd, charged na refunded. Uendeshaji hutozwa unapokubaliwa; maombi ya failed na canceled hurejeshewa fedha
kiotomatiki. Baadhi ya modeli huwekewa bei kamili kulingana na ingizo, nyingine kulingana na urefu au ukubwa wa faili
unazotuma, na nyingine hutoza bei iliyokadiriwa kwa uendeshaji: kwa vyovyote vile nukuu ndiyo unayolipa. Modeli chache (modeli
za lugha na kuona, sauti, zana za muda wa uchakataji) hutozwa kulingana na matumizi: nukuu ndiyo kiwango cha juu ambacho
uendeshaji unaweza kugharimu, na sehemu ambayo uendeshaji haukutumia hurejeshwa kiotomatiki. Tazama Pricing.
MCP na mawakala wa AI
Unganisha mteja yeyote wa MCP kwenye https://api.doitong.com/v1/mcp kwa kutumia ufunguo uleule wa Bearer. Wakala wako anaweza kutafuta
katalogi, kupata nukuu na kuendesha modeli, na kusoma kila ukurasa wa nyaraka kama Markdown.
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Hatua zinazofuata
- Vinjari modeli zote. Kila ukurasa una kijenzi cha maombi kinachokuandikia msimbo.
- Jifunze mzunguko wa maisha wa ombi: Maombi.
- Tumia majina yale yale ya vigezo kwenye kila modeli: Parameters.
- Unafanya kazi na wakala wa AI wa kuandika msimbo? Mpe https://doitong.com/developers/llms.txt au unganisha MCP server.