Terug naar Blog
Developer Bronnen/28 januari 2026/15 min lezen

PokeTrace API Developer Gids

De PokeTrace API biedt realtime prijsdata voor meer dan 60.000+ Pokemon kaarten. Deze gids behandelt alles wat je nodig hebt om de API in je applicatie te integreren: authenticatie, endpoints, response formats, error handling en productie best practices.

Code editor die PokeTrace API integratie toont met JSON response data
Bouw Pokemon kaart applicaties met echte prijsdata van VS en EU markten

Toegang tot PSA, BGS en CGC gegradeerde prijzen naast raw kaartwaarden van TCGPlayer, eBay en CardMarket.

01

Quick Start

Ga in drie stappen aan de slag: (1) Maak een account aan op poketrace.com/dashboard, (2) Genereer een API key, (3) Voeg de X-API-Key header toe aan je verzoeken. Dat is het—je bent klaar om kaartdata op te vragen.

De basis URL voor alle API verzoeken is https://api.poketrace.com/v1. Alle endpoints vereisen authenticatie via de X-API-Key header. De API retourneert JSON responses met consistente structuur over alle endpoints.

Check API status op status.poketrace.com. Voor WebSocket realtime updates (alleen Scale plan), verbind met wss://api.poketrace.com/ws met je API key.

02

Authenticatie

Alle API verzoeken vereisen een API key in de X-API-Key header. Keys zijn gratis aan te maken en rate limits worden per account afgedwongen, niet per key—maak meerdere keys voor verschillende projecten zonder je quota te splitsen.

Steps

  1. 1.Registreer op poketrace.com/dashboard
  2. 2.Klik 'Aanmaken' om een nieuwe API key te genereren
  3. 3.Kopieer je key (formaat: pc_xxxxxxxx)
  4. 4.Voeg X-API-Key: JE_KEY toe in request headers
cURL
curl -H "X-API-Key: pc_jouw_key" https://api.poketrace.com/v1/cards
JavaScript
fetch('https://api.poketrace.com/v1/cards', {
  headers: { 'X-API-Key': 'pc_jouw_key' }
})
Python
Commit nooit API keys naar publieke repositories. Gebruik environment variabelen: process.env.POKETRACE_API_KEY in Node.js of os.environ['POKETRACE_API_KEY'] in Python.
03

API Endpoints

De API biedt vier kern endpoints. Kaarten zijn gescheiden per markt—VS kaarten hebben TCGPlayer en eBay data, EU kaarten hebben CardMarket data.

GET /v1/cards

Lijst kaarten met paginatie en filters. Retourneert basis kaartinfo zonder volledige pricing.

Params: limit (max 100), cursor, set, search, card_number, variant, market (US/EU), has_graded

GET /v1/cards?market=US&set=base-set&limit=20
Response:
{
  "data": [{
    "id": "019bff77-befa-771d-bab0-f5909f0a78c9",
    "name": "Charizard",
    "cardNumber": "4/102",
    "set": { "slug": "base-set", "name": "Base Set" },
    "variant": "Holofoil",
    "rarity": "Rare Holo",
    "market": "US",
    "currency": "USD"
  }],
  "pagination": { "hasMore": true, "nextCursor": "YnNfNQ==", "count": 1 }
}

GET /v1/cards/:id

Haal volledige kaartdetails met pricing per bron en tier. VS kaarten bevatten ebay (alle tiers) + tcgplayer (alleen raw). EU kaarten bevatten cardmarket (Price Trend met historische gemiddelden) + cardmarket_unsold (actieve aanbiedingen met tier/land uitsplitsing).

GET /v1/cards/019bff77-befa-771d-bab0-f5909f0a78c9
Response:
// VS Kaart
{
  "data": {
    "id": "019bff77-befa-771d-bab0-f5909f0a78c9",
    "name": "Charizard",
    "market": "US",
    "currency": "USD",
    "prices": {
      "ebay": {
        "PSA_10": { "avg": 5200, "low": 4800, "high": 5600, "saleCount": 47 },
        "NEAR_MINT": { "avg": 890, "low": 750, "high": 1050, "saleCount": 156 }
      },
      "tcgplayer": {
        "NEAR_MINT": { "avg": 420, "low": 380, "high": 480, "saleCount": 89 }
      }
    }
  }
}

