---
title: "Erreurs"
description: "Gérez les échecs de l'API AI Glot grâce à des codes d'erreur stables, des identifiants de requête."
canonical: "https://ai-glot.com/docs/fr/api/errors"
updated: "2026-08-12"
---

# Erreurs

Chaque échec d'API utilise une structure d'enveloppe unique. Basez vos conditions sur `error.code` et jamais sur le message lisible par l'humain.

```json title="Exemple d'erreur"
{
  "error": {
    "type": "permission_error",
    "code": "insufficient_scope",
    "message": "Ce jeton n'a pas le scope batches:write.",
    "docs_url": "https://ai-glot.com/docs/api/errors#insufficient_scope"
  },
  "request_id": "req_example"
}
```

## Codes de statut

| Statut  | Signification                                      | Action à entreprendre                          |
| ------- | -------------------------------------------------- | ---------------------------------------------- |
| 400     | Requête malformée ou champ inconnu                 | Corriger la requête                            |
| 401     | Identifiant manquant, invalide, expiré ou révoqué  | Remplacer ou renouveler l'identifiant          |
| 403     | Authentifié mais non autorisé                      | Accorder le scope ou la fonctionnalité requise |
| 404     | Ressource absente ou hors de cet espace de travail | Vérifier l'ID et l'espace de travail           |
| 409     | Conflit entre l'état actuel et la requête          | Lire la ressource, puis décider                |
| 413     | Corps de requête trop volumineux                   | Envoyer un corps plus petit                    |
| 422     | Valeur malformée ou invalide                       | Corriger la valeur indiquée                    |
| 429     | Limite de requêtes atteinte                        | Attendre la durée indiquée dans `Retry-After`  |
| 500/503 | Échec d'AI Glot ou indisponibilité temporaire      | Retenter avec un délai d'attente exponentiel   |

**Corriger avant de retenter**

La plupart des réponses 400, 401, 403, 404, 409, 413 et 422 nécessitent une modification de l'identifiant, de l'ID, de l'état ou de la requête.

**Retenter en toute sécurité**

Retentez les erreurs 429 après le délai `Retry-After` ; retentez les erreurs 500 et 503 avec un backoff exponentiel et un jitter aléatoire.

> **Note**
>
> Conservez le `request_id` dans vos logs et vos messages de support. Il permet d'identifier la requête côté serveur sans exposer votre clé API ou le contenu de vos CSV.

## Codes d'authentification et de permission

### authentication\_required

Aucun jeton Bearer n'a été envoyé. Ajoutez l'en-tête `Authorization`.

### invalid\_api\_key

La clé est malformée ou inconnue. Vérifiez que la valeur complète `aig_live_…` a bien été copiée.

### api\_key\_expired

La clé a atteint sa date d'expiration. Créez-en une nouvelle ou utilisez un remplaçant.

### api\_key\_revoked

Un administrateur a révoqué ou renouvelé cette clé. Mettez à jour l'intégration avec un identifiant actif.

### insufficient\_scope

L'identifiant est authentifié mais ne possède pas le scope requis pour cette opération.

### feature\_not\_available

Le forfait de l'espace de travail ou la version actuelle de la plateforme ne comprend pas la fonctionnalité demandée.

### admin\_required

Seul un administrateur de l'espace de travail peut effectuer cette opération.

## Codes de requête

### invalid\_request

La requête ne peut pas être analysée ou ne correspond pas au contrat de l'endpoint.

### unknown\_field

Une propriété du corps JSON n'est pas reconnue. Corrigez l'orthographe plutôt que de supprimer la validation. Les paramètres de _requête_ non reconnus ne produisent jamais cette erreur ; ils sont ignorés, donc un filtre mal orthographié renvoie un code `200` sans filtre.

### invalid\_parameter

Un paramètre a un type, une plage ou un format incorrect.

### invalid\_cursor

Le curseur de pagination est invalide. Réutilisez `next_cursor` exactement tel qu'il a été renvoyé.

### request\_too\_large

Le corps de la requête dépasse la limite stricte de l'endpoint.

## Codes de ressource et d'état

### batch\_not\_found

Aucune traduction visible ne possède cet ID. Les ressources appartenant à un autre espace de travail renvoient intentionnellement la même erreur.

### glossary\_not\_found

Aucun glossaire n'existe pour cette paire de langues.

### resource\_not\_found

La ressource ou la route demandée n'existe pas.

### glossary\_already\_exists

Un glossaire existe déjà pour cette paire de langues. Mettez-le à jour au lieu d'en créer un nouveau.

### result\_not\_ready

La traduction n'est pas terminée, le résultat ne peut donc pas encore être téléchargé.

### batch\_not\_editable

L'état actuel de la traduction ne permet pas la modification administrative demandée.

## Codes de langue et de glossaire

### language\_not\_supported

Le tag ne fait pas partie du catalogue supporté. Consultez [`GET /v1/languages`](/docs/api/languages/list).

### invalid\_language\_pair

L'identifiant de la paire de langues ne peut pas être divisé en deux tags BCP 47 supportés.

### glossary\_term\_limit\_reached

Le nombre de termes résultant dépasserait le quota du forfait de l'espace de travail. La mise à jour est atomique ; rien n'a été modifié.

### glossary\_limit\_reached

L'espace de travail a atteint le nombre maximal de glossaires autorisés pour le forfait actuel.

### invalid\_glossary\_terms

Une ou plusieurs entrées du glossaire sont vides, incomplètes ou invalides.

## Codes de service

### rate\_limited

L'identifiant a dépassé la limite de requêtes. Attendez le délai `Retry-After`, puis retentez avec un jitter.

### internal\_error

AI Glot a rencontré une erreur inattendue. Retentez avec un backoff et conservez le `request_id`.

### service\_unavailable

Un service requis est temporairement indisponible. Retentez avec un backoff.
