דילוג לתוכן
תחילת העבודה

התחלה מהירה

הצגה כ-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}. הוסיפו ?wait=20 כדי להחזיק את החיבור עד 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. מעקב אחר הסטטוס

אם המודל עדיין עובד כאשר זמן ההמתנה מסתיים, תקבלו 202 Accepted עם ה-id של הבקשה וה-status הנוכחי שלה. כל בקשה עוברת באותו מחזור חיים:

מחזור החיים של בקשה
  1. queued התקבלה וחויבה, ממתינה לעובד
  2. running המודל מייצר
  3. סטטוסים סופיים:
    • succeededהחיוב בוצע לפי הצעת המחיר; outputs[] מכיל כתובות באחסון שלנו
    • 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[], כולל סוג, סוג תוכן, ואם ידועים — מידות ומשך.

מסוף
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}'

שגיאות

כל מודל נכשל באותה דרך: מעטפת אחת עם 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"
  }
}

כל הסוגים והקודים מופיעים ב-Errors.

תמחור

המחירים נקובים ב-USD ובקרדיטי API ומוצגים בכל דף מודל לפני ההרצה. כל בקשה כוללת cost עם credits,‏ usd,‏ charged ו-refunded. הרצה מחויבת כאשר היא מתקבלת; בקשות failed ו-canceled מקבלות החזר אוטומטי. חלק מהמודלים מתומחרים בדיוק לפי הקלט, חלק לפי אורך או גודל הקבצים שאתם שולחים, ואחרים מחייבים מחיר משוער להרצה: בכל מקרה, הצעת המחיר היא הסכום שתשלמו. כמה מודלים (מודלי שפה וראייה, קול וכלים המבוססים על זמן עיבוד) מחויבים לפי שימוש: הצעת המחיר היא הסכום המרבי שההרצה יכולה לעלות, והחלק שההרצה לא ניצלה מוחזר אוטומטית. ראו Pricing.

MCP וסוכני AI

חברו כל לקוח MCP אל https://api.doitong.com/v1/mcp באמצעות אותו מפתח Bearer. הסוכן שלכם יכול לחפש בקטלוג, לקבל הצעות מחיר ולהריץ מודלים, ולקרוא כל דף תיעוד כ-Markdown.

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

השלבים הבאים