Master Setter · Catalog API

The Pokémon card API that speaks 14 languages.

Every card, every printing, in the language it was printed in. The deepest Korean, Thai, Indonesian and Chinese coverage of any Pokémon TCG API, plus Japanese and the European languages. JSON over HTTPS, free key in one request.

196,872cards
272,054printings
1,833sets
14languages
Get a free key (1,000 requests a month, no card)

  

Or from a terminal (handy for agents):

curl -X POST https://api.master-setter.com/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com"}'

Coverage

CodeLanguageCardsSets
enEnglish21,795213
jaJapanese21,495236
frFrench19,948177
itItalian19,745173
deGerman18,947132
esSpanish16,713135
koKorean15,562239
ptPortuguese14,39691
zh-twTraditional Chinese13,127134
idIndonesian11,93794
thThai11,85395
zh-cnSimplified Chinese8,01055
es-mxLatin American Spanish1,75810
ruRussian1,10411

Plus small Polish and Dutch sets. Counts are cards actually present, updated September 24, 2026.

Quickstart

# Korean sets, newest first
curl -H "Authorization: Bearer $KEY" \
  "https://api.master-setter.com/v1/sets?lang=ko&limit=5"

# Search by name in the card's own language (리자몽 = Charizard)
curl -H "Authorization: Bearer $KEY" \
  "https://api.master-setter.com/v1/cards?q=리자몽&lang=ko"

# One card with every printing (1st Edition, Shadowless, Unlimited…)
curl -H "Authorization: Bearer $KEY" \
  "https://api.master-setter.com/v1/cards?id=en-base1-4"
// JavaScript
const r = await fetch("https://api.master-setter.com/v1/cards?set=th-sv1v", {
  headers: { Authorization: `Bearer ${process.env.MS_API_KEY}` } });
const { data, pagination } = await r.json();
# Python
import os, requests
r = requests.get("https://api.master-setter.com/v1/sets",
    params={"lang": "id"}, headers={"Authorization": f"Bearer {os.environ['MS_API_KEY']}"})
print(r.json()["data"][0])

Use it from Claude Code, Cursor and other AI agents

There's a remote MCP server, so coding agents can call the catalog as tools: search_cards, get_card, list_cards_in_set, list_sets, get_set, and get_api_key for an agent that needs to sign itself up.

# Claude Code
claude mcp add --transport http master-setter https://api.master-setter.com/mcp \
  --header "Authorization: Bearer $KEY"
// Cursor: ~/.cursor/mcp.json
{ "mcpServers": { "master-setter": {
    "url": "https://api.master-setter.com/mcp",
    "headers": { "Authorization": "Bearer YOUR_KEY" } } } }

Endpoints

POST /v1/keysFree key, returned immediately
GET /v1/sets?lang=jaSets for a language, newest first, paginated
GET /v1/sets?id=ko-sv4aOne set, with card_count computed from the cards actually present
GET /v1/cards?id=en-base1-4One card with all of its printings (variants)
GET /v1/cards?set=zh-tw-sv1sEvery card in a set, by number
GET /v1/cards?q=…&lang=…Name search, in each card's own language

How we compare to other Pokémon APIs · Full spec: openapi.json (OpenAPI 3.1) · For AI assistants: llms.txt · llms-full.txt

Questions

Which Pokémon card API has Korean cards?

This one has 15,562 Korean cards across 239 sets, about twice the next-largest public source. The paid Pokémon APIs we've checked cover English and Japanese, and one adds Chinese; none has Korean.

Is there a Pokémon API for Thai or Indonesian cards?

Yes: 11,853 Thai cards (95 sets) and 11,937 Indonesian cards (94 sets), with names in Thai and Indonesian.

Does it cover Japanese and Chinese?

21,495 Japanese cards, 13,127 Traditional Chinese and 8,010 Simplified Chinese.

What's a "printing"?

One card in one language, finish and set: 1st Edition vs Unlimited, holo vs reverse holo. We model 272,054 of them, because that's what a scanner resolves and a collector actually owns.

Is it free?

1,000 requests a month free, forever. Need more? Email support@master-setter.com.

Does it include prices?

Not yet. Price data is coming as a paid add-on.

Does it include card images?

Yes, image URLs are included for 98% of cards.