Core concepts

The graph

Species ──< Card >── Set ── Series
              │
              └──< Printing ── prices, marketplace IDs, links
  • Species: a Pokémon, by National Pokédex number (nationalDex: 6) or slug (charizard). It has forms (regional, Mega, Gigantamax) with types, stats and abilities, an evolution line, and its cards.
  • Set: an expansion or promo set. code is our ID, e.g. sv03.5 (151) or me03 (Perfect Order).
  • Card: a card as printed in one set: attacks, HP, rarity, illustrator, rules text. code is <set code>-<number>, e.g. sv03.5-006. Each card links to the species on it (species); tag-team cards link several, and cameo: true marks Pokémon that only appear in the artwork.
  • Printing: one collectible variant of a card (normal, reverse holo, holo, 1st Edition, stamped, Poké Ball pattern…). Prices and marketplace IDs live here, because that's the unit people buy and sell.

Regions and languages

  • region: INTERNATIONAL sets are printed in English and European languages, and share one card list across those languages. localizedNames and name(locale: "fr") give the translations.
  • region: ASIA sets are the Japanese, Korean, Chinese, Indonesian and Thai releases, which have their own set lists. Their codes start with asia:, e.g. asia:SV2a and asia:SV2a-006.
  • Set.digital is true for Pokémon TCG Pocket (app-only cards with no physical printing or price).

Lists and pagination

List fields (cards, sets, speciesList, sealedProducts, Set.cards, Species.cards) are cursor-paginated connections: ask for first (default 25, at most 100), and pass pageInfo.endCursor back as after:

{
  cards(filter: { nationalDex: 25, region: INTERNATIONAL }, first: 50) {
    nodes { code name set { name } }
    pageInfo { hasNextPage endCursor }
  }
}

cards(filter:) accepts name, setCode, region, supertype (POKEMON, TRAINER, ENERGY), nationalDex, type, rarity, illustrator, regulationMark, standardLegal and digital; all given filters must match. orderBy is RELEASE_DATE_DESC (default), RELEASE_DATE_ASC or NAME.

Global IDs

Every Card, Set, Species, Printing and SealedProduct also has an opaque id you can fetch with node(id:). Prefer code / nationalDex in your own data: they're readable and stable.

This page as Markdown: /docs/concepts.md