Saltar al cuntegna
Guida API

Dumondas

Mussar sco Markdown Actualisà

Ina dumonda è ina clamada d'in model. Ella ha in ID (req_…), in status, ses custs en credits API (1000 = 1 USD) e, sch'ella reussescha, las datotecas generadas. Il medem object vegn renvià da mintga endpoint sutvart, per mintga model.

Chattar in model

Il catalog public da tut 1 496 models è JSON (senza clav necessaria):

terminal
curl "https://api.doitong.com/v1/models?category=text-to-video&lab=Google&limit=20"
Parameter da query Significaziun
q Pleds che ston cumparair tuts en il num, l'ID, il producent u ils tags, per exempel kling 3.
category In ID da categoria, per exempel text-to-video u upscale. GET https://api.doitong.com/v1/categories enumerescha tut 21 cun lur dumbers.
lab Il producent dal model, tenor num u ID, per exempel Google u black-forest-labs.
family In ID da family d'ina lingia precedenta: mintga varianta d'in model (pro, fast, image-to-video, …).
mode exact (il pretsch vegn calculà a partir da l'input), measured (a partir da la lunghezza u grondezza da las datotecas d'input), estimate (in pretsch stimà per execuziun) u metered (facturà tenor l'utilisaziun reala, fin ad in maximum per execuziun).
limit, cursor Grondezza da la pagina (1 fin 100, standard 50) e next_cursor da la pagina precedenta.

Mintga lingia ha id, name, lab, category, family, summary, tags, output_kind, docs_url ed in object price (vesair Pretschs). GET https://api.doitong.com/v1/models/{model_id} agiunta il JSON Schema cumplain da l'input e da l'output, ils nums canonics dals parameters, las reglas da pretsch ed in input d'exempel. Ina category u in mode nunenconuschent è 400 invalid_parameter.

Exequir in model

terminal
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": "..."}'
  • Il corp è l'input dal model, in object JSON. Mintga pagina da model enumerescha ses parameters.
  • L'input vegn controllà avant che ins incassescha insatge. In input nunvalid returnescha 422 invalid_input cun il param problemà e custa nagut.
  • ?wait=N (fin a 20 secundas) tegna la clamada fin che la dumonda è terminada u il temp è scadì.
  • ?webhook_url=https://… trametta in POST signà a quest URL, cur che la dumonda è terminada (vesair Webhooks).
  • ?storage=permanent u ?storage=temporary tscherna quant ditg che las datotecas d'output vegnan tegnidas; senza quest parameter vala la configuraziun dal conto (vesair Nua che las datotecas sa chattan).

La resposta è 202 Accepted durant che la dumonda vegn anc elavurada e 200 OK cur ch'ella è terminada entaifer il temp d'attesa (u sch'ella è ina repetiziun, vesair sutvart). Ils headers Location e Doitong-Request-Id cuntegnan l'URL e l'ID da la dumonda.

Status

Ciclus da vita da la dumonda
  1. queued Acceptà e debità, spetga sin in worker
  2. running Il model generescha
  3. Stadis finals:
    • succeededLa summa indicada è vegnida addebitada; outputs[] cuntegnan URLs en noss arcun
    • failedRestituì automaticamain; l'errur declera il motiv
    • canceledFermà avant in resultat; restituì
Status Significaziun Final
queued Acceptada e chargiada, spetga in worker. queue_position po mussar il plaz en la fila. no
running Il model genera. no
succeeded Terminada. outputs enumerescha las datotecas. yes
failed Il model u ina limitaziun l'ha interrutta. error declera il motiv. Ils credits API vegnan restituids. yes
canceled Annullada avant ch'ella ha producì in resultat. Ils credits API vegnan restituids. yes

Ina dumonda che cuzza pli ditg che sia limita da temp fa naufragi cun il code timeout e vegn restituida: 15 minutas per maletgs, 60 minutas per video, 30 minutas per audio e tut il rest.

L'object da la dumonda

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.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
  • outputs è il medem per mintga model: ina entrada per mintga datoteca generada cun type (image, video, audio, file u 3d), in url en nossa memorisaziun, content_type e, sch'enconuschent, file_size, width, height, duration.
  • output è l'object da resultat dal model (ses champs èn enumerads sin mintga pagina da model) cun ils medems URLs.
  • storage inditgescha co che las datotecas vegnan tegnidas: mode (permanent u temporary), ils bytes memorisads, expires_at (cur che ina datoteca temporara vegn stizzada, null per datotecas permanentas) e expired (true cur che las datotecas èn svanidas).
  • cost.credits è il pretsch da la clamada en credits API (cost.usd en USD), cost.charged quai ch'è vegnì dedrut dal saldo API, cost.refunded quai ch'è vegnì restituì. Per in model metered è cost.credits il maximum tegnì al cumenzament (cost.held); cur che l'execuziun reussescha, inditgescha cost.settled a quant che l'utilisaziun è muntada e il rest dal maximum è en cost.refunded (vesair Facturà tenor l'utilisaziun).
  • Cur che ina dumonda fa naufragi, è error { "type": …, "code": …, "message": … }.

Leger ina dumonda

terminal
curl "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
  • ?wait=N (fin a 20 secundas) fa polling lung: la clamada returnescha immediat che la dumonda è finala, u suenter N secundas cun il stadi actual. Repetir questa clamada è la moda la pli simpla d'attender in resultat.
  • ?logs=1 agiunta las lingias dal log da progress dal model (las ultimas 50) sco logs.

Ti pos leger mo dumondas da tes agen conto; mintga auter ID è 404 request_not_found.

Enumerar dumondas

terminal
curl "https://api.doitong.com/v1/requests?limit=20&status=succeeded&model=flux/schnell" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Las pli novas emprimas. limit è 1 fin 100 (standard 20), status e model filters. La resposta è { "object": "list", "data": [ … ], "has_more": true, "next_cursor": "req_…" }; trametta cursor=<next_cursor> per la pagina suandanta.

Annullar ina dumonda

terminal
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
  • Annullada avant che il model ha cumenzà: il status daventa canceled, ils credits API vegnan restituids e ti survegns 200.
  • Gia en generaziun: l'annullaziun vegn transmess e ti survegns 202 cun "cancel_requested": true. Sch'il model terminescha tuttina, la dumonda reussescha normalmain ed è chargiada.
  • Gia finala: 409 not_cancelable (ina dumonda gia canceled returnescha simplamain 200).

Stizzar las datotecas d'ina dumonda

terminal
curl -X DELETE "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Stizza ussa nossas copias da las datotecas d'output da la dumonda e ferma lur cust da memorisaziun. La resposta è l'object da la dumonda cun storage.expired: true; ses URLs restan en il protocol, ma na funcziunan betg pli. Ina segunda clamada na mida nagut (200). Ina dumonda che vegn anc queued u running n'ha anc naginas datotecas: 409 request_active. Basegna models:run.

Idempotenza: repeter senza pajar duas giadas

Las raits fan naufragi. Per repeter in'execuziun senza ristgar, trametta in header Idempotency-Key (mintga stringa fin a 255 caracters, unica per operaziun, per exempel tes agen ID d'incumbensa):

  • Medema clav e medem corp sco avant: ti survegns la dumonda originala (200, header Idempotent-Replayed: true) e nagut na vegn chargià danovamain.
  • Medema clav e corp suenter in'execuziun ch'ha fatg naufragi avant dad arrivar al model (upstream_error u internal_error al submit, insufficient_credits, budget_exceeded, too_many_inflight): nagut n'è vegnì producì e nagut na vegn chargià, uschia che la repetiziun exequescha puspè il model empè da returnar il naufragi.
  • Medema clav cun in auter corp: 409 idempotency_mismatch.
  • Las clavs èn limitadas a la clav API che las ha tramessas.

Nua che las datotecas sa chattan

Mintga datoteca d'output vegn copiada en nossa memorisaziun avant che la dumonda vegn marcada succeeded, perquai che ils URLs en outputs èn sin noss hosts e pon vegnir colliads directamain. Quant ditg ch'ellas restan è tia decisiun:

Mode Durada Pretsch
permanent (standard) Fin che ti las stizzas 100 credits API ($0,10) per GB e mais, chargiads mintga di dal saldo API
temporary 7 dis, lura stizzadas Gratuit
  • La configuraziun dal conto decida per novas dumondas: l'interruptur "Conservar las datotecas per adina" en il dashboard, u PATCH https://api.doitong.com/v1/account/storage cun {"mode": "temporary"}. GET https://api.doitong.com/v1/account l'inditgescha sut storage, cun ils bytes che ti tegns e la stimaziun mensila.
  • ?storage=permanent|temporary durant in'execuziun (l'argument storage da l'utensil MCP run) surpiglia la configuraziun per quella execuziun.
  • Midar la configuraziun na pertutga mai datotecas che ti possedas gia; stizza quellas cun DELETE /requests/{id}/files.
  • Sch'il saldo API na po betg pajar la memorisaziun, nagut na vegn chargià e ti survegns in e-mail: chargia danovamain entaifer 30 dis, autramain las datotecas tegnidas daventan temporaras e vegnan stizzadas 7 dis pli tard.

En il cas rar che nossa copia fa naufragi, l'entrada ha "stored": false e l'URL è quel original, da curta durada: telechargia la datoteca prest.