MenuLimites et codes d’erreur

Limites et codes d’erreur

L’API utilise les codes de statut HTTP standard. Le corps d’erreur suit le format du client que vous utilisez, si bien que les SDK OpenAI et Anthropic peuvent le lire tel quel.

Format des erreurs

Les endpoints au format OpenAI renvoient un objet error contenant message, type et code. Les endpoints au format Anthropic renvoient "type": "error" avec un objet error contenant type et message. Les erreurs survenant en cours de stream sont envoyées sous forme d’événement de même structure.

{
  "error": {
    "message": "GeraiPoints tidak cukup, silakan top up",
    "type": "insufficient_quota",
    "code": "insufficient_quota"
  }
}
Le contenu de message est rédigé en indonésien et peut changer. Pour la logique de votre programme, vérifiez le code de statut HTTP et type/code, pas le texte du message.

Codes de statut

Statuttype / codeSignificationQue faire
400invalid_request_errorRequête invalide : le corps n’est pas du JSON, model est vide, ou messages est absent ou vide. Apparaît aussi si l’URL de base est erronée et que le chemin devient /v1/v1/….Vérifiez le corps et l’URL de base.
401authentication_errorClé API absente, erronée ou révoquée — ou clé utilisée sur la mauvaise voie (clé bansos sur un endpoint payant, et inversement).Vérifiez la clé et l’URL de base — Authentification.
402insufficient_quotaGeraiPoints insuffisants pour cette requête.Rechargez des GeraiPoints puis renvoyez la requête.
403permission_errorLe modèle n’est pas dans l’allowlist de cette clé, ou c’est un modèle réservé à une offre que vous n’avez pas encore.Ajoutez le modèle à l’allowlist de la clé, ou utilisez une autre clé.
404model_not_foundId de modèle inconnu ou momentanément fermé. Les noms avec préfixe comme gp/… ou openai/… renvoient aussi 404.Copiez l’id exact depuis la liste des modèles.
413—Le corps de la requête est trop volumineux pour être accepté par le serveur.Résumez l’historique de la conversation ou réduisez les pièces jointes.
429rate_limit_errorTrop de requêtes : la capacité du modèle est saturée, ou la limite de l’offre Unlimited/Bansos est dépassée.Attendez le délai indiqué par Retry-After (s’il est présent), puis réessayez en espaçant les tentatives.
502api_errorLe service du modèle est surchargé ou rencontre un problème ; la requête n’est pas facturée.Réessayez après quelques secondes, ou utilisez un autre modèle.
503api_errorLe modèle est en maintenance ou temporairement indisponible ; la requête n’est pas facturée.Réessayez plus tard ou utilisez un autre modèle.

Limites d’utilisation

TypeLimite
Clé payante (gk-)Pas de limite de débit fixe par clé ; l’utilisation est limitée par le solde de GeraiPoints. Le 429 n’apparaît que lorsque la capacité du modèle est saturée.
Offre UnlimitedLimite de requêtes par minute et de requêtes simultanées par compte. Les réponses 429 incluent Retry-After et x-ratelimit-*. Détails sur la page Unlimited.
Offre gratuite (Bansos)Quota de requêtes par jour et limite par minute. Les réponses 429 incluent Retry-After et x-ratelimit-*. Quota restant sur la page Bansos.
Taille et réponseUn corps trop volumineux est refusé avec 413. La longueur de la réponse (max_tokens) peut être réduite automatiquement si le solde ne suffit pas pour la valeur demandée.
Clé APIMaximum 20 clés actives par compte ; allowlist de 64 modèles maximum par clé.
Clés clientsLes limites s’appliquent avant le traitement : une requête qui dépasserait la limite restante est refusée. Limite unique épuisée → 402 KEY_BATAS_HABIS (augmente la limite pour ajouter du quota) ; limite quotidienne/mensuelle atteinte → 429 KEY_BATAS_HARIAN / KEY_BATAS_BULANAN avec Retry-After. Clé en pause → 403 KEY_DIJEDA. Les modèles -unli et bansos ne sont pas utilisables avec les clés clients.

Réessayer correctement

  • Ne réessayez que pour 429, 502 et 503, avec des délais croissants (par ex. 1, 2, 4, 8 secondes) et 2 à 3 tentatives au maximum.
  • Ne réessayez pas 400, 401, 402, 403, 404 — corrigez d’abord la requête ; sinon le résultat sera le même.
  • Respectez l’en-tête Retry-After s’il est présent.
  • Chaque nouvelle tentative est une nouvelle requête facturée. Si la cause est un timeout de votre application, augmentez-le — voir Réglages des outils agentiques.