مواد پر جائیں
شروع کریں

فوری آغاز

Markdown کے طور پر دیکھیں اپ ڈیٹ کیا گیا

چند منٹ میں اپنی پہلی تخلیق چلائیں۔ تمام 1,496 ماڈل ایک ہی قسم کی درخواست لیتے ہیں اور تصویر، ویڈیو اور آڈیو کے لیے ایک ہی درخواست آبجیکٹ واپس کرتے ہیں: اسے یہاں ایک بار سیکھیں۔

1. API کلید حاصل کریں

https://doitong.com/developers/dashboard#keys پر کلید بنائیں اور اسے ایک ماحولیاتی متغیر میں رکھیں: یہ صرف ایک بار دکھائی جاتی ہے۔ ہر کلید کا اپنا بجٹ ہو سکتا ہے، اس لیے آپ پورے اکاؤنٹ کو خطرے میں ڈالے بغیر ایک کلید ایجنٹ کو دے سکتے ہیں۔ GET /account آپ کا API بیلنس واپس کرتا ہے۔

export DOITONG_API_KEY="doitong_..."

curl "https://api.doitong.com/v1/account" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

چلنے والی درخواستوں کی ادائیگی آپ کے اکاؤنٹ کے API بیلنس سے API کریڈٹس میں ہوتی ہے: 1,000 API کریڈٹس = ⁨$1⁩، اور ہر ماڈل کی قیمت اس کے بنانے والے کی مقررہ قیمت کے عین مطابق ہوتی ہے۔ https://doitong.com/developers/dashboard#balance پر ٹاپ اَپ کریں۔

2. قیمت معلوم کریں، پھر چلائیں

POST /quote/{model_id} ان پٹ JSON لیتا ہے اور عین قیمت واپس کرتا ہے۔ اسے کلید کی ضرورت نہیں اور اس کی کوئی قیمت نہیں۔ اسی ان پٹ کو چلانے کی لاگت بھی یہی ہوتی ہے: کوٹ ہی چارج ہے۔ (استعمال کے حساب سے چارج ہونے والا ماڈل مستثنیٰ ہے: اس کا کوٹ زیادہ سے زیادہ ممکنہ لاگت ہوتا ہے، اور غیر استعمال شدہ حصہ چلنے کے بعد واپس کر دیا جاتا ہے۔)

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}'
200 OK · کوٹ
{
  "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"
}

پھر یہی باڈی POST /run/{model_id} کو بھیجیں۔ کنکشن کو زیادہ سے زیادہ 20 سیکنڈ روکنے کے لیے ?wait=20 شامل کریں: تیز ماڈل ایک ہی راؤنڈ ٹرپ میں مکمل نتیجہ واپس کرتا ہے۔ Idempotency-Key ہیڈر بھیجیں تاکہ دوبارہ کوشش کرنے پر درخواست دوبارہ نہ چلے (اور دوبارہ چارج نہ ہو)۔

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"}'

جواب ایک درخواست آبجیکٹ ہوتا ہے:

