cardcorpusPennySleeve ↗
Free and openEnglish · Japanese · ChinesePlain JSON

Every Pokémon card. Every printing. Linked.

The open dataset of the Pokémon TCG, and a scanner that names the exact print on your phone.

each dot ≈ 25 cards · each arc a link between printings
The data

The corpus

Every set, card and copy, with every printing linked to every other, in three languages.

66,494cards
105,237copies
75,723links between printings
FreeThe model

The scanner

Finds every card in the frame and names the exact print. On your phone, offline.

24 msto find every card
0.36 sto name a binder page
95.9%exact print, first try
[02]Tells

Spot the difference. Then filter on it.

Every copy says how to tell it apart, twice: in a sentence a collector can check against the card in their hand, and in fields a program can query.

Base Set Blastoise 2/102, 1st Edition
For people

“A 1st Edition symbol, and no shadow around the picture”

For programs
// Base Set Blastoise 2/102 · 1st Edition "apart": { "edition": "first_edition" }
100,546copies with a written tell
36,725with fields a program can filter
899sets with a tell of their own
[03]How it's made

Nobody had this. So we built it.

CardCorpus isn't a copy of another list. It's what's left after pulling 13 sources together, settling every place they disagree, and checking the cards by hand.

Pull together13 sources: archives, shops, fan databases and official sites
CompareField by field, in three languages
SettleEvery disagreement queued and decided on evidence
MatchEvery card to its reprints and its other languages
DescribeTells and write-ups, each citing its sources
13sources pulled together
75,723links between printings
5,235card, copy and set write-ups
5,132outside sources cited
[04]The scanner

Point. Shoot. Every card, named.

One card or a whole binder page in one photo. It names the exact print, not just the Pokémon, because it learned from every picture in CardCorpus. On your phone, offline, free.

LIVE0 ms
Alakazam
Alakazam · 1/102
Blastoise
Blastoise · 2/102
Chansey
Chansey · 3/102
Charizard
Charizard · 4/102
Clefairy
Clefairy · 5/102
Gyarados
Gyarados · 6/102
Hitmonchan
Hitmonchan · 7/102
Machamp
Machamp · 8/102
Magneton
Magneton · 9/102
1Find24 ms
Every card in the frame, at any angle.
2Straighten
Each card cut out and turned upright.
3Fingerprint+320 ms
4Name the print361 ms
1st Edition
Shadowless
Unlimited
4th print
024 ms · foundstraighten + fingerprint, all 9361 ms · named
Median times on an iPhone Air's Neural Engine over 25 photos. Slowed down here so you can watch.
24 msto find every card in a photo
22 msper frame in the live viewfinder
95.9%exact print, first try, on 641 vintage cards
~99kpictures it knows, all from CardCorpus
Built on CardCorpus

PennySleeve

The whole thing, made for collectors.

Browse every printing, scan your binders, keep your collection and check prices. The flagship app, built on everything above.

Open pennysleeve.app ↗
Every printingScan a binderYour collection
[05]Use it

Free. No key. Take all of it.

SoonLive JSON

Use it live

Every file at a stable URL. No key, no sign-up.

curl cardcorpus.com/v1/sets/international/base-set.json
SoonBulk

Take all of it

One export of every file, per release.

cardcorpus.com/downloads/cardcorpus-v1.tar.zst
Image CDN

Every picture

By id, at 240, 480 and 960 px, plus originals.

img.cardcorpus.com/s1/480/{id}.avif
Price CDN

Daily prices

TCGplayer and Cardmarket, keyed by our ids.

prices.cardcorpus.com/international/base-set.json
SoonSchemas

Every shape

A JSON Schema for every file.

cardcorpus.com/v1/schema/set.schema.json