Pokémon TCG API

Games API · Pokemon cards · Sets, types, rarity

TL;DR

The Pokémon TCG API provides searchable access to every official Pokémon Trading Card Game card, set, and collection from the Base Set (1999) through the latest Scarlet & Violet expansion. Search by card name, Pokémon type, set, illustrator, rarity, and HP. Returns high-resolution card images, attack details, weakness/resistance info, and rule text. No API key required. Covers over 14,000 unique cards across all generations.

Quick start: https://api.pokemontcg.io/v1/cards?name=pikachu

No API key needed — community Pokémon database!

How to Use This API

1. Search by Card Name

https://api.pokemontcg.io/v1/cards?name=pikachu

2. Filter by Type and Set

https://api.pokemontcg.io/v1/cards?type=Fire&set.name=base

3. Get All Cards in a Set

https://api.pokemontcg.io/v1/sets

4. JavaScript — Card Search and Display

async function findPokemon(name) {
  const r = await fetch(`https://api.pokemontcg.io/v1/cards?name=${name}`);
  const data = await r.json();
  return data.cards;
}
findPokemon('charizard').then(cards => {
  cards.slice(0, 3).forEach(c => {
    console.log(`${c.name} (${c.set.name} #${c.number})`);
    console.log('  HP:', c.hp, '| Type:', c.types?.join(', '));
    console.log('  Attacks:', c.attacks?.map(a => a.name).join(', '));
    console.log('  Rarity:', c.rarity);
  });
});

5. Python — Find Rare Cards in a Set

import requests

r = requests.get('https://api.pokemontcg.io/v1/cards',
  params={'set.name': 'Evolving Skies', 'rarity': 'Ultra Rare'})
cards = r.json().get('cards', [])
for c in cards:
    print(f"{c['name']} — {c['number']}/{c['set']['printedTotal']}")
    prices = c.get('tcgplayer', {}).get('prices', {})
    if prices:
        print(f"  Market: ${prices.get('normal', {}).get('market', 'N/A')}")
Search "pikachu": https://api.pokemontcg.io/v1/cards?name=pikachu&pageSize=3

Frequently Asked Questions

How many cards does the API cover?
Over 14,000 unique cards across all official sets from Base Set (1999) to the latest Scarlet & Violet expansion.
Can I filter by card number within a set?
Yes — use set.id=base1&number=25 to find a specific numbered card in a specific set (e.g., base set #25 Pikachu).
Does it include card prices?
When available, the API returns TCGplayer pricing data including market price, low price, and high price for each card.
Are high-resolution images provided?
Yes — each card has both imageUrl (normal) and imageUrlHiRes for zoomable card scans.
Can I search by illustrator or artist?
Yes — use artist=Ken+Sugimori to find all cards illustrated by a specific artist.
Is the API suitable for card grading apps?
Absolutely — the combination of set, number, and card identifiers makes it perfect for grading inventory and collection management tools.

API Details

API URL
https://api.pokemontcg.io/v1/cards
Documentation
pokemontcg.io
Category
Games
Authentication
Not Required
Geographic Coverage
Global — all languages and regional sets

What You Can Build