Pāriet uz saturu
API rokasgrāmata

Pieprasījumi

Skatīt kā Markdown Atjaunināts

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):

terminālis
curl "https://api.doitong.ru/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.ru/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.ru/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

terminālis
curl -X POST "https://api.doitong.ru/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_input ar kļūdaino param, 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=permanent vai ?storage=temporary nosaka, 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

Pieprasījuma dzīves cikls
  1. queued Pieņemts un apmaksāts, gaida izpildītāju
  2. running Modelis ģenerē
  3. Beigu statusi:
    • succeededKvota ir ieturēta; outputs[] satur URL mūsu krātuvē
    • failedAutomātiski atmaksāts; kļūda paskaidro iemeslu
    • canceledApturē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

JSON
{
  "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.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
  • outputs ir vienāds visiem modeļiem: pa vienam ierakstam par katru ģenerēto failu ar type (image, video, audio, file vai 3d), url mūsu krātuvē, content_type un, ja zināms, file_size, width, height, duration.
  • output ir modeļa paša rezultāta objekts (tā lauki ir uzskaitīti katras modeļa lapā) ar tiem pašiem URL.
  • storage norāda, kā faili tiek glabāti: mode (permanent vai temporary), saglabātie bytes, expires_at (kad pagaidu fails tiek dzēsts, pastāvīgajiem failiem null) un expired (true, tiklīdz faili ir pazuduši).
  • cost.credits ir izsaukuma cena API kredītos (cost.usd USD), cost.charged ir no API atlikuma debetētā summa, bet cost.refunded — atmaksātā summa. metered modelim cost.credits ir sākumā aizturētais maksimums (cost.held); kad palaišana izdodas, cost.settled norāda faktisko lietojumu, bet pārējais maksimums ir cost.refunded (skatiet Maksa pēc lietojuma).
  • Ja pieprasījums neizdodas, error ir { "type": …, "code": …, "message": … }.

Lasīt pieprasījumu

terminālis
curl "https://api.doitong.ru/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=1 pievieno 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

terminālis
curl "https://api.doitong.ru/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

terminālis
curl -X POST "https://api.doitong.ru/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ņemat 200.
  • Jau tiek ģenerēts: atcelšana tiek pārsūtīta, un saņemat 202 ar "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 ir canceled, vienkārši atgriež 200).

Dzēst pieprasījuma failus

terminālis
curl -X DELETE "https://api.doitong.ru/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, galvene Idempotent-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_error vai internal_error iesniegš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.ru/v1/account/storage ar {"mode": "temporary"}. GET https://api.doitong.ru/v1/account to parāda sadaļā storage kopā ar saglabātajiem baitiem un mēneša aprēķinu.
  • ?storage=permanent|temporary palaišanas laikā (MCP run rīka storage arguments) 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.