Codes d'erreur
L'API GenesisAI utilise des codes HTTP standards et retourne des messages d'erreur détaillés pour vous aider à diagnostiquer les problèmes.
Format des erreurs
Toutes les erreurs suivent un format JSON cohérent :
Structure d'erreur
400{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Description lisible de l'erreur",
"details": {
// Informations supplémentaires (optionnel)
}
},
"request_id": "req_abc123xyz"
}Request ID
Conservez le request_id pour tout contact avec le support. Il nous permet de tracer rapidement votre requête.
Catégories
Erreurs client
Problèmes avec la requête envoyée
Erreurs serveur
Problèmes de notre côté
Référence complète
MISSING_API_KEY401Aucune clé API fournieLe header Authorization est absent de la requête.
INVALID_API_KEY401Clé API invalideLa clé fournie n'existe pas ou a été révoquée.
EXPIRED_API_KEY401Clé API expiréeLa clé a dépassé sa date d'expiration.
INVALID_REQUEST400Requête invalideLa requête est malformée ou contient des paramètres invalides.
MISSING_PARAMETER400Paramètre manquantUn paramètre requis est absent.
INVALID_PARAMETER400Paramètre invalideUn paramètre a une valeur non autorisée.
FILE_TOO_LARGE413Fichier trop volumineuxLe fichier dépasse la limite de taille.
UNSUPPORTED_FORMAT415Format non supportéLe format du fichier n'est pas pris en charge.
CORRUPTED_FILE422Fichier corrompuLe fichier est endommagé ou illisible.
INSUFFICIENT_CREDITS402Crédits insuffisantsVotre solde de crédits est insuffisant.
RATE_LIMIT_EXCEEDED429Limite de requêtes dépasséeTrop de requêtes envoyées en peu de temps.
INTERNAL_ERROR500Erreur interneUne erreur inattendue s'est produite.
SERVICE_UNAVAILABLE503Service indisponibleLe service est temporairement indisponible.
PROCESSING_TIMEOUT504Timeout de traitementLe traitement a pris trop de temps.
Gérer les erreurs
Bonnes pratiques
- Toujours vérifier le champ
success - Implémenter des retries avec backoff exponentiel pour les 5xx
- Logger les
request_idpour le debugging - Ne pas retry les erreurs 4xx (sauf 429)
JavaScript
async function callAPI(endpoint, data) {
try {
const response = await fetch(endpoint, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
const result = await response.json();
if (!result.success) {
// Gérer l'erreur
console.error(`Error: ${result.error.code}`);
throw new Error(result.error.message);
}
return result.data;
} catch (error) {
// Gérer les erreurs réseau
console.error('Network error:', error);
throw error;
}
}Python
import requests
from time import sleep
def call_api(endpoint, data, max_retries=3):
for attempt in range(max_retries):
try:
response = requests.post(
endpoint,
headers={"Authorization": f"Bearer {API_KEY}"},
json=data
)
result = response.json()
if not result.get("success"):
error = result.get("error", {})
code = error.get("code")
# Ne pas retry les erreurs client
if response.status_code < 500:
raise Exception(error.get("message"))
return result.get("data")
except requests.RequestException as e:
if attempt < max_retries - 1:
sleep(2 ** attempt) # Backoff
else:
raise e