Feilhåndtering

HTTP-statuskoder, feilresponsformat og håndtering for TCG Price Lookup API.


Feilresponsformat

Alle feil returnerer et konsistent JSON-format:

{
  "error": {
    "code": "error_code",
    "message": "Menneskelig lesbar feilbeskrivelse",
    "details": {}
  }
}

HTTP-statuskoder

KodeBeskrivelse
200Vellykket
400Ugyldig forespørsel (ugyldige parametere)
401Ikke autentisert (ugyldig eller manglende API-nøkkel)
403Forbudt (planadgangsbegrensning)
404Ikke funnet (kort eller ressurs finnes ikke)
429For mange forespørsler (ratebegrensning overskredet)
500Serverfeil

Vanlige feil og løsninger

401 Unauthorized

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

Løsning: Sjekk API-nøkkelen din. Kontroller at X-API-Key-headeren er riktig satt.

429 Too Many Requests

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

Responsen inkluderer en Retry-After-header som angir sekunder til neste forespørsel:

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

Løsning: Respekter Retry-After-headeren. Daglige grenser tilbakestilles ved midnatt UTC. Oppgrader planen hvis du trenger flere forespørsler.

403 Forbidden

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

Løsning: Funksjoner som prishistorikk, graderte priser og batchoppslag krever høyere plan.

Feilhåndtering med SDK

// JavaScript
try {
  const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
  if (error.status === 429) {
    // Ratebegrensning: sjekk tid til retry
    const retryAfter = error.headers['retry-after'];
    console.log(`Ratebegrensning. Prøv igjen om ${retryAfter} sekunder`);
  } else if (error.status === 401) {
    console.error('Ugyldig API-nøkkel');
  }
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError

try:
    results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
    print(f"Ratebegrensning. Prøv igjen om {e.retry_after} sekunder")
except AuthError:
    print("Ugyldig API-nøkkel")