Skip to content
Crypto-only, prepaid. Top up a balance and we draw from it monthly — nothing is ever charged automatically.
tcggraph

The Pokémon Company · since 1996

Pokémon Trading Card Game API

Every English and Japanese Pokémon card, with HP, attacks, weaknesses, retreat cost and regulation marks fully structured.

19,840
Cards
41,200
Printings
168
Sets
12
Languages

Overview

What the Pokémon dataset covers

Pokémon accounts for roughly 65% of all tracked secondary-market activity in 2026. TCGGraph indexes the complete English and Japanese card pool — including promos, Trainer Gallery subsets and every reverse-holo and secret-rare printing — and normalises attack costs, energy types, evolution chains and regulation marks so you can query thirty years of history with one consistent schema.

Sourced from Pokémon TCG API, publisher set lists and TCGplayer.

Formats

  • Standard
  • Expanded
  • Unlimited
  • GLC

Price sources

  • TCGplayer
  • Cardmarket
  • eBay sold
REST
curl -G "https://api.tcggraph.com/v1/cards" \
  -d game=pokemon \
  -d limit=5 \
  -H "Authorization: Bearer $TCGGRAPH_KEY"
GraphQL
{
  cards(
    game: POKEMON
    filter: { types: ["Fire"], hp: { gte: 300 } }
    first: 5
  ) {
    nodes {
      name
      set { name }
      pokemon { hp types }
      prices { market currency }
    }
  }
}

Schema

Pokémon-specific fields

Every card carries the shared core fields. These live under gameData in REST, and under the typed pokemon field in GraphQL.

FieldTypeDescription
supertypeEnumPokémon, Trainer or Energy.
subtypes[String]Basic, Stage 1, Stage 2, ex, V, VMAX, Tera, Supporter, Item…
hpIntHit points for Pokémon cards.
types[String]Energy types the Pokémon belongs to.
evolvesFromStringThe Pokémon this card evolves from.
attacks[Object]name, cost, convertedEnergyCost, damage and text.
weaknesses[Object]Type and multiplier or modifier.
resistances[Object]Type and damage reduction.
retreatCost[String]Energy required to retreat.
regulationMarkStringRotation letter used by Standard legality.
nationalPokedexNumbers[Int]Pokédex entries referenced by the card.

Plus 21 core fields shared by every game — see the full reference.

Live data

Pokémon cards in the public dataset

Real records returned by the API right now, sorted by market value, with both the American and the European quote.

CardSetNumberRarityTCGplayerCardmarket
Umbreon VMAXEvolving Skies215/203Rare Rainbow$2,380€1,832
CharizardBase4/102Rare Holo$868.56€812.55
Charizard ex151199/165Special Illustration Rare$370.48€312.67
Charizard VBrilliant Stars154/172Rare Ultra$299.24€307.80
Pokémon Center LadyFlashfire105/106Rare Ultra$56.87€57.45
PikachuCrown Zenith160/159Rare Secret$48.88€37.78
PikachuBase58/102Common$16.41€16.21
Charizard ex1516/165Double Rare$8.78€8.98

The European market for Pokémon

European distribution runs through The Pokémon Company International's London office, and localised print runs are far smaller than the English ones. Modern German and French cards usually trade at a discount to English, but early localised sets invert that completely — the German Base Set is genuinely scarcer than the English one, and Cardmarket is the only venue that prices it properly.

Traded on Cardmarket in German, French, Italian, Spanish, Portuguese, Dutch beyond English. How European pricing works.

Sets

Notable Pokémon sets

  • BS

    Base Set

    102 cards · 1999-01-09

  • SV3.5

    Scarlet & Violet — 151

    207 cards · 2023-09-22

  • SWSH7

    Evolving Skies

    237 cards · 2021-08-27

  • ME01

    Mega Evolution

    230 cards · 2025-09-26

  • ME02

    Phantasmal Flames

    244 cards · 2026-01-30

Modelling

Working with Pokémon data

The decisions that catch people out when they first integrate Pokémon. Each of these is a bug we have watched somebody ship.

  • A card name is not an identifier

    There are more than a hundred distinct cards called Charizard, spread across thirty years of sets, and several of them are legal in the same format at the same time. Treat name as a search input, never as a key. The stable identifier is the card id; the human-readable one is set code plus collector number.

  • Collector numbers run past the set size

    Secret rares are numbered above the printed set total, so you will see 199/165 and it is not a data error. Sort on the numeric portion if you want catalogue order, and expect gaps where a number was allocated to a card that only appeared in the Japanese print run.

  • Standard legality is a moving target

    Regulation marks — the small letter in the bottom corner — gate Standard, and one rotates out every autumn. A card that was legal when you cached it may not be next September. Read legalities.standard at query time rather than deriving it from the set's release date.

  • Mechanic suffixes look alike and are not

    ex, EX, GX, V, VMAX and VSTAR are separate mechanics with separate rules, and lowercase ex from Scarlet & Violet is not uppercase EX from Black & White. Do not parse them out of the name. The subtypes array tells you exactly which one you have.

Recipes

Common Pokémon queries

Three requests that cover most of what applications in this game actually ask for.

Every printing of one Pokémon, with current prices

Collection trackers need all printings of a card, not the first match. Search by name and page wide.

One page of 100 costs 2 credits, the same as a page of 10 — always page wide.

GET /v1/cards
  ?game=pokemon
  &name=charizard
  &include=prices,set
  &sort=set.releasedAt:desc
  &limit=100

Standard-legal attackers above 300 HP

Deck builders filter on format legality and a stat threshold at the same time. Both are indexed.

format=standard resolves the current regulation marks server-side, so it stays correct through rotation.

GET /v1/cards
  ?game=pokemon
  &format=standard
  &minHp=300
  &types=Fire
  &sort=hp:desc

Ninety days of price movement for one card

Price charts need a series, not a spot value. Ask for the history directly.

Costs 3 credits and returns the whole series in one call, rather than 90 single-day lookups.

GET /v1/prices/pkm_sv3pt5_199/history
  ?interval=DAY
  &from=2026-06-01
  &source=tcgplayer

Glossary

Pokémon terms, and the fields that hold them

What players call a thing on the left, what you query on the right.

TermFieldNotes
HPpokemon.hpInteger. Absent on Trainer and Energy cards, so check for null.
Retreat costpokemon.retreatCostCount of colourless energy needed to switch this Pokémon out.
Regulation markpokemon.regulationMarkSingle letter that determines Standard legality and rotates annually.
Weakness / Resistancepokemon.weaknesses[]Array of { type, value } — value is a multiplier or a flat modifier.
Subtypepokemon.subtypes[]ex, V, VMAX, VSTAR, Tag Team, Radiant and so on. Use this, not the name.
Attack costpokemon.attacks[].costArray of energy symbols, not an integer. Length is the total energy needed.
Illustration rarerarityAlternate-art rarity tier introduced in Scarlet & Violet. Distinct from Special Illustration Rare.

FAQ

Pokémon API questions

Anything not covered here, email hello@tcggraph.com and a human who knows Pokémon answers.

Also available

Add another game without another integration

Your Pokémon key already works for every other game in the catalog. Change the POKEMON enum and the rest of your code stays as it is.