Skip to content
Prepaid, no subscription trap. Top up a balance and we draw the monthly fee from it.
tcggraph

Playground

Query real cards, right now

A public sample of the catalog — real cards, real prices, real artwork, drawn straight from production. It runs in your browser rather than calling the API, so it needs no key and no signup, and the response is built by the same serialiser production uses.

Game

Name contains

Price market

Every quote for Pokémon comes from Cardmarket. Magic is the only game with more than one market.

Pokémon filters

Sort

Limit

Request
GET https://api.tcggraph.com/v1/cards
  ?game=pokemon
  &limit=5
  &sort=-price
  &source=cardmarket
Response20012 ms15 matches
{
  "data": [
    {
      "id": "pkm_ex7_99",
      "game": "pokemon",
      "name": "Rocket's Mewtwo ex",
      "set": {
        "code": "ex7",
        "name": "Team Rocket Returns",
        "releasedAt": "2004-11-01"
      },
      "collectorNumber": "99",
      "rarity": "Rare Holo EX",
      "artist": "Mitsuhiro Arita",
      "text": null,
      "images": {
        "small": "https://cards.tcggraph.io/ex/pkm_ex7_99/small.webp",
        "normal": "https://cards.tcggraph.io/ex/pkm_ex7_99/normal.webp",
        "large": "https://cards.tcggraph.io/ex/pkm_ex7_99/large.webp"
      },
      "hashes": {
        "phash": "8c4e6b91fad23a91",
        "phashColor": "804e6f917ad27e858c4e6b91fb923a91cc4e3d91f0d07a93"
      },
      "prices": [
        {
          "source": "cardmarket",
          "region": "EU",
          "listType": "retail",
          "finish": "normal",
          "currency": "EUR",
          "market": 5201.01,
          "low": 180,
          "trend": 5201.01,
          "avg1": 28500,
          "avg7": 4398.42,
          "avg30": 1336.8
        }
      ],
      "legalities": {
        "unlimited": "legal"
      },
      "gameData": {
        "hp": 100,
        "types": [
          "Darkness"
        ],
        "attacks": [
          {
            "cost": [
              "Psychic"
            ],
            "name": "Darkness Switch",
            "text": "Discard an Energy card attached to Rocket's Mewtwo ex, and then switch all damage counters on Rocket's Mewtwo ex with those on the Defending Pokémon. (If an effect of this attack is prevented, this attack does nothing.)",
            "damage": "",
            "convertedEnergyCost": 1
          },
          {
            "cost": [
              "Psychic",
              "Colorless",
              "Colorless"
            ],
            "name": "Hypnoblast",
            "text": "Flip a coin. If heads, the Defending Pokémon is now Asleep.",
            "damage": "40",
            "convertedEnergyCost": 3
          },
          {
            "cost": [
              "Psychic",
              "Colorless",
              "Colorless",
              "Colorless"
            ],
            "name": "Psyburn",
            "text": "",
            "damage": "70",
            "convertedEnergyCost": 4
          }
        ],
        "subtypes": [
          "Basic",
          "ex"
        ],
        "abilities": [],
        "supertype": "Pokémon",
        "weaknesses": [
          {
            "type": "Psychic",
            "value": "×2"
          }
        ],
        "evolvesFrom": null,
        "resistances": [],
        "retreatCost": [
          "Colorless",
          "Colorless"
        ],
        "regulationMark": null,
        "convertedRetreatCost": 2,
        "nationalPokedexNumbers": [
          150
        ]
      },
      "externalIds": {
        "cardmarketId": 276391,
        "tcgplayerId": null
      }
    },
    {
      "id": "pkm_ecard3_10",
      "game": "pokemon",
      "name": "Gengar",
      "set": {
        "code": "ecard3",
        "name": "Skyridge",
        "releasedAt": "2003-05-12"
      },
      "collectorNumber": "10",
      "rarity": "Rare",
      "artist": "Kyoko Umemoto",
      "text": null,
      "images": {
        "small": "https://cards.tcggraph.io/ec/pkm_ecard3_10/small.webp",
        "normal": "https://cards.tcggraph.io/ec/pkm_ecard3_10/normal.webp",
        "large": "https://cards.tcggraph.io/ec/pkm_ecard3_10/large.webp"
      },
      "hashes": {
        "phash": "eac0823f8fb4707a",
        "phashColor": "ea40833b8dbd507efac1803f8fb0707a80887f8f7fa07a62"
      },
      "prices": [
        {
          "source": "cardmarket",
          "region": "EU",
          "listType": "retail",
          "finish": "normal",
          "currency": "EUR",
          "market": 4086.79,
          "low": 550,
          "trend": 4086.79,
          "avg1": 2699.95,
          "avg7": 2454.49,
          "avg30": 1884.06
        }
      ],
      "legalities": {
        "unlimited": "legal"
      },
      "gameData": {
        "hp": 100,
        "types": [
          "Psychic"
        ],
        "attacks": [
          {
            "cost": [
              "Psychic",
              "Psychic",
              "Colorless",
              "Colorless"
            ],
            "name": "Hydrokinesis",
            "text": "Flip a coin. If heads, the Defending Pokémon is now Burned. If tails, the Defending Pokémon is now Confused.",
            "damage": "40",
            "convertedEnergyCost": 4
          }
        ],
        "subtypes": [
          "Stage 2"
        ],
        "abilities": [
          {
            "name": "Manipulate",
            "text": "When you play Gengar from your hand to evolve your Active Pokémon, you may put a Basic Pokémon (excluding Baby Pokémon) from your discard pile onto your Bench. Then, flip 3 coins. For each heads, choose a basic Energy card from your discard pile and attach it to that Pokémon.",
            "type": "Poké-Power"
          }
        ],
        "supertype": "Pokémon",
        "weaknesses": [
          {
            "type": "Darkness",
            "value": "×2"
          }
        ],
        "evolvesFrom": "Haunter",
        "resistances": [
          {
            "type": "Fighting",
            "value": "-30"
          }
        ],
        "retreatCost": [
          "Colorless",
          "Colorless"
        ],
        "regulationMark": null,
        "convertedRetreatCost": 2,
        "nationalPokedexNumbers": [
          94
        ]
      },
      "externalIds": {
        "cardmarketId": 275250,
        "tcgplayerId": null
      }
    },
    {
      "id": "pkm_ecard2_149",
      "game": "pokemon",
      "name": "Lugia",
      "set": {
        "code": "ecard2",
        "name": "Aquapolis",
        "releasedAt": "2003-01-15"
      },
      "collectorNumber": "149",
      "rarity": "Rare Secret",
      "artist": "Naoyo Kimura",
      "text": null,
      "images": {
        "small": "https://cards.tcggraph.io/ec/pkm_ecard2_149/small.webp",
        "normal": "https://cards.tcggraph.io/ec/pkm_ecard2_149/normal.webp",
        "large": "https://cards.tcggraph.io/ec/pkm_ecard2_149/large.webp"
      },
      "hashes": {
        "phash": "9f1fc1e4a431694d",
        "phashColor": "bf5bc0e0a53169c99f1fc0e4e431694d919a4fe46ea178c9"
      },
      "prices": [
        {
          "source": "cardmarket",
          "region": "EU",
          "listType": "retail",
          "finish": "normal",
          "currency": "EUR",
          "market": 4033.03,
          "low": 820,
          "trend": 4033.03,
          "avg1": 900,
          "avg7": 4380,
          "avg30": 2884.95
        }
      ],
      "legalities": {
        "unlimited": "legal"
      },
      "gameData": {
        "hp": 80,
        "types": [
          "Colorless"
        ],
        "attacks": [
          {
            "cost": [
              "Psychic",
              "Fire"
            ],
            "name": "Psychic",
            "text": "This attack does 10 damage times the number of Energy cards attached to the Defending Pokémon.",
            "damage": "10×",
            "convertedEnergyCost": 2
          },
          {
            "cost": [
              "Water",
              "Water",
              "Fire",
              "Colorless"
            ],
            "name": "Steam Blast",
            "text": "Discard an Energy card attached to Lugia.",
            "damage": "50",
            "convertedEnergyCost": 4
          }
        ],
        "subtypes": [
          "Basic"
        ],
        "abilities": [
          {
            "name": "Crystal Type",
            "text": "Whenever you attach a Fire, Water, or Psychic basic Energy card from your hand to Lugia, Lugia's type (color) becomes the same as that Energy card type until the end of the turn.",
            "type": "Poké-Body"
          }
        ],
        "supertype": "Pokémon",
        "weaknesses": [
          {
            "type": "Psychic",
            "value": "×2"
          }
        ],
        "evolvesFrom": null,
        "resistances": [],
        "retreatCost": [
          "Colorless",
          "Colorless",
          "Colorless"
        ],
        "regulationMark": null,
        "convertedRetreatCost": 3,
        "nationalPokedexNumbers": [
          249
        ]
      },
      "externalIds": {
        "cardmarketId": 275225,
        "tcgplayerId": null
      }
    },
    {
      "id": "pkm_np_28",
      "game": "pokemon",
      "name": "Championship Arena",
      "set": {
        "code": "np",
        "name": "Nintendo Black Star Promos",
        "releasedAt": "2003-10-01"
      },
      "collectorNumber": "28",
      "rarity": "Promo",
      "artist": "Ryo Ueda",
      "text": null,
      "images": {
        "small": "https://cards.tcggraph.io/np/pkm_np_28/small.webp",
        "normal": "https://cards.tcggraph.io/np/pkm_np_28/normal.webp",
        "large": "https://cards.tcggraph.io/np/pkm_np_28/large.webp"
      },
      "hashes": {
        "phash": "da6ad2d4c13dc9c1",
        "phashColor": "ee6ad4d49139c9c1da6ad2d4c13dc9c1c06bf6f4141d49d3"
      },
      "prices": [
        {
          "source": "cardmarket",
          "region": "EU",
          "listType": "retail",
          "finish": "normal",
          "currency": "EUR",
          "market": 2999,
          "low": 2999,
          "trend": 2999,
          "avg1": 2999,
          "avg7": 2624.5,
          "avg30": 2624.5
        }
      ],
      "legalities": {
        "unlimited": "legal"
      },
      "gameData": {
        "hp": null,
        "types": [],
        "attacks": [],
        "subtypes": [
          "Stadium"
        ],
        "abilities": [],
        "supertype": "Trainer",
        "weaknesses": [],
        "evolvesFrom": null,
        "resistances": [],
        "retreatCost": [],
        "regulationMark": null,
        "convertedRetreatCost": null,
        "nationalPokedexNumbers": []
      },
      "externalIds": {
        "cardmarketId": 275501,
        "tcgplayerId": null
      }
    },
    {
      "id": "pkm_ecard2_H18",
      "game": "pokemon",
      "name": "Nidoking",
      "set": {
        "code": "ecard2",
        "name": "Aquapolis",
        "releasedAt": "2003-01-15"
      },
      "collectorNumber": "H18",
      "rarity": "Rare Holo",
      "artist": "Naoyo Kimura",
      "text": null,
      "images": {
        "small": "https://cards.tcggraph.io/ec/pkm_ecard2_H18/small.webp",
        "normal": "https://cards.tcggraph.io/ec/pkm_ecard2_H18/normal.webp",
        "large": "https://cards.tcggraph.io/ec/pkm_ecard2_H18/large.webp"
      },
      "hashes": {
        "phash": "ff5ec080a5b583c6",
        "phashColor": "fe7ec081a13d83c6ff7ec08085b583c680de72606fa51f66"
      },
      "prices": [
        {
          "source": "cardmarket",
          "region": "EU",
          "listType": "retail",
          "finish": "normal",
          "currency": "EUR",
          "market": 2194.94,
          "low": 160,
          "trend": 2194.94,
          "avg1": 17999.99,
          "avg7": 2275.89,
          "avg30": 1003.27
        }
      ],
      "legalities": {
        "unlimited": "legal"
      },
      "gameData": {
        "hp": 110,
        "types": [
          "Fighting"
        ],
        "attacks": [
          {
            "cost": [
              "Fighting",
              "Fighting",
              "Colorless",
              "Colorless"
            ],
            "name": "Giant Horn",
            "text": "Flip a coin. If heads, this attack does 50 damage plus 30 more damage.",
            "damage": "50+",
            "convertedEnergyCost": 4
          }
        ],
        "subtypes": [
          "Stage 2"
        ],
        "abilities": [
          {
            "name": "Earth Rage",
            "text": "Once during your turn (before your attack), if Nidoking is your Active Pokémon, you may flip a coin. If heads, put a damage counter on each of your opponent's Benched Pokémon. This power can't be used if Nidoking is affected by a Special Condition.",
            "type": "Poké-Power"
          }
        ],
        "supertype": "Pokémon",
        "weaknesses": [
          {
            "type": "Grass",
            "value": "×2"
          }
        ],
        "evolvesFrom": "Nidorino",
        "resistances": [
          {
            "type": "Lightning",
            "value": "-30"
          }
        ],
        "retreatCost": [
          "Colorless",
          "Colorless",
          "Colorless"
        ],
        "regulationMark": null,
        "convertedRetreatCost": 3,
        "nationalPokedexNumbers": [
          34
        ]
      },
      "externalIds": {
        "cardmarketId": 275226,
        "tcgplayerId": null
      }
    }
  ],
  "meta": {
    "page": 1,
    "limit": 5,
    "totalCount": 15,
    "totalPages": 3,
    "hasMore": true,
    "priceSource": "cardmarket"
  }
}

Every card comes back with both a TCGplayer quote in USD and a Cardmarket quote in EUR; the market toggle picks which one the sort and price filters read from. See European pricing for what the EU side covers.

The public sample covers a slice of each game. An API key unlocks the full catalog, and the REST reference documents every filter shown here.