Konto
Fehler
Alle Fehlercodes des api14-Gateways im OpenAI-Fehlerformat, mit HTTP-Status, Bedeutung und Hinweisen, wie Sie jeden Fehler behandeln oder beheben.
Fehler verwenden das OpenAI-Fehlerformat, sodass die offiziellen SDKs sie in ihre üblichen Exceptions umwandeln (APIError, RateLimitError, AuthenticationError usw.). Verzweigen Sie anhand von code; message ist eine für Menschen lesbare Erklärung auf Englisch.
{
"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"
}
}
Fehlgeschlagene Requests werden nicht berechnet. Jede Antwort mit einem 4xx- oder 5xx-Status ist kostenlos.
Fehlercodes des Gateways
| Status | code | type | Bedeutung |
|---|---|---|---|
| 400 | model_required | invalid_request_error | Das Feld model fehlt. |
| 400 | invalid_json | invalid_request_error | Der Body ist kein JSON-Objekt. |
| 400 | invalid_body | invalid_request_error | Der Multipart-Body konnte nicht gelesen werden. |
| 400 | max_tokens_too_large | invalid_request_error | Ein Testrequest im Playground hat zu viele Ausgabe-Tokens angefordert. |
| 401 | invalid_api_key | authentication_error | Der Schlüssel fehlt, ist fehlerhaft oder widerrufen. |
| 402 | insufficient_balance | insufficient_quota | Ihr USD-Guthaben beträgt $0 oder liegt unter den geschätzten Höchstkosten der Anfrage (Eingabe, Ausgabelimit, Bilder oder Videodauer). Die Anfrage wird nicht gesendet. |
| 403 | model_not_allowed | permission_error | Die Modell-Allowlist des Schlüssels enthält dieses Modell nicht. |
| 403 | plan_required | permission_error | Ihr Plan umfasst diese Modellkategorie nicht. |
| 404 | model_not_found | not_found_error | Die Modell-ID ist unbekannt, deaktiviert oder entfernt. |
| 404 | not_found | not_found_error | Unbekannter Endpunkt oder ein Video-Job bzw. eine Generation, die nicht Ihnen gehört. |
| 413 | payload_too_large | invalid_request_error | Der Request-Body überschreitet die Größenbeschränkung (standardmäßig 25 MB). |
| 429 | rate_limited | rate_limit_error | Requests pro Minute überschritten. Wird mit Retry-After: 60 geliefert. |
| 429 | daily_limit_reached | rate_limit_error | Der Schlüssel hat sein tägliches USD-Ausgabelimit erreicht. |
| 409 | idempotency_conflict | api_error | Eine Anfrage mit diesem Idempotency-Key wurde bereits gesendet. Verwenden Sie für eine neue Anfrage einen neuen Schlüssel. Rate-Limits. |
| 403 | site_not_allowed | permission_error | Nur Widgets: die Website der Seite gehört nicht zu Ihren erlaubten Widget-Websites. Widgets. |
| 429 | widget_daily_limit | rate_limit_error | Nur Widgets: das Widget oder alle Widgets zusammen haben das tägliche USD-Ausgabenlimit erreicht. |
| 429 | visitor_daily_limit | rate_limit_error | Nur Widgets: dieser Besucher hat das in der Widget-Steuerung festgelegte tägliche Anfragelimit erreicht. |
| 502 | upstream_unavailable | api_error | Der Upstream-Anbieter war nicht erreichbar. |
| 4xx/502 | content_unavailable | unterschiedlich | Der Inhalt eines Videos konnte noch nicht abgerufen werden (Status spiegelt den Upstream, 502, wenn keiner vorliegt). |
| 503 | maintenance | service_unavailable | Wartungsmodus, Generierungs-Endpunkte sind pausiert, GET-Endpunkte funktionieren weiterhin. |
| 503 | not_configured | service_unavailable | Das Gateway ist noch nicht konfiguriert. |
Upstream-Fehler
Fehler des Upstream-Anbieters, zum Beispiel ein für ein bestimmtes Modell ungültiger Parameter, eine Überschreitung der Kontextlänge, eine Ablehnung aufgrund von Content-Richtlinien oder ein eigenes 429 des Anbieters, werden mit ihrem ursprünglichen Statuscode und demselben { error: {... } }-Format durchgereicht.
Was zu tun ist
| Status | Wiederholen? | Maßnahme |
|---|---|---|
| 400 | Nein | Korrigieren Sie den Request-Body. |
| 401 | Nein | Prüfen Sie den Schlüssel und den Authorization: Bearer-Header. Siehe Authentifizierung. |
| 402 | Nein | Laden Sie Guthaben auf oder aktivieren Sie die automatische Aufladung. |
| 403 | Nein | Verwenden Sie ein erlaubtes Modell, bearbeiten Sie die Allowlist des Schlüssels oder wechseln Sie in einen höheren Plan. |
| 404 | Nein | Prüfen Sie die Modell-ID auf der Modellseite. |
| 413 | Nein | Senden Sie einen kleineren Body oder übergeben Sie Dateien per URL statt als Base64. |
| 429 | Später | rate_limited: Warten Sie die Retry-After-Zeit ab. daily_limit_reached: Warten Sie bis zum nächsten UTC-Tag oder erhöhen Sie das Schlüssellimit. Siehe Rate Limits. |
| 502 | Ja | Mit Backoff wiederholen oder Modell-Fallbacks hinzufügen. |
| 503 | Ja | Später erneut versuchen. |
Fehlerbehandlung im 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)
Fehler, die nach Beginn eines Streams auftreten, kommen innerhalb des Streams an. Siehe Streaming.