အကြောင်းအရာသို့ ကျော်ရန်
API လမ်းညွှန်

တောင်းဆိုမှုများ

Markdown အဖြစ်ကြည့်ရန် မွမ်းမံထားသည်

တောင်းဆိုချက်တစ်ခုသည် မော်ဒယ်တစ်ခုကို တစ်ကြိမ်ခေါ်ဆိုခြင်း ဖြစ်သည်။ ၎င်းတွင် id (req_…), အခြေအနေ၊ API ခရက်ဒစ်ဖြင့် ကုန်ကျစရိတ် (1000 = 1 USD) နှင့် အောင်မြင်ပါက ဖန်တီးထားသော ဖိုင်များ ပါဝင်သည်။ အောက်ပါ Endpoint တိုင်းမှ မော်ဒယ်တိုင်းအတွက် တူညီသော object ကို ပြန်လည်ရရှိသည်။

မော်ဒယ်ရှာရန်

မော်ဒယ် ၁,၄၉၆ ခုလုံး၏ ကတ်တလောက်သည် အများမြင် JSON ဖြစ်သည် (ကီးမလိုအပ်ပါ)။

terminal
curl "https://api.doitong.com/v1/models?category=text-to-video&lab=Google&limit=20"
Query ပါရာမီတာ အဓိပ္ပာယ်
q အမည်၊ id၊ ထုတ်လုပ်သူ သို့မဟုတ် tags တွင် မဖြစ်မနေ ပါဝင်ရမည့် စကားလုံးများ၊ ဥပမာ kling 3။
category category id တစ်ခု၊ ဥပမာ text-to-video သို့မဟုတ် upscale။ GET https://api.doitong.com/v1/categories သည် အမျိုးအစား ၂၁ ခုလုံးနှင့် ၎င်းတို့၏ အရေအတွက်များကို စာရင်းပြုစုသည်။
lab မော်ဒယ်၏ ထုတ်လုပ်သူကို အမည် သို့မဟုတ် id ဖြင့် သတ်မှတ်ခြင်း၊ ဥပမာ Google သို့မဟုတ် black-forest-labs။
family ယခင်အတန်းမှ family id တစ်ခု - မော်ဒယ်တစ်ခု၏ မူကွဲအားလုံး (pro, fast, image-to-video, …)။
mode exact (ထည့်သွင်းချက်မှ စျေးနှုန်းတွက်ချက်သည်)၊ measured (ထည့်သွင်းဖိုင်များ၏ အလျား သို့မဟုတ် အရွယ်အစားမှ)၊ estimate (run တစ်ကြိမ်အတွက် ခန့်မှန်းစျေးနှုန်း) သို့မဟုတ် metered (အများဆုံး run ကုန်ကျစရိတ်အထိ အမှန်တကယ် အသုံးပြုမှုအလိုက် ကောက်ခံသည်)။
limit, cursor စာမျက်နှာအရွယ်အစား (1 မှ 100၊ မူလတန်ဖိုး 50) နှင့် ယခင်စာမျက်နှာ၏ next_cursor။

အတန်းတိုင်းတွင် id, name, lab, category, family, summary, tags, output_kind, docs_url နှင့် price object ပါဝင်သည်။ စျေးနှုန်းသတ်မှတ်ခြင်း ကို ကြည့်ပါ။ GET https://api.doitong.com/v1/models/{model_id} တွင် ထည့်သွင်းချက်နှင့် ထွက်ရလဒ် JSON Schema အပြည့်အစုံ၊ စံပါရာမီတာအမည်များ၊ စျေးနှုန်းစည်းမျဉ်းများနှင့် နမူနာထည့်သွင်းချက်ကို ထပ်မံပေးသည်။ မသိသော category သို့မဟုတ် mode သည် 400 invalid_parameter ဖြစ်သည်။

