Pour les développeurs
Erreurs de l'API
Chaque erreur répond en JSON avec un code dans detail, par exemple {"detail": "auth.unauthorized"}. Quelques codes ajoutent des champs à côté.
| Statut | Code | Signification | Renvoyé aussi |
|---|---|---|---|
| 400 | assess.unsupportedLanguage | language (ou source_language ou target_language) n'est pas l'un des codes de langue de l'API, écrit exactement. | — |
| 400 | request.bodyNotJson | Le corps JSON n'a pas pu être lu comme du JSON. | — |
| 400 | request.unknownAudioFormat | audio_format n'est ni mp3 ni wav. | — |
| 400 | assess.noAudio | Le fichier audio est vide. | — |
| 400 | assessment.audioUnreadable | Le fichier envoyé n'est pas un audio que Spelly sait lire. | — |
| 401 | auth.unauthorized | L'en-tête X-API-Key manque, est faux ou révoqué. | — |
| 401 | widget.keyInvalid | La clé de widget est inconnue ou révoquée. | — |
| 402 | operator.trialExhausted | Tes unités sont épuisées. | remaining et requested (unités), upgrade_url (null tant qu'aucune offre n'est vendue) |
| 403 | auth.endpointNotAllowed | Ta clé ne peut pas appeler cette route ; celles qu'elle peut appeler sont sous Tous les endpoints. | — |
| 403 | operator.inactive | Le compte auquel appartient la clé est en pause ou supprimé. | — |
| 404 | request.notFound | Cette route n'existe pas. | — |
| 405 | request.methodNotAllowed | La route existe, mais pas avec cette méthode. | — |
| 413 | assess.recordingTooLong | L'enregistrement dépasse la taille maximale. | — |
| 413 | request.tooLarge | Le corps de la requête est trop gros. | — |
| 422 | assessment.nothingHeard | L'enregistrement ne contient pas de voix : il est silencieux, ou le micro n'a rien capté. Rien n'est facturé. | — |
| 422 | request.invalid | Un champ manque, n'est pas accepté par l'appel ou a une valeur qu'il n'accepte pas ; ou le corps n'est pas un objet JSON. | errors : un {"field", "problem"} par champ erroné, avec un value pour certains problèmes ; problem est un type comme missing, extra_forbidden (un champ que l'appel n'accepte pas), string_too_long, no_letters (un texte sans lettres à lire), dict_type (le corps n'est pas un objet JSON), unknown_sound ou literal_error |
| 429 | request.tooManyRequests | Trop de requêtes : depuis ton adresse (voir Limites de débit), ou au-delà de la limite par minute propre à ta clé quand elle en a une. | En-tête Retry-After : secondes à attendre |
| 500 | server.failed | Quelque chose a échoué du côté de Spelly. | — |
| 503 | service.busy | Spelly est chargé : des requêtes attendent leur tour. | En-tête Retry-After : secondes à attendre |
| 503 | service.unavailable | Le service d’évaluation et de voix de Spelly ne répond pas pour le moment. Le statut de Spelly indique s’il est en panne. | En-tête Retry-After : secondes à attendre |
| 503 | service.maintenance | Spelly est en cours de mise à jour, en général pendant une ou deux minutes. Chaque appel est refusé jusqu’à son retour, donc rien ne reste à moitié fait. Le statut de Spelly l’indique aussi. | En-tête Retry-After : secondes à attendre |