Fake check
Send a photo of a card's front (and ideally its back) and we look for red flags that it's counterfeit. The same check is available as the GraphQL field checkAuthenticity, the MCP tool check_authenticity, the CLI command raritydb fake-check and the Studio's Check for fakes mode.
query($front: String!, $back: String) {
checkAuthenticity(front: $front, back: $back) {
verdict card { code name set { name } }
redFlags { kind seen expected severity source confidence }
checked notChecked physicalChecks disclaimer
}
}
raritydb fake-check front.jpg --back back.jpg
It never says "genuine"
| Verdict | Meaning |
|---|---|
LIKELY_FAKE |
At least one strong red flag, or two medium ones. |
NO_RED_FLAGS |
Everything we could check matches the real card. This isn't proof the card is real. |
CANT_TELL |
The card wasn't recognised, there's no scan of the real card to compare with, too little of it could be read, or there's a single medium red flag (worth a closer look, not enough on its own). |
A photo can't show a card's texture, thickness, weight or how it behaves in the light test. Good fakes exist. For valuable cards, use a grading company. Every result lists physicalChecks to do in person.
What's checked
- Does the card exist? The card is identified first (see Identify a card from a photo). A card number that doesn't exist in the set it claims is a strong red flag.
- The printed text against our catalog: HP, attack names and damage, ability names, weakness, retreat cost and illustrator. Wrong numbers or names are strong red flags; illustrator and weakness are medium. Small reading slips (one or two letters) aren't counted, and anything we couldn't read is listed under
notChecked, never as a flag. - The photo against a scan of the real card, by a vision model with a checklist of known tells: fonts, energy and set symbols, spelling and grammar, colours, border and layout, finishes the card was never printed with (gold "metal", rainbow), blurry printing, and the back's blue, logo and Poké Ball. Lighting, glare, sleeves and wear don't count.
- Graded slabs: when the photo shows a slab label, a cert number its grader can't have issued is a medium red flag (
slab). A well-formed cert proves nothing, since fakes copy real ones, sonotCheckedlinks to the grader's verification page to check it shows this card and grade. - Measured colour: the border's colour against the real card's. Lighting changes colour too, so this only ever appears in
notes, along with any other weak observation: shown, but never deciding the verdict.
Each red flag says what the photo shows, what the real card has, how serious it is (strong or medium) and where it came from (catalog, visual, back or slab).
Taking the photos
Out of the sleeve, sharp and evenly lit, with the card filling most of the frame so the small print (HP, damage, illustrator) is readable. Photograph the back too: many fakes give themselves away there.
Limits
- Recognisable cards only. A card we can't identify, or have no scan of, comes back
CANT_TELL. - No trained model. Nothing is trained on community posts. Studio users can tell us what a card turned out to be and, if they agree, let us use the photo to improve the checks.
- Good at: fakes with wrong printed numbers or names, misspellings, wrong fonts and made-up card numbers.
- Weak at: fakes that are a faithful copy with slightly off colours, or a blurry, low-resolution print. Lighting and camera blur look the same in a photo, so these often come back
NO_RED_FLAGS. That's one more reason a clean result isn't proof. - Accuracy: on synthetic forgeries of 12 Scarlet & Violet cards, no genuine card was flagged. Every changed HP and every misspelled name was caught; 1 of 3 colour-shifted and 0 of 3 low-resolution copies were. It will be measured against real fakes before launch.
This page as Markdown: /docs/authenticity.md