မော်ဒယ် run ရန်

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": "..."}'
  • Body သည် JSON object ဖြစ်သော မော်ဒယ်ထည့်သွင်းချက် ဖြစ်သည်။ မော်ဒယ်စာမျက်နှာတိုင်းတွင် ၎င်း၏ ပါရာမီတာများကို ဖော်ပြထားသည်။
  • မည်သည့်အရာမျှ မကောက်ခံမီ ထည့်သွင်းချက်ကို စစ်ဆေးသည်။ မမှန်ကန်သော ထည့်သွင်းချက်သည် ပြဿနာဖြစ်စေသော param နှင့်အတူ 422 invalid_input ကို ပြန်ပေးပြီး ကုန်ကျစရိတ်မရှိပါ။
  • ?wait=N (အများဆုံး 20 စက္ကန့်) သည် တောင်းဆိုချက်ပြီးဆုံးသည်အထိ သို့မဟုတ် အချိန်ကုန်သည်အထိ ခေါ်ဆိုမှုကို ဆိုင်းငံ့ထားသည်။
  • ?webhook_url=https://… သည် တောင်းဆိုချက်ပြီးဆုံးသောအခါ ထို URL သို့ လက်မှတ်ထိုးထားသော POST ပို့သည် (Webhook များ ကို ကြည့်ပါ)။
  • ?storage=permanent သို့မဟုတ် ?storage=temporary သည် ထွက်ရလဒ်ဖိုင်များကို မည်မျှကြာ သိမ်းဆည်းမည်ကို ရွေးချယ်သည်။ မသတ်မှတ်ပါက အကောင့်ဆက်တင်ကို အသုံးပြုသည် (ဖိုင်များရှိသည့်နေရာ ကို ကြည့်ပါ)။

တောင်းဆိုချက် လုပ်ဆောင်နေဆဲဖြစ်ပါက တုံ့ပြန်ချက်သည် 202 Accepted ဖြစ်ပြီး၊ wait အတွင်း ပြီးဆုံးပါက (သို့မဟုတ် အောက်တွင် ဖော်ပြထားသည့် replay ဖြစ်ပါက) 200 OK ဖြစ်သည်။ Location နှင့် Doitong-Request-Id headers များတွင် တောင်းဆိုချက် URL နှင့် id ပါဝင်သည်။

အခြေအနေများ

တောင်းဆိုချက် လုပ်ဆောင်မှုအဆင့်များ
  1. queued လက်ခံပြီး ကောက်ခံထားသည်၊ worker ကို စောင့်နေသည်
  2. running မော်ဒယ်က ထုတ်လုပ်နေသည်
  3. နောက်ဆုံးအခြေအနေများ:
    • succeededQuote အတိုင်း ကောက်ခံပြီးပါပြီ၊ outputs[] တွင် ကျွန်ုပ်တို့၏ သိုလှောင်မှုရှိ URL များ ပါဝင်သည်
    • failedအလိုအလျောက် ငွေပြန်အမ်းပြီး၊ အမှားတွင် အကြောင်းရင်းကို ဖော်ပြသည်
    • canceledရလဒ်မထွက်မီ ရပ်တန့်ပြီး၊ ပြန်အမ်းထားသည်
Status အဓိပ္ပာယ် Final
queued လက်ခံပြီး ကောက်ခံထားကာ worker ကို စောင့်နေသည်။ queue_position တွင် တန်းစီနေရာကို ပြနိုင်သည်။ no
running မော်ဒယ်က ဖန်တီးနေသည်။ no
succeeded ပြီးဆုံးပြီ။ outputs တွင် ဖိုင်များကို စာရင်းပြုစုထားသည်။ yes
failed မော်ဒယ် သို့မဟုတ် ကန့်သတ်ချက်တစ်ခုက ရပ်တန့်စေသည်။ error တွင် အကြောင်းရင်းကို ဖော်ပြသည်။ API ခရက်ဒစ်များကို ငွေပြန်အမ်းသည်။ yes
canceled ရလဒ်မထုတ်မီ ပယ်ဖျက်ထားသည်။ API ခရက်ဒစ်များကို ငွေပြန်အမ်းသည်။ yes

