Erreurs
Chaque point de terminaison échoue de la même manière : un statut HTTP et une enveloppe 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"
}
}
| Champ | Signification |
|---|---|
type |
Catégorie générale de l'erreur. Décidez de la marche à suivre à partir de cette valeur. |
code |
Motif exact, stable et lisible par une machine. Chaque code dispose d'une section ci-dessous ; doc_url y renvoie. |
message |
Explication lisible par un humain, que vous pouvez journaliser ou afficher à un développeur. |
param |
Paramètre d'entrée ou en-tête en cause, le cas échéant. |
details |
Pour les erreurs d'entrée, tous les problèmes détectés : [{ "param", "message" }]. |
request_id |
La requête concernée, lorsqu'elle existe. |
Aucun appel qui renvoie une erreur n'est facturé. Une requête qui échoue après avoir été acceptée conserve le statut
failed, contient error: { "type", "code", "message" } dans l'objet de requête et est automatiquement remboursée.
Types
| Type | Statut HTTP | Marche à suivre |
|---|---|---|
invalid_request |
400, 413 ou 422 | Corrigez la requête. Réessayer le même appel échouera à nouveau. |
authentication_error |
401 | Envoyez une clé valide dans Authorization: Bearer <key>. |
permission_error |
403 | Utilisez une clé avec la portée nécessaire. |
not_found |
404 | Vérifiez l'identifiant du modèle ou de la requête. |
insufficient_credits |
402 | Effectuez un rechargement du solde API (top_up_url dans l'erreur). |
budget_exceeded |
402 | Le budget propre à la clé est épuisé. En dernier recours, demandez à son propriétaire de l'augmenter. |
conflict |
409 | La ressource n'est pas dans un état permettant cet appel. |
rate_limited |
429 | Attendez Retry-After secondes, puis réessayez. |
upstream_error |
502 | Le backend du modèle a échoué. Vous pouvez réessayer avec la même Idempotency-Key : l'exécution recommencera ; vous n'avez pas été facturé. |
service_unavailable |
503 | L'API est en pause ou une dépendance est indisponible. Réessayez plus tard. |
internal_error |
500 | Un bug de notre côté. Réessayez ; si le problème persiste, contactez le support avec l'heure et le request_id. |
Codes
invalid_request
Requête mal formée générique (400).
invalid_json
Le corps n'est pas un JSON valide (400).
invalid_body
Le corps est un JSON valide, mais pas un objet ; l'entrée du modèle doit être un objet JSON (400).
body_too_large
Le corps dépasse 16 MB (413). Importez les fichiers volumineux et transmettez plutôt leur URL (voir Fichiers).
invalid_parameter
Un paramètre de requête possède une valeur incorrecte, par exemple limit en dehors de 1 à 100, wait qui n'est pas un nombre, un
status ou une category inconnus, ou storage différent de permanent / temporary (400). param indique lequel.
invalid_category
GET /openapi.json?category= désigne une catégorie inexistante (400). GET https://api.doitong.ru/v1/categories les liste.
invalid_cursor
Le cursor d'un appel de liste n'appartient pas à cette liste (400). Recommencez sans curseur.
invalid_idempotency_key
L'en-tête Idempotency-Key est vide ou comporte plus de 255 caractères (400).
invalid_arguments
Un appel d'outil MCP contient un argument manquant ou mal formé (MCP uniquement). param indique l'argument.
invalid_input
L'entrée du modèle ne passe pas la validation (422) : paramètre inconnu (le message suggère le nom valide le plus proche),
paramètre obligatoire manquant, type incorrect, valeur en dehors de la liste ou de la plage autorisée, ou nom canonique et nom
natif fournis avec des valeurs différentes. param est le premier paramètre en cause et details les liste tous.
Aucun frais n'est facturé.
unsupported_file
Un fichier possède un type que nous n'acceptons pas (422), par exemple une importation avec une extension non prise en charge, ou un content_type
qui ne correspond pas à l'extension.
invalid_webhook_url
webhook_url n'est pas une URL publique https:// (422). Les adresses privées, locales et simples adresses http:// sont refusées.
missing_api_key
Le point de terminaison nécessite une clé API, mais aucune n'a été envoyée (401).
invalid_api_key
La clé est inconnue, révoquée ou expirée (401).
insufficient_scope
La clé ne possède pas la portée nécessaire à cet appel (403), par exemple models:run pour une exécution, ou models:read pour lire
les requêtes et le solde. Voir Authentification.
account_disabled
Le compte est fermé ou suspendu (403). Ses clés ne fonctionnent plus.
not_found
Le chemin n'existe pas (404).
model_not_found
Aucun modèle public ne possède cet identifiant (404). Listez les modèles avec GET https://api.doitong.ru/v1/models.
request_not_found
Aucune requête avec cet identifiant n'existe dans votre compte (404). Les requêtes d'autres comptes ne sont jamais visibles.
insufficient_credits
Le solde API du compte (crédits API, 1 000 crédits API = 1 $ — et non les crédits des applications Doitong) ne couvre pas le
prix de cet appel (402). La réponse est envoyée avant tout prélèvement. L'erreur contient top_up_url ; ajoutez des fonds
à https://doitong.ru/developers/dashboard#balance, puis réessayez.
{ "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
L'appel dépasserait le budget propre à la clé API en crédits API (402). Le budget est défini par le propriétaire de la clé ; réessayer ne sert à rien tant qu'il ne l'a pas augmenté.
conflict
L'appel entre en conflit avec l'état actuel de la ressource (409).
idempotency_mismatch
L'Idempotency-Key a déjà été utilisée avec un corps différent (409). Utilisez une nouvelle clé pour une nouvelle opération.
idempotency_in_progress
Une requête avec la même Idempotency-Key est en cours de création (409). Réessayez dans un instant pour la récupérer.
request_active
La requête est encore queued ou running, elle ne contient donc pas encore de fichiers à supprimer (409). Supprimez-les une fois terminée.
not_cancelable
La requête est déjà succeeded ou failed et ne peut pas être annulée (409).
rate_limited
La clé a effectué trop de requêtes pendant la fenêtre actuelle (429). Consultez les en-têtes X-RateLimit-* et Retry-After.
too_many_inflight
Le compte possède déjà 10 requêtes queued ou running (429). Lancez la suivante lorsqu'une d'elles est terminée.
upstream_error
Le backend du modèle a refusé ou fait échouer la requête (502 lors de l'exécution, ou failed avec ce code sur la requête). Les crédits API sont
remboursés. Si le backend a lui-même rejeté l'entrée, l'appel renvoie 422 invalid_input avec son message.
upstream_lost
Le backend du modèle ne connaît plus la requête ; aucun résultat n'arrivera donc. Elle se termine par failed avec ce code
(type upstream_error) et est remboursée. Relancez-la.
timeout
La requête a dépassé sa limite (15 minutes pour les images, 60 pour la vidéo, 30 sinon) et a été arrêtée. Elle se termine par
failed avec ce code et est remboursée.
service_unavailable
L'API est temporairement en pause ou une dépendance, comme l'importation de fichiers, est indisponible (503). Réessayez plus tard.
internal_error
Un problème est survenu de notre côté (500). Réessayez ; si le problème persiste, contactez le support.
charge_failed
Le compte n'a pas pu être débité en raison d'un problème interne (500). La requête est marquée failed ; rien n'a été prélevé. Réessayez.
pricing_unavailable
Le prix du modèle n'est pas configuré ; il ne peut donc pas être chiffré ou exécuté pour le moment (500).