// EU Kaart
{
  "data": {
    "id": "eu_273550",
    "name": "Charizard",
    "market": "EU",
    "currency": "EUR",
    "prices": {
      "cardmarket": { "avg": 385, "avg1d": 380, "avg7d": 375, "avg30d": 370 },
      "cardmarket_unsold": {
        "NEAR_MINT": { "avg": 420, "low": 350, "high": 890, "saleCount": 125, "country": { "DE": { "avg": 410 }, "FR": { "avg": 450 } } }
      }
    }
  }
}

GET /v1/sets

Lijst alle kaart sets met metadata. Gebruik set slugs om kaarten te filteren.

Params: search, game (pokemon, pokemon-japanese), limit, cursor

GET /v1/sets?search=base&limit=5
Response:
{
  "data": [
    { "slug": "base-set", "name": "Base Set", "releaseDate": "1999-01-09", "cardCount": 102 },
    { "slug": "base-set-2", "name": "Base Set 2", "releaseDate": "2000-02-24", "cardCount": 130 }
  ],
  "pagination": { "hasMore": true, "nextCursor": "YmFzZS1zZXQtMg==", "count": 2 }
}

GET /v1/auth/info

Haal je API key info en gebruiksstatistieken. Check resterende verzoeken, reset tijd en plandetails.

GET /v1/auth/info
Response:
{
  "data": {
    "key": "pc_a1b2c3d4...",
    "name": "Productie",
    "active": true,
    "createdAt": "2026-01-17T10:00:00Z",
    "lastUsedAt": "2026-01-17T12:30:00Z",
    "user": {
      "plan": "Free",
      "remaining": 208,
      "limit": 250,
      "resetsAt": "2026-01-18T00:00:00Z"
    }
  }
}

GET /v1/cards/:id/prices/:tier/history

Haal historische prijsdata voor een specifieke tier. Nuttig voor grafieken en trendanalyse.

Params: period (7d, 30d, 90d, 1y, all), limit, cursor

GET /v1/cards/019bff77.../prices/PSA_10/history?period=30d
Response:
{
  "data": [
    { "date": "2026-01-27", "source": "ebay", "avg": 5200, "low": 4800, "high": 5600, "saleCount": 3 },
    { "date": "2026-01-26", "source": "ebay", "avg": 5150, "low": 4750, "high": 5500, "saleCount": 5 }
  ],
  "pagination": { "hasMore": true, "nextCursor": "MjAyNi0wMS0yNQ==", "count": 2 }
}
04

Rate Limits

Rate limits worden per account afgedwongen, niet per key. Elke response bevat headers die je huidige gebruik tonen.

Gratis

250 / day

Alleen VS

Alleen raw condities

Pro

10.000 / day

VS + EU

Raw + Gegraded (PSA, BGS, CGC)

Scale

100.000 / day

VS + EU

Raw + Gegraded + WebSocket

Response Headers

  • X-RateLimit-Limit — Je plan's dagelijkse verzoeklimiet
  • X-RateLimit-Remaining — Resterende verzoeken vandaag
  • X-RateLimit-Reset — ISO8601 timestamp wanneer limiet reset
  • X-Plan — Je huidige plan (Free, Pro, Scale)
Cache responses agressief. Prijzen worden elke paar uur bijgewerkt—cachen voor 15-60 minuten vermindert API calls significant.
05

Complete Codevoorbeelden

Kopieer-plak deze voorbeelden om te beginnen. Vervang YOUR_KEY met je werkelijke API key.

JavaScript / Node.js

const API_KEY = process.env.POKETRACE_API_KEY;
const BASE_URL = 'https://api.poketrace.com/v1';

