Kurze Antwort
Welche Fehler kann die LLMwithCrypto API zurückgeben, und werden sie berechnet?
Die API beantwortet Fehler mit einem HTTP-Status und einem Body im OpenAI-Stil: {"error": {"message", "type", "param", "code"}}. LLMwithCrypto verwendet 400 für eine fehlerhafte Anfrage, 401 für einen falschen Schlüssel, 402, wenn das Guthaben nicht zahlen kann, 404 für ein unbekanntes Modell, 429 für das rate limit und 500 oder 503 auf unserer Seite. Ein Aufruf, der mit einem Fehler endet, kostet nichts, wie am 23. Oktober 2026 dokumentiert.
Welche Fehler gibt es?
Kein Fehler verbraucht Guthaben. code ist der stabile Wert, den Sie in Ihrem Code prüfen; message ist für Menschen gedacht und kann sich ändern.
| HTTP | code | Ursache | Retry? |
|---|---|---|---|
| 400 | invalid_parameter | Ein erforderliches Feld fehlt, oder ein Wert liegt außerhalb des gültigen Bereichs oder hat den falschen Typ | Nein: Anfrage korrigieren |
| 400 | context_length_exceeded | Die Messages zusammen mit max_tokens passen nicht in das Kontextfenster des Modells | Nein: Eingabe kürzen oder max_tokens senken |
| 400 | unsupported_parameter | Ein Feld, das dieses Modell nicht unterstützt, etwa response_format bei einem Modell ohne JSON-Modus | Nein: entfernen oder Modell wechseln |
| 401 | invalid_api_key | Der Schlüssel fehlt, ist falsch geschrieben oder wurde widerrufen | Nein: Prüfen Sie den Schlüssel |
| 402 | insufficient_balance | Das verbleibende Guthaben reicht für diesen Aufruf nicht aus | Nein: Kaufen Sie ein Credit-Paket |
| 404 | model_not_found | Die model-ID steht nicht auf unserer Liste | Nein: Verwenden Sie eine ID aus GET /api/v1/models |
| 429 | rate_limit_exceeded | Mehr Anfragen oder Tokens pro Minute, als das Konto erlaubt | Ja, nach einer Pause |
| 500 | server_error | Auf unserer Seite ist etwas fehlgeschlagen | Ja, mit Backoff |
| 503 | model_overloaded | Das Modell ist vorübergehend ausgelastet | Ja, mit Backoff oder versuchen Sie ein anderes Modell |
{
"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"
}
}
Warum bekomme ich 404 für gpt-4o oder claude?
Weil diese Modelle hier nicht verkauft werden. Wir verkaufen keinen Zugang zu GPT, Claude, Gemini oder Grok: Deren Hersteller verbieten den Weiterverkauf von API-Zugang ohne ihre Zustimmung, und wir haben sie nicht. Code, der für die OpenAI API geschrieben wurde, nennt ein Modell oft an mehreren Stellen; suchen Sie in Ihrem Projekt nach dem alten Namen und ersetzen Sie ihn durch eine ID von der Modelle-Seite, etwa deepseek-v4-pro oder gpt-oss-120b.
Wann sollte mein Code einen Retry durchführen?
Wiederholen Sie 429, 500 und 503 sowie Netzwerkfehler wie einen Timeout oder eine zurückgesetzte Verbindung. Wiederholen Sie niemals 400, 401, 402 oder 404: Dieselbe Anfrage wird auf dieselbe Weise fehlschlagen.
Warten Sie vor jedem neuen Versuch. Wenn die Antwort einen Retry-After-Header hat, warten Sie so viele Sekunden; andernfalls verdoppeln Sie die Pause jedes Mal (1, 2, 4, 8 Sekunden…) und fügen etwas Zufallszeit hinzu, damit viele Worker nicht im Gleichschritt erneut versuchen. Geben Sie nach einigen Versuchen auf und protokollieren Sie den Fehler. Die OpenAI SDKs führen bereits von sich aus Retries durch; das folgende Beispiel deaktiviert das, um die Logik vollständig zu zeigen.
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)
Was soll ich bei 402 insufficient_balance tun?
Guthaben aufladen. Der Aufruf wurde nicht berechnet, und sonst ändert sich nichts am Konto: Ihre Schlüssel funktionieren wieder, sobald Guthaben vorhanden ist. Sobald Ihre Krypto-Aufladung bestätigt und ein Credit-Pack gekauft ist, wartet Ihr API-Schlüssel im Dashboard.
Um Überraschungen im Produktivbetrieb zu vermeiden, lesen Sie GET https://llmwithcrypto.com/api/v1/credits von Zeit zu Zeit und lassen Sie sich unterhalb einer Grenze Ihrer Wahl benachrichtigen; die Modelle- und Credits-Seite zeigt den Aufruf. Credits verfallen nicht: Was Sie diesen Monat nicht ausgeben, ist nächstes Jahr noch da, ein früh gekauftes größeres Paket kostet also nichts extra.
Wie bleibe ich unter dem Rate Limit?
Jedes Konto hat ein Anfrage- und Token-Limit pro Minute, das im Dashboard angezeigt wird; fragen Sie den Support, dann kann es erhöht werden.
- Begrenzen Sie die Parallelität. Führen Sie eine feste Anzahl von Anfragen parallel aus, statt einen ganzen Batch auf einmal abzuschicken.
- Begrenzen Sie die Ausgabe. Token-Limits zählen auch, was das Modell schreibt, daher hält ein sinnvoller
max_tokensmehr Anfragen innerhalb des Limits. - Verteilen Sie Batches. Bei großen Offline-Jobs verteilen Sie die Anfragen gleichmäßig über die Minute, statt sie in Schüben zu senden.
Errors: häufige Fragen
Wird mir ein fehlgeschlagener Aufruf berechnet?
Nein. Sie zahlen pro Token aus Ihrem Guthaben: Input- und Output-Tokens werden mit dem eigenen Tokenizer des Modells gezählt und zum Preis des Modells pro 1M Tokens berechnet. Ein Aufruf, der mit einem Fehler endet, kostet nichts.
Wo sehe ich, ob es eine Störung gibt?
Auf der Status-Seite. Eine Serie von 500- oder 503-Fehlern bei mehreren Modellen deutet in der Regel auf einen Vorfall auf unserer Seite hin; schreiben Sie an [email protected], wenn er andauert.
Kann ich die fehlgeschlagene Anfrage sehen?
Nicht auf unserer Seite. Wir speichern Ihre Prompts und die Antworten der Modelle nicht: Sobald eine Antwort gesendet ist, ist ihr Text weg. Jeder Aufruf hinterlässt eine Logzeile mit Zeit, Konto, Modell und Token-Anzahl, die nach 30 Tagen gelöscht wird. Protokollieren Sie den Fehler code und Ihre eigene Request-ID in Ihrer App.