Fehlerbehandlung
HTTP-Statuscodes, Format der Fehlerantworten und Umgang damit in der TCG Price Lookup API.
Format der Fehlerantworten
Alle Fehler geben ein einheitliches JSON-Format zurück:
{
"error": {
"code": "error_code",
"message": "Menschenlesbare Fehlerbeschreibung",
"details": {}
}
}
HTTP-Statuscodes
| Code | Beschreibung |
|---|---|
200 | Erfolg |
400 | Ungültige Anfrage (ungültige Parameter) |
401 | Nicht autorisiert (API-Schlüssel ungültig oder fehlend) |
403 | Verboten (Plan-Zugriffsbeschränkung) |
404 | Nicht gefunden (Karte oder Ressource existiert nicht) |
429 | Zu viele Anfragen (Rate Limit überschritten) |
500 | Server-Fehler |
Häufige Fehler und Lösungen
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Lösung: Überprüfen Sie Ihren API-Schlüssel. Stellen Sie sicher, dass der X-API-Key-Header korrekt gesetzt ist.
429 Too Many Requests
{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }
Die Antwort enthält einen Retry-After-Header mit der Wartezeit in Sekunden bis zur nächsten Anfrage:
Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200
Lösung: Beachten Sie den Retry-After-Header. Tageslimits werden um Mitternacht UTC zurückgesetzt. Upgraden Sie Ihren Plan, wenn Sie höhere Limits benötigen.
403 Forbidden
{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }
Lösung: Funktionen wie Preisverlauf, gradierte Preise und Batch-Suche erfordern höhere Pläne.
Fehlerbehandlung mit SDKs
// JavaScript
try {
const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
if (error.status === 429) {
// Rate Limit: Wartezeit prüfen
const retryAfter = error.headers['retry-after'];
console.log(`Rate Limit erreicht. Bitte in ${retryAfter} Sekunden erneut versuchen.`);
} else if (error.status === 401) {
console.error('API-Schlüssel ist ungültig');
}
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError
try:
results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
print(f"Rate Limit erreicht. Bitte in {e.retry_after} Sekunden erneut versuchen.")
except AuthError:
print("API-Schlüssel ist ungültig")