דילוג לתוכן
מדריך API

שגיאות

הצגה כ-Markdown עודכן

כל נקודת קצה נכשלת באותה דרך: סטטוס HTTP ומעטפת JSON אחת.

JSON
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_input",
    "message": "duration must be one of 5, 10.",
    "param": "duration",
    "details": [ { "param": "duration", "message": "duration must be one of 5, 10." } ],
    "request_id": null,
    "doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
  }
}
שדה משמעות
type הסיווג הכללי של השגיאה. לפי זה יש להחליט מה לעשות.
code הסיבה המדויקת, יציבה וקריאה למכונה. לכל קוד יש סעיף בהמשך; doc_url מקשר אליו.
message הסבר קריא לבני אדם, בטוח לרישום או להצגה למפתח.
param פרמטר הקלט או הכותרת הבעייתיים, אם יש כאלה.
details עבור שגיאות קלט, כל הבעיות שנמצאו: [{ "param", "message" }].
request_id הבקשה שאליה הדבר מתייחס, אם קיימת.

לא נגבים קרדיטי API עבור קריאה שמחזירה שגיאה. בקשה שנכשלת לאחר שהתקבלה נשארת בסטטוס failed, כוללת error: { "type", "code", "message" } באובייקט הבקשה, ומקבלת החזר אוטומטי.

סוגים

סוג סטטוס HTTP מה לעשות
invalid_request 400, 413 או 422 לתקן את הבקשה. ניסיון חוזר של אותה קריאה ייכשל שוב.
authentication_error 401 לשלוח מפתח תקף ב־Authorization: Bearer <key>.
permission_error 403 להשתמש במפתח עם ההרשאה הנדרשת.
not_found 404 לבדוק את מזהה המודל או את מזהה הבקשה.
insufficient_credits 402 לטעון את יתרת ה־API (top_up_url בשגיאה).
budget_exceeded 402 התקציב של המפתח עצמו נוצל. סופי: לבקש מבעל המפתח להגדיל אותו.
conflict 409 המשאב אינו במצב שמאפשר את הקריאה הזו.
rate_limited 429 להמתין Retry-After שניות ואז לנסות שוב.
upstream_error 502 עורף המודל נכשל. בטוח לנסות שוב עם אותו Idempotency-Key: הקריאה תתבצע שוב; לא חויבתם.
service_unavailable 503 ה־API מושהה או שתלות אינה זמינה. לנסות שוב מאוחר יותר.
internal_error 500 באג אצלנו. לנסות שוב; אם הבעיה נמשכת, לפנות לתמיכה עם השעה ו־request_id.

קודים

invalid_request

בקשה פגומה כללית (400).

invalid_json

גוף הבקשה אינו JSON תקין (400).

invalid_body

גוף הבקשה הוא JSON תקין אך אינו אובייקט; קלט המודל חייב להיות אובייקט JSON (400).

body_too_large

גוף הבקשה גדול מ־16 MB (413). יש להעלות קבצים גדולים ולהעביר במקום זאת את ה־URL שלהם (ראו קבצים).

invalid_parameter

לפרמטר שאילתה יש ערך שגוי, למשל limit מחוץ לטווח 1 עד 100, wait שאינו מספר, status או category לא מוכרים, או storage שאינו permanent / temporary (400). param מציין אותו.

invalid_category

GET /openapi.json?category= מציין קטגוריה שאינה קיימת (400). GET https://api.doitong.com/v1/categories מציג את הקטגוריות.

invalid_cursor

ה־cursor של קריאת רשימה אינו שייך לרשימה הזו (400). להתחיל מחדש ללא סמן.

invalid_idempotency_key

הכותרת Idempotency-Key ריקה או ארוכה מ־255 תווים (400).

invalid_arguments

לקריאת כלי MCP חסר ארגומנט או שיש בה ארגומנט פגום (MCP בלבד). param מציין את הארגומנט.

invalid_input

קלט המודל אינו עובר אימות (422): פרמטר לא מוכר (ההודעה מציעה את השם התקף הקרוב ביותר), פרמטר נדרש חסר, סוג שגוי, ערך מחוץ לרשימה או לטווח המותרים, או שניתנו גם השם הקנוני וגם השם המקורי עם ערכים שונים. param הוא הפרמטר הראשון שגרם לבעיה, ו־details מציג את כולם. לא נגבים קרדיטי API.

unsupported_file

לקובץ יש סוג שאיננו מקבלים (422), למשל העלאה עם סיומת שאינה נתמכת, או content_type שאינו תואם לסיומת.

invalid_webhook_url

