Docs/Erreurs

Erreurs

Chaque erreur renvoie un corps JSON accompagné d'un code de statut HTTP.

Format des erreurs

Chaque réponse d'erreur utilise le même corps JSON, quel que soit le point de terminaison :

json
{
  "statusCode": 400,
  "error": "ValidationError",
  "message": "channel is required",
  "code": "optional_code",
  "field": "channel"
}
  • statusCodeLe code de statut HTTP, répété dans le corps.
  • errorLe nom de la classe d'erreur — utilisez-le pour distinguer les types d'erreur dans votre code.
  • messageUne description lisible de ce qui s'est mal passé.
  • code Un code stable et exploitable par une machine, présent seulement quand l'erreur en définit un (par ex. plan_limit).
  • fieldLe champ de la requête en cause, présent seulement pour les erreurs de validation au niveau d'un champ.

Les erreurs serveur inattendues (500) ne divulguent jamais de détails internes — le message est toujours masqué :

json
{
  "statusCode": 500,
  "error": "InternalServerError",
  "message": "Something went wrong"
}

Codes de statut

Le champ error correspond à l'une des classes suivantes :

StatutErreurSignification
400ValidationErrorLa requête a échoué à la validation — vérifiez message et field.
401UnauthorizedErrorIdentifiants manquants ou invalides.
402PaymentRequiredErrorUne limite du forfait a été atteinte ; code vaut plan_limit. Mettez le forfait à niveau pour continuer.
403ForbiddenErrorAuthentifié, mais non autorisé à effectuer cette action.
404NotFoundErrorLa ressource demandée n'existe pas.
409ConflictErrorLa requête entre en conflit avec l'état actuel de la ressource.
429ErrorTrop de requêtes — voir Limites de débit ci-dessous.
500InternalServerErrorUne erreur serveur inattendue. Le message est masqué ; consultez les journaux du serveur pour plus de détails.

Limites de débit

L'API autorise 100 requêtes par minute au global, avec des limites plus strictes sur certains points de terminaison. Quand une requête est limitée, l'API renvoie 429.

Une réponse limitée en débit utilise la classe générique Error plutôt qu'un type d'erreur spécifique — son message indique combien de temps attendre avant de réessayer :

json
{
  "statusCode": 429,
  "error": "Error",
  "message": "Rate limit exceeded, retry in 1 minute"
}
Patientez avant de réessayer
Ne réessayez pas un 429 immédiatement. Patientez, puis réessayez avec un backoff exponentiel et du jitter.
Erreurs