Σφάλματα
Κάθε τελικό σημείο αποτυγχάνει με τον ίδιο τρόπο: έναν κωδικό κατάστασης 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 |
Το αίτημα που αφορά, όταν υπάρχει. |
Δεν χρεώνεται τίποτα για κλήση που επιστρέφει σφάλμα. Ένα αίτημα που αποτυγχάνει αφού γίνει αποδεκτό διατηρεί την κατάσταση
failed, περιέχει error: { "type", "code", "message" } στο αντικείμενο του αιτήματος και λαμβάνει αυτόματα επιστροφή χρημάτων.
Τύποι
| Τύπος | Κατάσταση HTTP | Τι πρέπει να κάνετε |
|---|---|---|
invalid_request |
400, 413 ή 422 | Διορθώστε το αίτημα. Η επανάληψη της ίδιας κλήσης θα αποτύχει ξανά. |
authentication_error |
401 | Στείλτε έγκυρο κλειδί στο Authorization: Bearer <key>. |
permission_error |
403 | Χρησιμοποιήστε κλειδί με το απαιτούμενο scope. |
not_found |
404 | Ελέγξτε το id του μοντέλου ή του αιτήματος. |
insufficient_credits |
402 | Κάντε φόρτιση του υπολοίπου API (top_up_url στο σφάλμα). |
budget_exceeded |
402 | Ο προσωπικός προϋπολογισμός του κλειδιού έχει εξαντληθεί. Τελική ενέργεια: ζητήστε από τον κάτοχο του κλειδιού να τον αυξήσει. |
conflict |
409 | Ο πόρος δεν βρίσκεται σε κατάσταση που επιτρέπει αυτήν την κλήση. |
rate_limited |
429 | Περιμένετε Retry-After δευτερόλεπτα και μετά επαναλάβετε. |
upstream_error |
502 | Το backend του μοντέλου απέτυχε. Είναι ασφαλές να επαναλάβετε με το ίδιο 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.ru/v1/categories τις παραθέτει.
invalid_cursor
Το cursor μιας κλήσης λίστας δεν ανήκει σε αυτήν τη λίστα (400). Ξεκινήστε ξανά χωρίς cursor.
invalid_idempotency_key
Η κεφαλίδα Idempotency-Key είναι κενή ή μεγαλύτερη από 255 χαρακτήρες (400).
invalid_arguments
Μια κλήση εργαλείου MCP περιέχει όρισμα που λείπει ή είναι κακοσχηματισμένο (μόνο MCP). Το param κατονομάζει το όρισμα.
invalid_input
Η είσοδος του μοντέλου δεν περνά την επικύρωση (422): άγνωστη παράμετρος (το μήνυμα προτείνει την πλησιέστερη έγκυρη ονομασία),
απαιτούμενη παράμετρος που λείπει, λανθασμένος τύπος, τιμή εκτός της επιτρεπόμενης λίστας ή περιοχής, ή ταυτόχρονη παροχή της κανονικής και της
εγγενούς ονομασίας με διαφορετικές τιμές. Το param είναι η πρώτη προβληματική παράμετρος και το details παραθέτει όλες.
Δεν χρεώνεται τίποτα.
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
Από το κλειδί λείπει το scope που χρειάζεται αυτή η κλήση (403), για παράδειγμα models:run για εκτέλεση ή models:read για ανάγνωση
αιτημάτων και του υπολοίπου. Δείτε Έλεγχος ταυτότητας.
account_disabled
Ο λογαριασμός είναι κλειστός ή σε αναστολή (403). Τα κλειδιά του δεν λειτουργούν πλέον.
not_found
Η διαδρομή δεν υπάρχει (404).
model_not_found
Δεν υπάρχει δημόσιο μοντέλο με αυτό το id (404). Παραθέστε τα μοντέλα με GET https://api.doitong.ru/v1/models.
request_not_found
Δεν υπάρχει αίτημα με αυτό το id στον λογαριασμό σας (404). Τα αιτήματα άλλων λογαριασμών δεν είναι ποτέ ορατά.
insufficient_credits
Το υπόλοιπο API του λογαριασμού (πιστώσεις API, 1.000 πιστώσεις API = 1 $ — όχι οι πιστώσεις των εφαρμογών Doitong) δεν καλύπτει την
τιμή αυτής της κλήσης (402). Η απόκριση αποστέλλεται πριν χρεωθεί οτιδήποτε. Το σφάλμα περιέχει top_up_url· προσθέστε χρήματα
στη διεύθυνση https://doitong.ru/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.ru/developers/dashboard#balance",
"top_up_url": "https://doitong.ru/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
Το backend του μοντέλου απέρριψε ή απέτυχε να εκτελέσει το αίτημα (502 κατά την εκτέλεση ή failed με αυτόν τον κωδικό στο αίτημα). Οι πιστώσεις API επιστρέφονται. Αν το backend απέρριψε την είσοδο, η κλήση επιστρέφει 422 invalid_input με το αντίστοιχο μήνυμα.
upstream_lost
Το backend του μοντέλου δεν γνωρίζει πλέον το αίτημα, επομένως δεν θα φτάσει ποτέ αποτέλεσμα. Ολοκληρώνεται ως failed με αυτόν τον κωδικό
(τύπος upstream_error) και επιστρέφεται. Εκτελέστε το ξανά.
timeout
Το αίτημα εκτελέστηκε περισσότερο από το όριό του (15 λεπτά για εικόνες, 60 για βίντεο, 30 για τα υπόλοιπα) και διακόπηκε. Ολοκληρώνεται ως
failed με αυτόν τον κωδικό και επιστρέφεται.
service_unavailable
Το API βρίσκεται προσωρινά σε παύση ή μια εξάρτηση, όπως οι μεταφορτώσεις αρχείων, δεν είναι διαθέσιμη (503). Επαναλάβετε αργότερα.
internal_error
Κάτι χάλασε από την πλευρά μας (500). Επαναλάβετε· αν επιμένει, επικοινωνήστε με την υποστήριξη.
charge_failed
Δεν ήταν δυνατή η χρέωση του λογαριασμού λόγω εσωτερικού προβλήματος (500). Το αίτημα σημειώνεται ως failed· δεν αφαιρέθηκε τίποτα. Επαναλάβετε.
pricing_unavailable
Η τιμή του μοντέλου δεν έχει ρυθμιστεί, επομένως δεν είναι δυνατή η προσφορά τιμής ή η εκτέλεση αυτήν τη στιγμή (500).