အချိန်ကန့်သတ်ချက်ထက် ပိုကြာသော တောင်းဆိုချက်သည် timeout ကုဒ်ဖြင့် မအောင်မြင်ဘဲ ငွေပြန်အမ်းသည် - ပုံများအတွက် 15 မိနစ်၊ ဗီဒီယိုအတွက် 60 မိနစ်၊ အသံနှင့် အခြားအရာအားလုံးအတွက် 30 မိနစ်။

တောင်းဆိုချက် object

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 သည် မော်ဒယ်တိုင်းအတွက် တူညီသည် - ဖန်တီးထားသော ဖိုင်တစ်ခုစီအတွက် entry တစ်ခုစီဖြင့် type (image, video, audio, file သို့မဟုတ် 3d), ကျွန်ုပ်တို့၏ သိုလှောင်မှုရှိ url, content_type နှင့် သိရှိပါက file_size, width, height, duration တို့ ပါဝင်သည်။
  • output သည် မော်ဒယ်၏ ကိုယ်ပိုင်ရလဒ် object ဖြစ်ပြီး (၎င်း၏ fields များကို မော်ဒယ်စာမျက်နှာတိုင်းတွင် ဖော်ပြထားသည်) တူညီသော URL များ ပါဝင်သည်။
  • storage သည် ဖိုင်များကို မည်သို့သိမ်းဆည်းထားသည်ကို ဖော်ပြသည် - mode (permanent သို့မဟုတ် temporary), သိမ်းဆည်းထားသော bytes, expires_at (temporary ဖိုင်ကို ဖျက်မည့်အချိန်၊ permanent ဖိုင်များအတွက် null) နှင့် expired (ဖိုင်များ ပျောက်ဆုံးသွားသည်နှင့် true)။
  • cost.credits သည် ခေါ်ဆိုမှု၏ API ခရက်ဒစ်ဖြင့် စျေးနှုန်း (cost.usd သည် USD ဖြင့်)၊ cost.charged သည် API လက်ကျန်မှ နုတ်ယူထားသည့် ပမာဏ၊ cost.refunded သည် ပြန်အမ်းသည့် ပမာဏ ဖြစ်သည်။ metered မော်ဒယ်အတွက် cost.credits သည် အစတွင် ထိန်းသိမ်းထားသည့် အများဆုံးပမာဏ (cost.held) ဖြစ်သည်။ run အောင်မြင်သောအခါ cost.settled သည် အသုံးပြုမှုကုန်ကျသည့် ပမာဏကို ဖော်ပြပြီး အများဆုံးပမာဏ၏ ကျန်ငွေသည် cost.refunded တွင် ပါဝင်သည် (အသုံးပြုမှုအလိုက် ကောက်ခံခြင်း ကို ကြည့်ပါ)။
  • တောင်းဆိုချက် မအောင်မြင်ပါက error သည် { "type": …, "code": …, "message": … } ဖြစ်သည်။

တောင်းဆိုချက်ဖတ်ရန်

terminal
curl "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
  • ?wait=N (အများဆုံး 20 စက္ကန့်) သည် long-poll ပြုလုပ်သည် - တောင်းဆိုချက် အပြီးသတ်သည်နှင့် ခေါ်ဆိုမှုကို ပြန်ပေးမည် သို့မဟုတ် N စက္ကန့်အကြာတွင် လက်ရှိအခြေအနေကို ပြန်ပေးမည်။ ရလဒ်ကို စောင့်ရန် ဤနည်းလမ်းကို ထပ်ခါတလဲလဲ ခေါ်ဆိုခြင်းသည် အလွယ်ကူဆုံးဖြစ်သည်။
  • ?logs=1 သည် မော်ဒယ်၏ တိုးတက်မှုမှတ်တမ်းလိုင်းများ (နောက်ဆုံး 50 ခု) ကို logs အဖြစ် ထည့်ပေးသည်။

