Svelta partenza
Efectues tia emprima generaziun en paucs minuts. Tut ils 1 496 models acceptan il medem gener de dumonda e returnan il medem object da dumonda, per maletgs, video ed audio: emprenda quai ina giada qua.
1. Obtegna ina clav API
Crees ina clav a https://doitong.com/developers/dashboard#keys e tegnla en ina variabla d'ambient: ella vegn mussada mo ina giada. Mintga clav po avair ses agen budget, uschia che ti la pos dar ad in agent senza ristgar l'entir conto. GET /account returna tes saldo 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())
Las execuziuns vegnan pajadas dal saldo API da tes conto en credits API: 1 000 credits API = $1, e mintga model custa exactamain il pretsch da ses producent. Fa ina chargiada a https://doitong.com/developers/dashboard#balance.
2. Dumonda in pretsch, lura exequies
POST /quote/{model_id} prenda il JSON d'input e returna il pretsch exact. I na dovra nagina clav e na custa nagut. La medema input custa exact quai: la quotaziun è la chargiada. (In model chargià tenor utilisaziun è l'excepziun: sia quotaziun è il maximum che l'execuziun po custar, e la part betg utilisada vegn restituida suenter l'execuziun.)
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"
}
Lura trametta il medem coss a POST /run/{model_id}. Aggiunta ?wait=20 per tegnair la connexiun averta durant maximalmain 20 secundas: in model svelt returna il resultat terminà en ina unica communicaziun. Trametta in header Idempotency-Key per che ina repetiziun na lantschia (ni chargia) mai duas giadas.
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)
La resposta è in object da dumonda:
{
"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. Suanda il status
Sche il model lavura anc cura che l'attesa finescha, survegns 202 Accepted cun l'id da la dumonda e ses status actual. Mintga dumonda passa tras il medem ciclus da vita:
-
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ì
Legia danovamain la dumonda cun ses id. ?wait=20 funcziuna era qua, uschia ch'in simpel ciclus basta:
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)
Cura che status è succeeded, cuntegna outputs[].url ils links a las datotecas en nossa memorisaziun. Sche la dumonda è failed u canceled, vegnan ses credits API restituids automaticamain e error declera il motiv. Cancelescha tut quai che stat anc en queued u running:
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
-H "Authorization: Bearer $DOITONG_API_KEY"
Per lungs jobs da video pos ti sursiglir il polling e passar in webhook_url empè da quai (vesair Webhooks).
4. Datotecas
Passa mintga URL public sco input, u dumonda POST /files per ina URL d'upload, fa PUT da la datoteca là e utilisescha il file_url returnà (vesair Datotecas). Ina dumonda reussida enumerescha ses resultats en outputs[] cun il tip, il tip da cuntegna e, sch'èn enconuschentas, las dimensiuns e la durada.
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}'
Errurs
Mintga model fallescha en la medema moda: in envelop cun in type, in code exact, il param problematica e mintga problem en details, uschia che in agent po curreger la dumonda senza leger prosa. Ina dumonda invalida na vegn mai chargiada.
{
"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"
}
}
Mintga tip e code èn enumerads en Errurs.
Pretschs
Ils pretschs èn en USD e credits API e vegnan mussads sin mintga pagina da model avant l'execuziun. Mintga dumonda cuntegna cost cun credits, usd, charged e refunded. Ina execuziun vegn chargiada cura ch'ella vegn acceptada; las dumondas failed e canceled vegnan restituids automaticamain. Tscherts models vegnan pretschads exactamain tenor l'input, tscherts tenor la lunghezza u grondezza da las datotecas che ti tramettas, ed auters chargian in pretsch stimà per execuziun: en mintga cas è la quotaziun quai che ti pajas. Pauc models (models da linguas e da visiun, vusch, utensils da temp da processament) vegnan chargiads tenor utilisaziun: la quotaziun è il maximum che l'execuziun po custar, e la part che l'execuziun n'ha betg utilisà vegn restituida automaticamain. Vesair Pretschs.
MCP ed agents d'IA
Colleges mintga client MCP a https://api.doitong.com/v1/mcp cun la medema clav Bearer. Tes agent po tschertgar en il catalog, dumandar pretschs ed exequir models, e leger mintga pagina da documentaziun sco Markdown.
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Proxims pass
- Sfoglia tuts ils models. Mintga pagina ha in constructur da dumondas che scriva il code per tai.
- Emprenda il ciclus da vita da las dumondas: Dumondas.
- Utilisescha ils medems nums da parameters per mintga model: Parameters.
- Lavuras cun in agent d'IA per programmar? Dà ad el https://doitong.com/developers/llms.txt u collia il server MCP.