async function getCard(cardId) {
  const response = await fetch(`${BASE_URL}/cards/${cardId}`, {
    headers: { 'X-API-Key': API_KEY }
  });
  
  if (!response.ok) {
    const error = await response.json();
    throw new Error(error.message);
  }
  
  return response.json();
}

async function searchCards(query, market = 'US') {
  const params = new URLSearchParams({ search: query, market, limit: '20' });
  const response = await fetch(`${BASE_URL}/cards?${params}`, {
    headers: { 'X-API-Key': API_KEY }
  });
  return response.json();
}

// Gebruik
const card = await getCard('019bff77-befa-771d-bab0-f5909f0a78c9');
console.log(`${card.data.name}: $${card.data.prices.ebay.PSA_10.avg} (PSA 10)`);

Python

cURL

# Haal een enkele kaart
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/cards/019bff77-befa-771d-bab0-f5909f0a78c9"

# Zoek kaarten
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/cards?search=charizard&market=US&limit=10"

# Lijst alle sets
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/sets?limit=50"

# Check je gebruik
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/auth/info"

# Haal prijsgeschiedenis
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/cards/019bff77.../prices/PSA_10/history?period=30d"
06

Error Handling

De API gebruikt standaard HTTP statuscodes. Alle error responses bevatten error en message velden.

400

Bad Request

Ongeldige parameters

{ "error": "Ongeldige limit parameter", "message": "Limit moet tussen 1 en 100 zijn" }
401

Unauthorized

Ontbrekende of ongeldige API key

{ "error": "API key vereist", "message": "Voeg je API key toe in de X-API-Key header" }
403

Forbidden

Plan upgrade vereist

{ "error": "Pro plan vereist", "message": "Gegradeerde kaartprijzen vereisen een Pro plan.", "code": "UPGRADE_REQUIRED" }
404

Not Found

Resource bestaat niet

{ "error": "Kaart niet gevonden", "message": "Geen kaart bestaat met dit ID" }
429

Rate Limited

Te veel verzoeken

{ "error": "Rate limit overschreden", "message": "Dagelijkse limiet bereikt. Reset op 2026-01-18T00:00:00Z", "retryAfter": 3600 }
Voor 429 errors, gebruik het retryAfter veld (seconden) of X-RateLimit-Reset header. Implementeer exponential backoff: wacht 1s, dan 2s, dan 4s tussen retries.
07

Veelgestelde Vragen

Wat is het verschil tussen VS en EU kaarten?

Kaarten zijn markt-specifiek. VS kaarten hebben TCGPlayer en eBay pricing in USD. EU kaarten hebben CardMarket pricing in EUR met per-land uitsplitsingen (DE, FR, IT, etc.). Elke kaart behoort tot slechts één markt.

Welke graderingsbedrijven worden ondersteund?

We ondersteunen 15 graderingsbedrijven inclusief PSA, BGS, CGC, ACE, TAG en meer. Gegradeerde prijzen zijn beschikbaar op Pro en Scale plannen. Het gradedOptions veld op elke kaart toont beschikbare graden.

Hoe krijg ik realtime prijsupdates?

WebSocket verbindingen zijn beschikbaar op het Scale plan. Verbind met wss://api.poketrace.com/ws met je API key. Abonneer op specifieke kaarten om directe prijsupdates te ontvangen wanneer nieuwe verkopen plaatsvinden.

Kan ik de API gebruiken voor commerciële projecten?

Ja. Gratis tier staat niet-commercieel gebruik toe. Pro en Scale plannen bevatten commerciële licenties. Check onze servicevoorwaarden voor volledige details.

Hoe nauwkeurig is de prijsdata?

Prijzen zijn gebaseerd op geverifieerde voltooide verkopen van TCGPlayer, eBay en CardMarket. We updaten elke paar uur. Elke prijs tier bevat een betrouwbaarheidsscore (high, medium, low) en saleCount zodat je betrouwbaarheid kunt beoordelen.

Begin Vandaag Met Bouwen

Haal je gratis API key en begin met het bouwen van Pokemon kaart applicaties. 250 verzoeken per dag, geen creditcard vereist.

Gratis API Key Ophalen