Obsługa błędów

Kody HTTP, format odpowiedzi błędu i jak je obsługiwać w TCG Price Lookup API.


Format odpowiedzi błędu

Wszystkie błędy zwracają spójny format JSON:

{
  "error": {
    "code": "error_code",
    "message": "Czytelny dla człowieka opis błędu",
    "details": {}
  }
}

Kody HTTP

KodOpis
200Sukces
400Złe zapytanie (nieprawidłowe parametry)
401Nieautoryzowany (nieprawidłowy lub brakujący klucz API)
403Zabroniony (ograniczenia planu)
404Nie znaleziono (karta lub zasób nie istnieje)
429Zbyt wiele zapytań (przekroczono limit)
500Błąd serwera

Typowe błędy i jak je naprawić

401 Unauthorized

{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }

Rozwiązanie: Sprawdź swój klucz API. Upewnij się, że nagłówek X-API-Key jest poprawnie ustawiony.

429 Too Many Requests

{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }

Odpowiedź zawiera nagłówek Retry-After z liczbą sekund do następnego zapytania:

Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200

Rozwiązanie: Przestrzegaj nagłówka Retry-After. Dzienne limity resetują się o północy UTC. Jeśli potrzebujesz więcej zapytań, ulepsz plan.

403 Forbidden

{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }

Rozwiązanie: Niektóre funkcje, takie jak historia cen, ceny gradowanych kart czy batch, wymagają wyższego planu.

Obsługa błędów przez SDK

// JavaScript
try {
  const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
  if (error.status === 429) {
    // Limit zapytań: sprawdź czas oczekiwania
    const retryAfter = error.headers['retry-after'];
    console.log(`Limit zapytań. Spróbuj ponownie za ${retryAfter} sekund`);
  } else if (error.status === 401) {
    console.error('Nieprawidłowy klucz API');
  }
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError

try:
    results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
    print(f"Limit zapytań. Spróbuj ponownie za {e.retry_after} sekund")
except AuthError:
    print("Nieprawidłowy klucz API")