200 OK · درخواست
{
  "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. اسٹیٹس دیکھیں

اگر انتظار ختم ہونے پر ماڈل ابھی کام کر رہا ہو تو آپ کو درخواست کی id اور موجودہ status کے ساتھ 202 Accepted ملتا ہے۔ ہر درخواست ایک ہی لائف سائیکل سے گزرتی ہے:

درخواست کا لائف سائیکل
  1. queued قبول اور چارج کر دی گئی، ورکر کا انتظار ہے
  2. running ماڈل تخلیق کر رہا ہے
  3. حتمی اسٹیٹس:
    • succeededکوٹ کی رقم چارج کر دی گئی؛ outputs[] میں ہمارے اسٹوریج کے URLs موجود ہیں
    • failedخودکار طور پر رقم واپس کر دی گئی؛ خرابی کی وجہ درج ہے
    • canceledنتیجے سے پہلے روک دی گئی؛ رقم واپس کر دی گئی

اس کی id کے ذریعے درخواست دوبارہ پڑھیں۔ یہاں بھی ?wait=20 کام کرتا ہے، اس لیے ایک سادہ لوپ کافی ہے:

curl "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

جب status، succeeded ہو تو outputs[].url ہمارے اسٹوریج میں موجود فائلوں کے لنکس رکھتا ہے۔ اگر درخواست failed یا canceled ہو جائے تو اس کے API کریڈٹس خودکار طور پر واپس کر دیے جاتے ہیں اور error وجہ بتاتا ہے۔ جو کچھ ابھی queued یا running ہو اسے منسوخ کریں:

ٹرمینل
curl -X POST "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

طویل ویڈیو جابز کے لیے پولنگ چھوڑ کر اس کے بجائے webhook_url پاس کر سکتے ہیں (Webhooks دیکھیں)۔

4. فائلیں

کسی بھی عوامی URL کو ان پٹ کے طور پر پاس کریں، یا اپ لوڈ URL کے لیے POST /files سے درخواست کریں، وہاں فائل کو PUT کریں اور واپس ملنے والا file_url استعمال کریں (Files دیکھیں)۔ کامیاب درخواست اپنے نتائج outputs[] میں درج کرتی ہے، جن کے ساتھ type، content type اور، جب معلوم ہو، dimensions اور duration شامل ہوتے ہیں۔

ٹرمینل
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}'

خرابیاں

ہر ماڈل ایک ہی طرح ناکام ہوتا ہے: ایک envelope میں type، عین code، مسئلہ پیدا کرنے والا param اور details میں ہر مسئلہ ہوتا ہے، تاکہ ایجنٹ نثر پڑھے بغیر درخواست درست کر سکے۔ غیر درست درخواست پر کوئی چارج نہیں ہوتا۔

422 Unprocessable Entity
{
  "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"
  }
}

ہر type اور code Errors میں درج ہے۔

قیمتیں

قیمتیں USD اور API کریڈٹس میں ہوتی ہیں اور چلانے سے پہلے ہر ماڈل کے صفحے پر دکھائی جاتی ہیں۔ ہر درخواست میں cost کے ساتھ credits، usd، charged اور refunded شامل ہوتے ہیں۔ درخواست قبول ہونے پر چارج ہوتی ہے؛ failed اور canceled درخواستوں کی رقم خودکار طور پر واپس کی جاتی ہے۔ کچھ ماڈلز کی قیمت ان پٹ سے عین طے ہوتی ہے، کچھ آپ کی بھیجی ہوئی فائلوں کی لمبائی یا حجم کے مطابق، جبکہ دیگر ہر رن کی تخمینی قیمت لیتے ہیں: ہر صورت میں کوٹ ہی آپ کی ادائیگی ہے۔ چند ماڈلز (زبان اور وژن ماڈلز، آواز اور پروسیسنگ وقت کے ٹولز) استعمال کے حساب سے چارج ہوتے ہیں: کوٹ زیادہ سے زیادہ ممکنہ قیمت ہے، اور رن میں استعمال نہ ہونے والا حصہ خودکار طور پر واپس کر دیا جاتا ہے۔ Pricing دیکھیں۔

MCP اور AI ایجنٹس

اسی Bearer کلید کے ساتھ کسی بھی MCP کلائنٹ کو https://api.doitong.com/v1/mcp سے جوڑیں۔ آپ کا ایجنٹ کیٹلاگ تلاش، ماڈلز کا کوٹ اور رن، اور ہر دستاویزاتی صفحہ Markdown کے طور پر پڑھ سکتا ہے۔

Claude Code
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

اگلے مراحل

  • تمام ماڈلز دیکھیں۔ ہر صفحے پر درخواست بنانے والا ٹول موجود ہے جو آپ کے لیے کوڈ لکھتا ہے۔
  • درخواست کا لائف سائیکل سیکھیں: Requests۔
  • ہر ماڈل پر پیرامیٹر کے وہی نام استعمال کریں: Parameters۔
  • AI کوڈنگ ایجنٹ کے ساتھ کام کر رہے ہیں؟ اسے https://doitong.com/developers/llms.txt دیں یا MCP server سے جوڑیں۔