Card Scry API Dev Portal

AI for Trading Cards

From image to instant insight.

Upload a photo of a trading card. Get structured data back in seconds.
Built for card sellers, shops, and developers who hate manual inventory.

Built by experienced AI & cloud engineers who operate a live TCG business.

Trading Card
Example Response
{
  "_headers": {...},
  "_status_code": 200,
  "data": {
    "alt_set_code": null,
    "card_number": "181",
    "game": "Pokemon",
    "language": "English",
    "name": "Adaman",
    "out_of": 189,
    "series": "Sword & Shield",
    "set": "Astral Radiance",
    "set_code": "swsh10",
    "variants": {...}
  }
}

Simple REST calls, clean structured data, ready for your system.

Try the API Demo

Select a card to see how Card Scry analyzes and returns structured data.

What Card Scry delivers

Developers and resellers use Card Scry to automate card identification and cataloging, typically to help automate inventory management and/or application development.

Instant Recognition

Upload a photo and receive card details—name, set, number, and more - within seconds.

Multi‑Game Support

Supports Magic: The Gathering, Pokémon, and Lorcana - with One Piece and Yu-Gi-Oh in Beta. We will expand to more as we grow.

High Accuracy

Our AI is fine‑tuned for trading cards to reduce false matches and deliver reliable identification for most major TCGs. We proudly provide a ~99% accuracy rate.

Clean, Structured Data

Every response comes as normalized JSON, making it easy to plug into inventory tools, Shopify, or custom databases.

Fast Integration

Simple REST endpoints mean you can get up and running in minutes—no SDKs or heavy setup required.

Marketplace Enrichment-Ready

Each card is returned with stable identifiers so you can instantly plug into pricing APIs like Scryfall or PokémonTCG.io.

Overall accuracy

~99%*

*Includes Warnings. Warnings indicate small, non‑blocking mismatches that can be procesed as-is or resubmitted. Most warnings don't re-appear if the image is re-submitted.

Accuracy at a glance

We evaluate on randomly sampled sets of 1,000 cards distributed evenly across supported games. Each prediction is compared to known truth. "Including Warnings" counts results that are correct after trivial normalization (e.g., leading zeros in card numbers, minor name/set normalization).

How we compare

Same randomized test • accuracy measured "including warnings"

Competitor: Overall 78.14% • Pokémon 79.9% • MTG 76.41%.

Developer‑friendly API

Card Scry is built for seamless automation. Send a POST request with an image; get rich card metadata in JSON. That's it.

Get API Access
Endpoints
  • POST /analyze — upload an image file
  • POST /analyze-base64 — submit base64‑encoded image
  • GET /health — service status
cURL Example
curl -X POST "https://api.cardscry.com/analyze" \
  -H "Ocp-Apim-Subscription-Key: <YOUR_KEY>" \
  -F "image=@card.jpg"

Normalized Response

{
  "_headers": {
    "Connection": "close",
    "Content-Length": "2565",
    "Content-Type": "application/json",
    "Date": "Fri, 07 Nov 2025 14:41:57 GMT",
    "Server": "Werkzeug/3.1.3 Python/3.11.13"
  },
  "_status_code": 200,
  "data": {
    "alt_set_code": null,
    "card_number": "181",
    "game": "Pokemon",
    "language": "English",
    "name": "Adaman",
    "out_of": 189,
    "series": "Sword & Shield",
    "set": "Astral Radiance",
    "set_code": "swsh10",
    "variants": {
      "firstEdition": false,
      "league_tournament": false,
      "misprint": false,
      "other_promo": false,
      "shadowless": false,
      "stampMcdonalds": false,
      "stampPokemonCenter": false,
      "stampPrerelease": false,
      "stampRegional": false,
      "stampWOTC": false
    }
  }
}

Simple pricing

Start free, scale as you grow.

Starter

For small collections or testing.

Free
Subscribe
  • Up to 250 lookups/month
  • Standard JSON output

Pro

For stores and power users.

$50/mo
Subscribe
  • Up to 10,000 lookups/month
  • Full API access

Enterprise

For large operations and platforms.

Custom
Contact Us
  • Dedicated resources
  • Custom integrations
  • SLAs and support

FAQ

What games are supported?

Currently optimized for Magic: The Gathering, Pokémon, and Lorcana with beta support for One Piece and Yu-Gi-Oh.

What's a "warning"?

A "warning" key is returned in the response when the data returned is not 100% validated by our database. An advantage to leveraging AI in our identification process means that when we have mistakes, there is usually still valid details in the response. This is especially true if you're submitting a particularly rare or unusual card that might struggle to be identified with most services.

Rather than simply rejecting these generations and returning an error, we determined that in practice many functions can still reliably use this information. For example, the card name is almost always correct. So if you're sorting by card names, you can fairly safely disreguard the warnings.

If you are doing more sensitive work that requires precision, you can re-submit your card after recieveing a "warning" and in the vast majority of cases a resubmitted card will be correctly identified without warnings the second time. You could also choose to retry a "warning" response once or twice before having a failback to use the provided response as a last resort.

It's really up to you, and your application use case.

Can I batch upload images?

No, currently our system is designed for sequential processing of images of individual cards, though we will be adding batch processing in the future.

How long does a request take?

Usually between 5 and 15 seconds, but you can sacrafice some accuracy for speed by sending "useFastMatch=true" in your request which will return responses in under 5 seconds. I suggest a client-side timeout of 60 seconds, anything longer than 30 seconds is very unusual.

Are there rate limits?

For now, yes. We allow one request every 5 seconds. Since 5 seconds is about as long a typical request takes to process, we're only supporting sequential requests at this time. Options for bulk processing will be coming in the future.

Is the service always available?

The service can always be accessed with one caveot. Occasionally under high use we might respond to your request with a 503 "AI Service Initializing, please try again in 10 minutes" message. This will occur when we simply do not have enough resources at the moment to handle more requests. The good news is, this message also means that more services are being stood up to process more requests. In practice, new resources will be available in 4 minutes from the first time you see that message.

As we grow, we hope to have more perminantely available resources so you should see this message less and less. We appreciate your understanding while we ramp up our infrastructure.

Do you store my images?

Images are processed temporarily for recognition and never stored or shared. We value your privacy and your data stays yours.

Contact Us

Address

Card Scry LLC
3120 Southwest Fwy Ste 101
PMB 748261
Houston, Texas 77098-4520 US

Phone

+1 (281) 938-1661

Email

support@cardscry.com

Support via Discord or Email

Need help? Join our Discord here or email support@cardscry.com