API/Documentation

Documentation API

Base URL : https://pokevall.com/api/v1

🚀 Demarrage rapide

L'API PokeVall est disponible exclusivement pour les abonnes Max (29.90 CHF/mois).

3 etapes pour commencer :

  1. Souscrivez au plan Max sur /pricing
  2. Generez votre cle API dans vos parametres
  3. Ajoutez le header X-Api-Key a vos requetes
const response = await fetch(
  'https://pokevall.com/api/v1/cards?search=pikachu&lang=FR',
  {
    headers: {
      'X-Api-Key': 'pk_live_VOTRE_CLE',
      'Content-Type': 'application/json'
    }
  }
)
const data = await response.json()
console.log(data.cards) // Array de cartes avec prix

🔑 Authentification

Toutes les requetes necessitent votre cle API dans le header HTTP.

HeaderValeurRequis
X-Api-Keypk_live_...✅ Oui
Content-Typeapplication/jsonRecommande

⚠️ Securite

Ne jamais exposer votre cle cote client (navigateur). Faites toujours les appels depuis votre backend ou une Edge Function.

🃏 GET /cards

GET https://pokevall.com/api/v1/cards

Parametres

ParamTypeRequisDescription
searchstringNom de la carte
langstringNonFR, EN, DE, JP
setstringNonNom ou ID du set
raritystringNonRarete (Holo Rare, Ultra Rare...)
limitnumberNonMax 50, defaut 10
pagenumberNonPagination

Reponse

{
  "cards": [
    {
      "id": "sv3pt5-001",
      "name": "Pikachu ex",
      "setName": "151",
      "number": "025",
      "rarity": "Double Rare",
      "language": "FR",
      "imageUrl": "https://...",
      "prices": {
        "cardmarket": { "eur": 12.50, "trend": 13.20 },
        "tcgplayer": { "market": 14.30, "low": 11.00 },
        "ebay": { "recent_avg": 13.80 }
      },
      "updatedAt": "2026-05-11T12:00:00Z"
    }
  ],
  "totalFound": 47,
  "page": 1,
  "limit": 10
}

📦 GET /sealed

GET https://pokevall.com/api/v1/sealed
ParamTypeDescription
searchstring ✅Nom du produit (ex: "evolving skies booster box")
langstringEN, JP
typestringdisplay, etb, bundle, pack
limitnumberMax 50
{
  "products": [
    {
      "name": "Evolving Skies Booster Box",
      "setName": "Evolving Skies",
      "productType": "display",
      "price_chf": 245,
      "price_usd": 279.99,
      "imageUrl": "https://...",
      "source": "TCGPlayer",
      "updatedAt": "2026-05-11T12:00:00Z"
    }
  ],
  "totalFound": 5
}

⭐ GET /graded

GET https://pokevall.com/api/v1/graded

Prix des cartes gradees basees sur les ventes eBay reelles. Couvre PSA, BGS, CGC, SGC et TAG.

ParamTypeDescription
searchstring ✅Nom de la carte
companystringPSA, BGS, CGC, SGC, TAG
gradenumber1-10 (demi-notes pour BGS/CGC)
{
  "card": "Charizard Base Set",
  "gradedPrices": [
    { "company": "PSA", "grade": 10, "price_chf": 12500, "sales": 28, "trend": "stable" },
    { "company": "PSA", "grade": 9, "price_chf": 4200, "sales": 145, "trend": "rising" },
    { "company": "BGS", "grade": 9.5, "price_chf": 9800, "sales": 12, "trend": "stable" },
    { "company": "CGC", "grade": 9.5, "price_chf": 3100, "sales": 34, "trend": "falling" }
  ],
  "source": "eBay Sold",
  "updatedAt": "2026-05-11T12:00:00Z"
}

📂 GET /sets

GET https://pokevall.com/api/v1/sets
{
  "sets": [
    {
      "id": "sv3pt5",
      "name": "151",
      "series": "Scarlet & Violet",
      "totalCards": 207,
      "releaseDate": "2023-09-22",
      "logoUrl": "https://..."
    }
  ],
  "totalSets": 150
}

📈 GET /prices/history

GET https://pokevall.com/api/v1/prices/history

Jusqu'a 6 mois d'historique prix quotidien par source (TCGPlayer, eBay).

ParamTypeDescription
cardIdstring ✅ID de la carte
periodstring7d, 30d, 90d, 180d (defaut 30d)
sourcestringtcgplayer, ebay, cardmarket
{
  "cardId": "sv3pt5-001",
  "history": {
    "tcgplayer": [
      { "date": "2026-05-11", "price": 12.50 },
      { "date": "2026-05-10", "price": 12.30 },
      { "date": "2026-05-09", "price": 11.90 }
    ],
    "ebay": [
      { "date": "2026-05-11", "price": 13.80 },
      { "date": "2026-05-10", "price": 14.10 }
    ]
  },
  "period": "30d",
  "dataPoints": 60
}

📊 GET /population

GET https://pokevall.com/api/v1/population

Donnees de population GemRate : nombre de cartes gradees par certifieur et par note. Ideal pour calculer le ROI de grading.

{
  "card": "Charizard VMAX",
  "population": {
    "PSA": { "g10": 2500, "g9": 8000, "total": 12000, "gemRate": 20.83 },
    "BGS": { "g10": 100, "g9_5": 500, "total": 1830, "gemRate": 7.10 },
    "CGC": { "g10": 50, "g9_5": 200, "total": 650, "gemRate": 7.69 },
    "SGC": { "g10": 30, "g9": 100, "total": 130, "gemRate": 23.08 }
  },
  "totalGraded": 14610,
  "combinedGemRate": 18.55
}

⚠️ Codes d'erreur

CodeErreurDescription
400BAD_REQUESTParametre manquant ou invalide
401UNAUTHORIZEDCle API manquante ou invalide
403FORBIDDENPlan insuffisant (API reservee Max)
429RATE_LIMITEDLimite de 10 000 requetes/jour atteinte
500SERVER_ERRORErreur interne PokeVall
{
  "error": "UNAUTHORIZED",
  "message": "Cle API invalide ou expiree",
  "code": 401
}

🚦 Rate Limits

PlanReq/jourReq/minAcces API
Gratuit
Pro
Max10 00060

Les headers de rate limit sont inclus dans chaque reponse :

X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9987
X-RateLimit-Reset: 2026-05-12T00:00:00Z

💡 Exemples de code

Bot Discord — prix en temps reel

const { Client, Events, GatewayIntentBits } = require('discord.js')
const client = new Client({
  intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages]
})

client.on(Events.MessageCreate, async (message) => {
  if (!message.content.startsWith('!prix')) return
  const cardName = message.content.slice(6).trim()

  const res = await fetch(
    `https://pokevall.com/api/v1/cards?search=${encodeURIComponent(cardName)}&lang=FR`,
    { headers: { 'X-Api-Key': process.env.POKEVALL_API_KEY } }
  )
  const { cards } = await res.json()

  if (!cards.length) return message.reply('Carte introuvable.')

  const card = cards[0]
  const price = card.prices.cardmarket?.eur ?? 'N/A'
  message.reply(`💰 **${card.name}** — ${price} €  (CardMarket)`)
})

client.login(process.env.DISCORD_TOKEN)
PokeVall

PokeVall n'est pas affilie a The Pokemon Company International, Nintendo, Creatures Inc. ou GAME FREAK. Pokemon et tous les noms associes sont des marques deposees de Nintendo.

© pokevall.com 2026 — Tous droits reserves