မိမိအကောင့်၏ တောင်းဆိုချက်များကိုသာ ဖတ်နိုင်သည်။ အခြား id များသည် 404 request_not_found ဖြစ်သည်။

တောင်းဆိုချက်များ စာရင်းပြုစုရန်

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

အသစ်ဆုံးမှ စတင်သည်။ limit သည် 1 မှ 100 (မူလတန်ဖိုး 20) ဖြစ်ပြီး status နှင့် model တို့ဖြင့် စစ်ထုတ်သည်။ တုံ့ပြန်ချက်သည် { "object": "list", "data": [ … ], "has_more": true, "next_cursor": "req_…" } ဖြစ်သည်။ နောက်စာမျက်နှာအတွက် cursor=<next_cursor> ကို ပေးပို့ပါ။

တောင်းဆိုချက်ပယ်ဖျက်ရန်

terminal
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
  • မော်ဒယ်မစတင်မီ ပယ်ဖျက်ပါက အခြေအနေသည် canceled ဖြစ်လာပြီး API ခရက်ဒစ်များကို ငွေပြန်အမ်းကာ 200 ရရှိမည်။
  • ဖန်တီးနေပြီးသားဖြစ်ပါက ပယ်ဖျက်မှုကို ဆက်လက်ပေးပို့ပြီး "cancel_requested": true နှင့်အတူ 202 ရရှိမည်။ မော်ဒယ်က ဆက်လက်ပြီးဆုံးသွားပါက တောင်းဆိုချက်သည် ပုံမှန်အတိုင်း အောင်မြင်ပြီး ကောက်ခံမည်။
  • အပြီးသတ်ပြီးသားဖြစ်ပါက 409 not_cancelable ဖြစ်သည် (ပယ်ဖျက်ပြီးသား တောင်းဆိုချက်သည် 200 ကိုသာ ပြန်ပေးသည်)။

တောင်းဆိုချက်၏ ဖိုင်များကို ဖျက်ရန်

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

တောင်းဆိုချက်၏ ထွက်ရလဒ်ဖိုင်များကို ကျွန်ုပ်တို့၏ မိတ္တူများမှ ယခုပင် ဖျက်ပြီး သိုလှောင်မှုကောက်ခံမှုကို ရပ်တန့်သည်။ တုံ့ပြန်ချက်သည် storage.expired: true ပါသော တောင်းဆိုချက် object ဖြစ်သည်။ ၎င်း၏ URL များသည် မှတ်တမ်းတွင် ဆက်ရှိသော်လည်း အလုပ်မလုပ်တော့ပါ။ ထပ်မံခေါ်ဆိုပါက မည်သည့်အရာမျှ မပြောင်းလဲပါ (200)။ queued သို့မဟုတ် running ဖြစ်နေဆဲ တောင်းဆိုချက်တွင် ဖိုင်များမရှိသေးပါ - 409 request_active။ models:run လိုအပ်သည်။

Idempotency: နှစ်ကြိမ်မပေးဘဲ ပြန်စမ်းရန်

ကွန်ရက်များ ပျက်နိုင်သည်။ run တစ်ခုကို ဘေးကင်းစွာ ပြန်စမ်းရန် Idempotency-Key header ကို ပေးပို့ပါ (အများဆုံး စာလုံး 255 လုံးရှိ မည်သည့် string မဆို၊ operation တစ်ခုစီအတွက် မတူညီရမည်၊ ဥပမာ မိမိ၏ order id)။

  • ယခင် body နှင့် key တူပါက မူလတောင်းဆိုချက်ကို ပြန်ရရှိမည် (200, Idempotent-Replayed: true header ပါဝင်မည်)၊ ထပ်မံကောက်ခံမည်မဟုတ်ပါ။
  • မော်ဒယ်သို့ မရောက်မီ run မအောင်မြင်ခဲ့ပြီးနောက် body နှင့် key တူပါက (upstream_error သို့မဟုတ် internal_error on submit, insufficient_credits, budget_exceeded, too_many_inflight) မည်သည့်အရာမျှ မထုတ်လုပ်ခဲ့သလို မည်သည့်အရာမျှ မကောက်ခံသောကြောင့် မအောင်မြင်မှုကို ပြန်ပေးမည့်အစား retry သည် မော်ဒယ်ကို ထပ်မံ run မည်။
  • body မတူဘဲ key တူပါက 409 idempotency_mismatch ဖြစ်သည်။
  • Keys များသည် ၎င်းတို့ကို ပေးပို့သည့် API ကီးအလိုက် သီးခြားသတ်မှတ်ထားသည်။

