Dumondas
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):
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
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_inputcun ilparamproblemà 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 inPOSTsignà a quest URL, cur che la dumonda è terminada (vesair Webhooks).?storage=permanentu?storage=temporarytscherna 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
-
queuedAcceptà e debità, spetga sin in worker -
runningIl model generescha -
Stadis finals:
succeededLa summa indicada è vegnida addebitada; outputs[] cuntegnan URLs en noss arcunfailedRestituì automaticamain; l'errur declera il motivcanceledFermà 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
{
"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 cuntype(image,video,audio,fileu3d), inurlen nossa memorisaziun,content_typee, 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.storageinditgescha co che las datotecas vegnan tegnidas:mode(permanentutemporary), ilsbytesmemorisads,expires_at(cur che ina datoteca temporara vegn stizzada,nullper datotecas permanentas) eexpired(truecur che las datotecas èn svanidas).cost.creditsè il pretsch da la clamada en credits API (cost.usden USD),cost.chargedquai ch'è vegnì dedrut dal saldo API,cost.refundedquai ch'è vegnì restituì. Per in modelmeteredècost.creditsil maximum tegnì al cumenzament (cost.held); cur che l'execuziun reussescha, inditgeschacost.settleda quant che l'utilisaziun è muntada e il rest dal maximum è encost.refunded(vesair Facturà tenor l'utilisaziun).- Cur che ina dumonda fa naufragi, è
error{ "type": …, "code": …, "message": … }.
Leger ina dumonda
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=1agiunta las lingias dal log da progress dal model (las ultimas 50) scologs.
Ti pos leger mo dumondas da tes agen conto; mintga auter ID è 404 request_not_found.
Enumerar dumondas
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
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 survegns200. - Gia en generaziun: l'annullaziun vegn transmess e ti survegns
202cun"cancel_requested": true. Sch'il model terminescha tuttina, la dumonda reussescha normalmain ed è chargiada. - Gia finala:
409 not_cancelable(ina dumonda giacanceledreturnescha simplamain200).
Stizzar las datotecas d'ina dumonda
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, headerIdempotent-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_erroruinternal_erroral 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/storagecun{"mode": "temporary"}.GET https://api.doitong.com/v1/accountl'inditgescha sutstorage, cun ils bytes che ti tegns e la stimaziun mensila. ?storage=permanent|temporarydurant in'execuziun (l'argumentstorageda l'utensil MCPrun) 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.