שגיאות
כל נקודת קצה נכשלת באותה דרך: סטטוס HTTP ומעטפת 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 ולנסות שוב.
{ "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).