webhook_url אינו URL ציבורי מסוג https:// (422). כתובות פרטיות, מקומיות וכתובות http:// רגילות נדחות.

missing_api_key

נקודת הקצה זקוקה למפתח API, אך לא נשלח מפתח (401).

invalid_api_key

המפתח אינו מוכר, בוטל או פג תוקפו (401).

insufficient_scope

למפתח חסרה ההרשאה שהקריאה הזו דורשת (403), למשל models:run להפעלה, או models:read לקריאת בקשות והיתרה. ראו אימות.

account_disabled

החשבון נסגר או הושעה (403). המפתחות שלו אינם פועלים עוד.

not_found

הנתיב אינו קיים (404).

model_not_found

אין מודל ציבורי עם מזהה זה (404). יש להציג את המודלים באמצעות GET https://api.doitong.com/v1/models.

request_not_found

אין בחשבון שלכם בקשה עם מזהה זה (404). בקשות של חשבונות אחרים לעולם אינן גלויות.

insufficient_credits

יתרת ה־API של החשבון (קרדיטי API, 1,000 קרדיטי API = ⁨‏1 ‏$⁩ — לא הקרדיטים של אפליקציות Doitong) אינה מכסה את מחיר הקריאה הזו (402). התגובה נשלחת לפני שחיוב כלשהו מתבצע. השגיאה כוללת top_up_url; יש להוסיף כסף בכתובת https://doitong.com/developers/dashboard#balance ולנסות שוב.

JSON
{ "error": { "type": "insufficient_credits", "code": "insufficient_credits",
             "message": "This request costs 560 API credits ($0.56); the API balance is 120 API credits ($0.12). Top up at https://doitong.com/developers/dashboard#balance",
             "top_up_url": "https://doitong.com/developers/dashboard#balance", "doc_url": "https://doitong.com/developers/docs/errors#insufficient_credits" } }

budget_exceeded

הקריאה תחרוג מהתקציב של מפתח ה־API עצמו בקרדיטי API (402). התקציב נקבע על ידי בעל המפתח; ניסיון חוזר לא יעזור עד שבעל המפתח יגדיל אותו.

conflict

הקריאה מתנגשת במצב הנוכחי של המשאב (409).

idempotency_mismatch

ה־Idempotency-Key כבר שימש עם גוף בקשה אחר (409). יש להשתמש במפתח חדש לפעולה חדשה.

idempotency_in_progress

בקשה עם אותו Idempotency-Key נוצרת כרגע (409). לנסות שוב בעוד רגע כדי לקבל אותה.

request_active

הבקשה עדיין queued או running, ולכן עדיין אין לה קבצים למחיקה (409). יש למחוק אותם לאחר שתסתיים.

not_cancelable

הבקשה כבר succeeded או failed ואי אפשר לבטל אותה (409).

rate_limited

המפתח שלח יותר מדי בקשות בחלון הנוכחי (429). ראו את הכותרות X-RateLimit-* ו־Retry-After.

too_many_inflight

בחשבון כבר יש 10 בקשות במצב queued או running (429). יש להתחיל את הבאה כאשר אחת מהן תסתיים.

upstream_error

עורף המודל דחה את הבקשה או נכשל בעיבודה (502 בעת הפעלה, או failed עם קוד זה בבקשה). קרדיטי ה־API מוחזרים. אם העורף עצמו דחה את הקלט, הקריאה מחזירה 422 invalid_input עם ההודעה שלו במקום זאת.

upstream_lost

עורף המודל אינו מכיר עוד את הבקשה, ולכן אף תוצאה לא תגיע. היא מסתיימת כ־failed עם קוד זה (סוג upstream_error) ומקבלת החזר. יש להפעיל אותה שוב.

timeout

הבקשה פעלה מעבר למגבלת הזמן שלה (15 דקות לתמונות, 60 לווידאו, 30 בכל מקרה אחר) ונעצרה. היא מסתיימת כ־ failed עם קוד זה ומקבלת החזר.

service_unavailable

ה־API מושהה זמנית, או שתלות כגון העלאות קבצים אינה זמינה (503). לנסות שוב מאוחר יותר.

internal_error

משהו השתבש בצד שלנו (500). לנסות שוב; אם הבעיה נמשכת, לפנות לתמיכה.

charge_failed

לא ניתן היה לחייב את החשבון בגלל בעיה פנימית (500). הבקשה מסומנת כ־failed; לא נגבה דבר. לנסות שוב.

pricing_unavailable

מחיר המודל אינו מוגדר, ולכן אי אפשר לקבל הצעת מחיר או להפעיל אותו כרגע (500).