Sans KYC — pas de pièce d'identité, pas de selfie, pas de documents. Payez en crypto : BTC, USDT, USDC, ETH, SOL, LTC
Langue: Français
Obtenir une clé API

Docs · erreurs

Erreurs, rate limits et retries

Les erreurs reviennent au format OpenAI, donc les SDK les lèvent comme des exceptions habituelles. Cette page liste chaque statut et chaque code, indique lesquels valent un retry, et montre une boucle de retry qui respecte le rate limit.

Dernière mise à jour: · 5 min de lecture

Réponse rapide

Quelles erreurs l'API LLMwithCrypto peut-elle renvoyer, et sont-elles facturées ?

L'API répond aux erreurs avec un statut HTTP et un corps au style OpenAI : {"error": {"message", "type", "param", "code"}}. LLMwithCrypto utilise 400 pour une requête invalide, 401 pour une mauvaise clé, 402 quand le crédit ne peut pas payer, 404 pour un modèle inconnu, 429 pour le rate limit et 500 ou 503 de notre côté. Un appel qui se termine par une erreur ne coûte rien, comme documenté le 23 octobre 2026.

Quelles erreurs existent ?

Aucune erreur n'utilise de crédit. code est la valeur stable à tester dans votre code ; message est destiné aux humains et peut changer.

HTTPcodeCauseRetry ?
400invalid_parameterUn champ requis est manquant, ou une valeur est hors plage ou du mauvais typeNon : corriger la requête
400context_length_exceededLes messages plus max_tokens ne tiennent pas dans la fenêtre de contexte du modèleNon : raccourcir l'entrée ou baisser max_tokens
400unsupported_parameterUn champ que ce modèle ne prend pas en charge, comme response_format sur un modèle sans mode JSONNon : le retirer ou changer de modèle
401invalid_api_keyLa clé est absente, mal saisie ou révoquéeNon : vérifiez la clé
402insufficient_balanceLe solde restant ne suffit pas pour cet appelNon : achetez un pack de crédits
404model_not_foundL'id model n'est pas dans notre listeNon : utilisez un id de GET /api/v1/models
429rate_limit_exceededPlus de requêtes ou de tokens par minute que ce que le compte autoriseOui, après une pause
500server_errorQuelque chose a échoué de notre côtéOui, avec backoff
503model_overloadedLe modèle est momentanément à pleine capacitéOui, avec backoff, ou essayez un autre modèle
Corps de l'erreur : un modèle inconnu
{
  "error": {
    "message": "The model `gpt-4o` does not exist or is not available to your key.",
    "type": "invalid_request_error",
    "param": "model",
    "code": "model_not_found"
  }
}

Pourquoi j'obtiens 404 pour gpt-4o ou claude ?

Parce que ces modèles ne sont pas vendus ici. Nous ne vendons pas d'accès à GPT, Claude, Gemini ou Grok : leurs éditeurs interdisent la revente d'accès API sans leur autorisation, et nous ne l'avons pas. Le code écrit pour l'API OpenAI nomme souvent un modèle à plusieurs endroits ; cherchez l'ancien nom dans votre projet et remplacez-le par un id de la page des modèles, comme deepseek-v4-pro ou gpt-oss-120b.

Quand mon code doit-il réessayer ?

Réessayez sur 429, 500 et 503, ainsi que sur les erreurs réseau comme un timeout ou une connexion réinitialisée. Ne réessayez jamais sur 400, 401, 402 ou 404 : la même requête échouera de la même façon.

Attendez avant chaque nouvelle tentative. Quand la réponse contient un header Retry-After, attendez ce nombre de secondes ; sinon, doublez la pause à chaque fois (1, 2, 4, 8 secondes…) et ajoutez un peu de temps aléatoire, pour que de nombreux workers ne réessaient pas en cadence. Abandonnez après quelques tentatives et journalisez l'erreur. Les SDK OpenAI réessaient déjà d'eux-mêmes ; l'exemple ci-dessous désactive ce comportement pour montrer toute la logique.

Python : réessayer sur 429, 500 et 503 avec backoff exponentiel
import os
import random
import time

from openai import APIConnectionError, APIStatusError, OpenAI

client = OpenAI(
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
    max_retries=0,
)
RETRY = {429, 500, 503}


def chat(messages, model="deepseek-v4-pro", attempts=5):
    for attempt in range(attempts):
        try:
            return client.chat.completions.create(model=model, messages=messages, max_tokens=500)
        except APIStatusError as err:
            if err.status_code not in RETRY or attempt == attempts - 1:
                raise
            wait = err.response.headers.get("retry-after")
            delay = float(wait) if wait else min(30, 2**attempt) + random.random()
        except APIConnectionError:
            if attempt == attempts - 1:
                raise
            delay = min(30, 2**attempt) + random.random()
        time.sleep(delay)

Que faire en cas de 402 insufficient_balance ?

Rechargez. L'appel n'a pas été facturé et rien d'autre sur le compte ne change : vos clés fonctionnent de nouveau dès qu'il y a des crédits. Une fois votre recharge crypto confirmée et un pack de crédits acheté, votre clé API vous attend dans le dashboard.

Pour éviter les surprises en production, lisez GET https://llmwithcrypto.com/api/v1/credits de temps en temps et alertez-vous sous un seuil de votre choix ; la page des modèles et crédits affiche l'appel. Les crédits n'ont pas de date d'expiration : ce que vous ne dépensez pas ce mois-ci est toujours là l'année prochaine, donc un pack plus grand acheté à l'avance ne coûte rien de plus.

Comment rester sous le rate limit ?

Chaque compte a une limite de requêtes et de tokens par minute, affichée dans le dashboard ; demandez au support, elle peut être augmentée.

  • Limitez la concurrence. Lancez un nombre fixe de requêtes en parallèle plutôt que d'envoyer tout un lot d'un coup.
  • Limitez la sortie. Les limites de tokens comptent aussi ce que le modèle écrit, donc un max_tokens raisonnable garde plus de requêtes sous la limite.
  • Étalez les lots. Pour les gros travaux hors ligne, répartissez les requêtes sur la minute au lieu de les envoyer par rafales.

Erreurs : questions fréquentes

Suis-je facturé pour un appel échoué ?

Non. Vous payez au token depuis votre solde : les tokens d'entrée et de sortie sont comptés par le tokenizer du modèle lui-même et facturés au prix de ce modèle par 1M de tokens. Un appel qui se termine par une erreur ne coûte rien.

Où puis-je voir s'il y a une panne ?

Sur la page de statut. Une série d'erreurs 500 ou 503 sur plusieurs modèles signifie généralement un incident de notre côté ; écrivez à [email protected] si cela dure.

Puis-je voir la requête qui a échoué ?

Pas de notre côté. Nous ne stockons ni vos prompts ni les réponses du modèle : une fois une réponse envoyée, son texte a disparu. Chaque appel laisse une ligne de log avec l'heure, le compte, le modèle et le nombre de tokens, supprimée après 30 jours. Journalisez l'erreur code et votre propre id de requête dans votre app.

DeepSeek V4 Pro à partir de 1,254 $ par 1M de tokens d'entrée · sans KYC

Obtenir une clé API