Nous utilisons des cookies. Les cookies et le stockage du navigateur vous gardent connecté et mémorisent vos préférences. Avec votre accord, nous mesurons aussi l’utilisation du site. Vous pouvez à tout moment. Consultez notre politique relative aux cookies.

Erreurs

Compte

Erreurs

Tous les codes d'erreur renvoyés par la passerelle api14, au format d'erreur d'OpenAI, avec leur signification et la marche à suivre pour chacun.

Les erreurs suivent le format d'erreur d'OpenAI : les SDK officiels les convertissent donc en leurs exceptions habituelles (APIError, RateLimitError, AuthenticationError, etc.). Basez votre logique sur code ; message est une explication lisible en anglais.

{
  "error": {
    "message": "This request may cost up to $0.0123 but your balance is $0.0040. Add funds at /pricing.",
    "type": "insufficient_quota",
    "code": "insufficient_balance"
  }
}

Les requêtes en échec ne sont pas facturées. Toute réponse avec un statut 4xx ou 5xx ne coûte rien.

Codes d'erreur de la passerelle

StatutcodetypeSignification
400model_requiredinvalid_request_errorLe champ model est absent.
400invalid_jsoninvalid_request_errorLe corps n'est pas un objet JSON.
400invalid_bodyinvalid_request_errorLe corps multipart n'a pas pu être lu.
400max_tokens_too_largeinvalid_request_errorUne requête d'essai du playground a demandé trop de tokens de sortie.
401invalid_api_keyauthentication_errorLa clé est absente, mal formée ou révoquée.
402insufficient_balanceinsufficient_quotaVotre solde en USD est de $0 ou inférieur au coût maximal estimé de la requête (entrée, plafond de sortie, images ou durée de la vidéo). La requête n’est pas envoyée.
403model_not_allowedpermission_errorLa liste de modèles autorisés de la clé n'inclut pas ce modèle.
403plan_requiredpermission_errorVotre forfait n'inclut pas cette catégorie de modèles.
404model_not_foundnot_found_errorL'id du modèle est inconnu, désactivé ou supprimé.
404not_foundnot_found_errorEndpoint inconnu, ou tâche vidéo ou génération qui ne vous appartient pas.
413payload_too_largeinvalid_request_errorLe corps de la requête dépasse la taille maximale (25 MB par défaut).
429rate_limitedrate_limit_errorNombre de requêtes par minute dépassé. Accompagné de Retry-After: 60.
429daily_limit_reachedrate_limit_errorLa clé a atteint sa limite de dépenses quotidiennes en USD.
409idempotency_conflictapi_errorUne requête avec cette Idempotency-Key a déjà été envoyée. Utilisez une nouvelle clé pour une autre requête. Limites de débit.
403site_not_allowedpermission_errorWidgets uniquement: le site de la page ne fait pas partie de vos sites de widget autorisés. Widgets.
429widget_daily_limitrate_limit_errorWidgets uniquement: le widget, ou l’ensemble des widgets, a atteint la limite de dépense quotidienne en USD.
429visitor_daily_limitrate_limit_errorWidgets uniquement: ce visiteur a atteint la limite quotidienne de requêtes définie dans les contrôles des widgets.
502upstream_unavailableapi_errorLe fournisseur en amont est injoignable.
4xx/502content_unavailablevariableLe contenu d'une vidéo n'a pas encore pu être récupéré (le statut reflète celui du fournisseur en amont, 502 à défaut).
503maintenanceservice_unavailableMode maintenance : les endpoints de génération sont suspendus, les endpoints GET fonctionnent toujours.
503not_configuredservice_unavailableLa passerelle n'est pas encore configurée.

Erreurs du fournisseur en amont

Les erreurs renvoyées par le fournisseur en amont (par exemple un paramètre invalide pour un modèle donné, un dépassement de la longueur de contexte, un refus lié à la politique de contenu ou un 429 du fournisseur lui-même) sont transmises avec leur code de statut d'origine et le même format { error: { ... } }.

Que faire

StatutRéessayer ?Action
400NonCorrigez le corps de la requête.
401NonVérifiez la clé et l'en-tête Authorization: Bearer. Voir Authentification.
402NonAjoutez des fonds ou activez la recharge automatique.
403NonUtilisez un modèle autorisé, modifiez la liste de modèles autorisés de la clé ou passez à un forfait supérieur.
404NonVérifiez l'id du modèle sur la page des modèles.
413NonEnvoyez un corps plus léger, ou transmettez les fichiers par URL plutôt qu'en base64.
429Plus tardrate_limited : attendez la durée indiquée par Retry-After. daily_limit_reached : attendez le jour UTC suivant ou augmentez la limite de la clé. Voir Limites de débit.
502OuiRéessayez avec un backoff, ou ajoutez des modèles de repli.
503OuiRéessayez plus tard.

Gérer les erreurs dans le code

import OpenAI from 'openai'

const client = new OpenAI({ baseURL: 'https://api14.com/api/v1', apiKey: process.env.API14_API_KEY })

try {
  await client.chat.completions.create({ model: 'openai/gpt-5-mini', messages: [{ role: 'user', content: 'Hi' }] })
} catch (err) {
  if (err instanceof OpenAI.APIError) {
    console.error(err.status, err.code, err.message)
    if (err.code === 'insufficient_balance') {
      // prompt the user to add funds
    }
  } else {
    throw err
  }
}
from openai import OpenAI, APIStatusError

client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...")

try:
    client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
except APIStatusError as e:
    print(e.status_code, e.code, e.message)

Les erreurs qui surviennent après le début d'un flux arrivent à l'intérieur du flux. Voir Streaming.