Pieprasījumi
Pieprasījums ir viens viena modeļa izsaukums. Tam ir id (req_…), statuss, izmaksas API kredītos (1000 = 1 USD) un, ja tas
izdodas, ģenerētie faili. Tas pats objekts tiek atgriezts no katra tālāk minētā galapunkta katram modelim.
Atrast modeli
Visu 1496 modeļu katalogs ir publisks JSON (atslēga nav nepieciešama):
curl "https://api.doitong.com/v1/models?category=text-to-video&lab=Google&limit=20"
| Vaicājuma parametrs | Nozīme |
|---|---|
q |
Vārdiem visiem jāparādās nosaukumā, id, izstrādātājā vai tagos, piemēram, kling 3. |
category |
Vienas kategorijas id, piemēram, text-to-video vai upscale. GET https://api.doitong.com/v1/categories uzskaita visas 21 kategorijas ar to skaitu. |
lab |
Modeļa izstrādātājs pēc nosaukuma vai id, piemēram, Google vai black-forest-labs. |
family |
family id no iepriekšējās rindas: visi viena modeļa varianti (pro, fast, image-to-video, …). |
mode |
exact (cena tiek aprēķināta pēc ievades), measured (pēc ievades failu garuma vai izmēra), estimate (aptuvenā cena par palaišanu) vai metered (maksa pēc faktiskā lietojuma, nepārsniedzot maksimālo maksu par palaišanu). |
limit, cursor |
Lapas izmērs (no 1 līdz 100, noklusējums 50) un iepriekšējās lapas next_cursor. |
Katrā rindā ir id, name, lab, category, family, summary, tags, output_kind, docs_url un price
objekts (skatiet Cenas). GET https://api.doitong.com/v1/models/{model_id} pievieno
pilno ievades un izvades JSON Schema, kanoniskos parametru nosaukumus, cenu noteikumus un ievades piemēru. Nezināma
category vai mode vērtība ir 400 invalid_parameter.
Palaist modeli
curl -X POST "https://api.doitong.com/v1/run/{model_id}?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1842-cover" \
-d '{"prompt": "..."}'
- Ķermenis ir modeļa ievade — JSON objekts. Katras modeļa lapas uzskaita tā parametrus.
- Ievade tiek pārbaudīta, pirms tiek iekasēta maksa. Nederīga ievade atgriež
422 invalid_inputar kļūdainoparam, un nekas netiek iekasēts. ?wait=N(līdz 20 sekundēm) aiztur izsaukumu, līdz pieprasījums tiek pabeigts vai laiks beidzas.?webhook_url=https://…nosūta parakstītu POST uz šo URL, kad pieprasījums tiek pabeigts (skatiet Tīmekļa āķi).?storage=permanentvai?storage=temporarynosaka, cik ilgi tiek glabāti izvades faili; ja parametrs nav norādīts, tiek izmantots konta iestatījums (skatiet Kur atrodas faili).
Atbilde ir 202 Accepted, kamēr pieprasījums vēl tiek apstrādāts, un 200 OK, ja tas tika pabeigts gaidīšanas laikā (vai
ja tā ir atkārtota atbilde, skatiet tālāk). Galvenes Location un Doitong-Request-Id satur pieprasījuma URL un id.
Statusi
-
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
| Statuss | Nozīme | Gala |
|---|---|---|
queued |
Pieņemts un apmaksāts, gaida apstrādi. queue_position var parādīt vietu rindā. |
nē |
running |
Modelis ģenerē. | nē |
succeeded |
Pabeigts. outputs uzskaita failus. |
jā |
failed |
Modelis vai ierobežojums to apturēja. error paskaidro iemeslu. API kredīti tiek atmaksāti. |
jā |
canceled |
Atcelts, pirms tika izveidots rezultāts. API kredīti tiek atmaksāti. | jā |
Pieprasījums, kas pārsniedz tam atvēlēto laiku, neizdodas ar kodu timeout, un maksa tiek atmaksāta: 15 minūtes attēliem,
60 minūtes video, 30 minūtes audio un visam pārējam.
Pieprasījuma objekts
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "flux/schnell",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:01Z",
"completed_at": "2026-10-20T12:00:02Z",
"queue_position": null,
"cost": { "credits": 3, "usd": "0.003", "charged": 3, "refunded": 0 },
"input": { "prompt": "..." },
"output": { "images": [ { "url": "https://content.doitong.com/dev-api/…/0-output.jpeg", "width": 1024, "height": 768 } ] },
"outputs": [
{ "type": "image", "url": "https://content.doitong.com/dev-api/…/0-output.jpeg", "content_type": "image/jpeg",
"width": 1024, "height": 768, "file_size": 183920, "stored": true }
],
"error": null,
"metrics": { "inference_seconds": 1.2 },
"storage": { "mode": "permanent", "bytes": 183920, "expires_at": null, "expired": false },
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
outputsir vienāds visiem modeļiem: pa vienam ierakstam par katru ģenerēto failu artype(image,video,audio,filevai3d),urlmūsu krātuvē,content_typeun, ja zināms,file_size,width,height,duration.outputir modeļa paša rezultāta objekts (tā lauki ir uzskaitīti katras modeļa lapā) ar tiem pašiem URL.storagenorāda, kā faili tiek glabāti:mode(permanentvaitemporary), saglabātiebytes,expires_at(kad pagaidu fails tiek dzēsts, pastāvīgajiem failiemnull) unexpired(true, tiklīdz faili ir pazuduši).cost.creditsir izsaukuma cena API kredītos (cost.usdUSD),cost.chargedir no API atlikuma debetētā summa, betcost.refunded— atmaksātā summa.meteredmodelimcost.creditsir sākumā aizturētais maksimums (cost.held); kad palaišana izdodas,cost.settlednorāda faktisko lietojumu, bet pārējais maksimums ircost.refunded(skatiet Maksa pēc lietojuma).- Ja pieprasījums neizdodas,
errorir{ "type": …, "code": …, "message": … }.
Lasīt pieprasījumu
curl "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
?wait=N(līdz 20 sekundēm) veic ilgo aptauju: izsaukums atgriežas, tiklīdz pieprasījums ir galīgs, vai pēc N sekundēm ar pašreizējo stāvokli. Atkārtota izsaukšana ir vienkāršākais veids, kā gaidīt rezultātu.?logs=1pievieno modeļa progresa žurnāla rindas (pēdējās 50) kālogs.
Varat lasīt tikai sava konta pieprasījumus; jebkurš cits id ir 404 request_not_found.
Uzskaitīt pieprasījumus
curl "https://api.doitong.com/v1/requests?limit=20&status=succeeded&model=flux/schnell" \
-H "Authorization: Bearer $DOITONG_API_KEY"
Vispirms jaunākie. limit ir no 1 līdz 100 (noklusējums 20), status un model filtrē rezultātus. Atbilde ir
{ "object": "list", "data": [ … ], "has_more": true, "next_cursor": "req_…" }; nākamajai lapai nododiet
cursor=<next_cursor>.
Atcelt pieprasījumu
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
-H "Authorization: Bearer $DOITONG_API_KEY"
- Atcelts, pirms modelis sāka darbu: statuss kļūst par
canceled, API kredīti tiek atmaksāti, un saņemat200. - Jau tiek ģenerēts: atcelšana tiek pārsūtīta, un saņemat
202ar"cancel_requested": true. Ja modelis tomēr pabeidz darbu, pieprasījums parasti izdodas un maksa tiek iekasēta. - Jau galīgs:
409 not_cancelable(pieprasījums, kas jau ircanceled, vienkārši atgriež200).
Dzēst pieprasījuma failus
curl -X DELETE "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/files" \
-H "Authorization: Bearer $DOITONG_API_KEY"
Nekavējoties dzēš mūsu pieprasījuma izvades failu kopijas un aptur to glabāšanas maksu. Atbilde ir pieprasījuma
objekts ar storage.expired: true; tā URL paliek ierakstā, bet vairs nedarbojas. Atkārtots izsaukums neko nemaina
(200). Pieprasījumam, kas joprojām ir queued vai running, failu vēl nav: 409 request_active. Nepieciešama
models:run atļauja.
Idempotence: atkārtot, nemaksājot divreiz
Tīkli mēdz nedarboties. Lai droši atkārtotu palaišanu, nosūtiet Idempotency-Key galveni (jebkura virkne līdz 255
rakstzīmēm, unikāla katrai darbībai, piemēram, jūsu pasūtījuma id):
- Tā pati atslēga un tas pats ķermenis kā iepriekš: saņemat sākotnējo pieprasījumu (
200, galveneIdempotent-Replayed: true), un nekas netiek iekasēts atkārtoti. - Tā pati atslēga un ķermenis pēc palaišanas, kas neizdevās, pirms sasniedza modeli (
upstream_errorvaiinternal_erroriesniegšanas laikā,insufficient_credits,budget_exceeded,too_many_inflight): nekas netika izveidots un nekas netiek iekasēts, tāpēc atkārtotais mēģinājums palaiž modeli no jauna, nevis atgriež kļūmi. - Tā pati atslēga ar citu ķermeni:
409 idempotency_mismatch. - Atslēgas ir piesaistītas API atslēgai, kas tās nosūtīja.
Kur atrodas faili
Katrs izvades fails tiek kopēts mūsu krātuvē, pirms pieprasījums tiek atzīmēts kā succeeded, tāpēc outputs URL ir
mūsu resursdatoros un varat uz tiem izveidot tiešas saites. Jūs izvēlaties, cik ilgi tie tiek glabāti:
| Režīms | Ilgums | Cena |
|---|---|---|
permanent (noklusējums) |
Līdz to dzēšanai | 100 API kredīti (0,10 $) par GB mēnesī, iekasēti katru dienu no API atlikuma |
temporary |
7 dienas, pēc tam dzēsti | Bezmaksas |
- Konta iestatījums nosaka jaunu pieprasījumu noklusējumu: slēdzis "Glabāt failus mūžīgi"
informācijas panelī vai
PATCH https://api.doitong.com/v1/account/storagear{"mode": "temporary"}.GET https://api.doitong.com/v1/accountto parāda sadaļāstoragekopā ar saglabātajiem baitiem un mēneša aprēķinu. ?storage=permanent|temporarypalaišanas laikā (MCPrunrīkastoragearguments) ignorē iestatījumu šai palaišanai.- Iestatījuma maiņa nekad neietekmē jau esošos failus; dzēsiet tos ar
DELETE /requests/{id}/files. - Ja API atlikums nevar samaksāt par krātuvi, maksa netiek iekasēta un jūs saņemat e-pastu: papildiniet atlikumu 30 dienu laikā, citādi saglabātie faili kļūs pagaidu faili un tiks dzēsti pēc 7 dienām.
Retos gadījumos, kad mūsu kopēšana neizdodas, ierakstā ir "stored": false, un URL ir sākotnējais, īslaicīgais URL:
lejupielādējiet failu drīz.