ဖိုင်များရှိသည့်နေရာ

တောင်းဆိုချက်ကို succeeded ဟု မသတ်မှတ်မီ ထွက်ရလဒ်ဖိုင်တိုင်းကို ကျွန်ုပ်တို့၏ သိုလှောင်မှုသို့ ကူးယူသည်။ ထို့ကြောင့် outputs ရှိ URL များသည် ကျွန်ုပ်တို့၏ host များပေါ်တွင်ရှိပြီး တိုက်ရိုက်လင့်ခ်ချိတ်နိုင်သည်။ ၎င်းတို့ မည်မျှကြာ ရှိနေမည်ကို မိမိရွေးချယ်နိုင်သည်။

Mode ကြာချိန် စျေးနှုန်း
permanent (မူလတန်ဖိုး) မိမိဖျက်သည်အထိ တစ်လလျှင် GB တစ်ခုအတွက် ၁၀၀ API ခရက်ဒစ် (၀.၁၀ $)၊ API လက်ကျန်မှ နေ့စဉ်ကောက်ခံသည်
temporary ၇ ရက်၊ ထို့နောက် ဖျက်မည် အခမဲ့
  • အကောင့်ဆက်တင်သည် တောင်းဆိုချက်အသစ်များအတွက် ဆုံးဖြတ်ပေးသည် - dashboard ရှိ "ဖိုင်များကို အမြဲတမ်း သိမ်းဆည်းထားပါ" switch သို့မဟုတ် PATCH https://api.doitong.com/v1/account/storage နှင့် {"mode": "temporary"}။ GET https://api.doitong.com/v1/account သည် storage အောက်တွင် ၎င်းကို ပြသပြီး မိမိသိမ်းဆည်းထားသည့် bytes နှင့် လစဉ်ခန့်မှန်းကုန်ကျစရိတ်ကိုလည်း ပြသည်။
  • run တစ်ခုတွင် ?storage=permanent|temporary (MCP run tool ၏ storage argument) ဖြင့် ထိုဆက်တင်ကို အဆိုပါ run အတွက် အစားထိုးနိုင်သည်။
  • ဆက်တင်ပြောင်းလဲခြင်းသည် ရှိပြီးသားဖိုင်များကို မထိခိုက်စေပါ။ ၎င်းတို့ကို DELETE /requests/{id}/files ဖြင့် ဖျက်ပါ။
  • API လက်ကျန်ဖြင့် သိုလှောင်မှုအတွက် မပေးချေနိုင်ပါက မည်သည့်အရာမျှ မကောက်ခံဘဲ အီးမေးလ်ရရှိမည်။ ၃၀ ရက်အတွင်း ငွေဖြည့်ခြင်း ပြုလုပ်ပါ၊ မဟုတ်ပါက သိမ်းဆည်းထားသော ဖိုင်များသည် temporary ဖြစ်လာပြီး ၇ ရက်အကြာတွင် ဖျက်ပစ်မည်။

ရှားရှားပါးပါး ကျွန်ုပ်တို့၏ မိတ္တူကူးယူမှု မအောင်မြင်ပါက entry တွင် "stored": false ပါဝင်ပြီး URL သည် သက်တမ်းတိုသော မူရင်း URL ဖြစ်သည်။ အမြန်ဒေါင်းလုဒ်လုပ်ပါ။