About & method
What this is
The Pokémon TCG singles catalogue with something the marketplaces do not have: a language-independent identity for every card. TCGplayer and Cardmarket both model a card as an English product; a card printed in French, German, Spanish, Italian or Portuguese is then either invisible or listed as a shadow of the English one. Here, one card is one thing, and its printed names in every language hang off that single identity — 28,209 cards across 214 sets, priced in USD and EUR. No account, no paywall, no login wall to read a card name.
Every card, in every printed language
Each card carries a stable identity that resolves to 6 printings worth of content: the printed name, attack names, effect text, flavour text and the scan of the card as printed — not a translation we wrote, but the text that is on the cardboard in that market. The card page has a language switcher, so /kaart/<card>?lang=fr is a real French page you can link to and search engines can index separately.
Worked example — the card that made the case for this:
- ENHisuian GrowlitheEnglish
- FRCaninos de HisuiFrançais
- DEHisui-FukanoDeutsch
- ESGrowlithe de HisuiEspañol
- ITGrowlithe di HisuiItaliano
- PTGrowlithe de HisuiPortuguês
One card, one identity, 6 printed names. Searching any of them finds this page — including in the catalogue search, which falls back to the other five languages when an English query comes up empty.
Identity resolved for 23,071 of the 28,209 products in the catalogue (81.8%). The rest are TCGplayer-only listings with no counterpart in any print-language source — World Championship decks, jumbo cards, prize packs — and they are shown as such rather than quietly dropped.
Where the data comes from
- Card names, text, scans (6 languages) — TCGdex's open card database (MIT), cloned and parsed here. Community-maintained, with the printed text in each language rather than machine translation.
- USD prices & the product catalogue — TCGplayer via TCGCSV, which republishes TCGplayer's daily product and price dumps as open JSON.
- EUR prices — Cardmarket's own public product catalogue and daily price guide downloads. No scraping, no API key, no rate-limit games for any of the three sources.
How a card gets one identity
The strongest evidence first: a product's TCGplayer id is matched to the source card that already cites that same id. Where that fails, the card is matched on set plus card number with the name cross-checked — tolerating the decorative suffixes TCGplayer adds (Electivire LV.X vs Electivire, Nidoran F vs Nidoran♀) and the different zero-padding the two catalogues use (082 vs 82). Every join records which method resolved it, and unmatched products are counted and sampled in the daily report rather than silently discarded — that is how the coverage figure above stays honest.
How the prices work
US dollars, from TCGplayer's marketplace aggregates for each print variant:
- Market — TCGplayer's own weighted recent-sales figure. This is the headline number on every card.
- Low / Mid / High — the cheapest, median and most expensive listing currently on the marketplace.
- The catalogue price is the cheapest market price across a card's print variants, so a Reverse Holofoil-only bargain still surfaces. Where TCGplayer reports no market price at all, the card falls back to its mid price and the card page says so.
Euros, from Cardmarket's public price guide (12,742 cards priced, guide dated 2026-11-02): average, low, trend, 7-day and 30-day figures per Cardmarket product, shown on the card page next to the dollar table.
One honest limit. Neither marketplace publishes prices per print language — Cardmarket's product list is one product per card, and we can measure that the same product carries the same euro figure for the English, French, German, Italian and Spanish printings. So the EUR numbers here are per card, not “what a French copy costs”. Listing-level, per-language pricing does not exist as open data anywhere; we show what does exist instead of inventing a split. Condition grades and graded slabs are out of scope the same way — every price is for a raw copy as the marketplace reports it.
Freshness
The catalogue is rebuilt from the source dumps once a day. Current snapshot: 2026-11-02 — 27,627 of 28,209 cards with a USD price, EUR data on 12,747 Cardmarket products. A daily snapshot of every card is stored, which is what the price-history chart on each card page is built from.
Open by default
The catalogue and the multilingual content are served from plain JSON endpoints, no key and no account:
- /api/cards — every card, its print variants and its identity id.
- /api/lookup?q= — the multilingual name search (accent- and punctuation-insensitive) behind the catalogue's fallback.
The identity layer itself is the point: if another project wants to build on “one card, six names”, the mapping is here rather than locked behind the search box.
What we deliberately do not build
Deck builders, card scanners, AI grading, price alerts, forums, VR binders. Those are crowded, expensive to run well, and none of them is the reason someone cannot find a card. The gap that is still open is the boring one: a card is a card in every language, and the prices should say which currency they are in and where they came from. That is what this is.
Scope & caveats
- Singles only — sealed product (booster boxes, ETBs, tins) is deliberately not listed.
- Western print languages: English, French, German, Spanish, Italian and Portuguese. Japanese and other Asian printings are not included.
- Coverage is not uniform and the numbers on this page are the real ones: names and card text are near-complete across the six languages, while a shop price exists for roughly half of all printings in either currency — cards that were never traded enough for a marketplace average simply have no price, in either currency.
- Not affiliated with, endorsed by or connected to Nintendo, Creatures Inc. or The Pokémon Company. Pokémon and all card names are trademarks of their respective owners; images are served from TCGplayer's CDN and TCGdex's asset host.