Trading Card Game APIs Compared (2026)
Back to Blog
Comparison|2026-05-07|11 min read

Trading Card Game APIs Compared (2026)

A side-by-side comparison of the trading card game APIs developers actually use in 2026, game coverage, pricing data, authentication, free tiers, and what each one is genuinely good for.

The TCG market in 2026 is fragmented, fast-moving, and full of services that look interchangeable on a landing page but behave very differently the moment a developer tries to build something real. This guide is a structured walk through the trading card game APIs developers actually pull data from in 2026, what each one covers, what it costs, what its data model gets right, and where it falls down.

We compare six services in depth: TCG Price Lookup, Scryfall, the Pokemon TCG API, YGOPRODeck, the TCGPlayer API, and the Cardmarket API. For each, we look at game coverage, pricing data quality, authentication model, free tier, SDK ecosystem, and the kind of project the service is genuinely well-suited to. At the end, we map all six against common developer use cases, price tracker, collection manager, Discord bot, marketplace integration, so you can pick the right tool for the job rather than the loudest one.

This post is hosted on tcgpricelookup.com, which builds one of the services compared. We've tried to keep the analysis honest, including specific endpoints where each canonical API outperforms TCG Price Lookup. The data is what it is, and the conclusions follow from the data.


What "Good" Actually Means for a TCG API

Before comparing services, it helps to pin down what separates a usable TCG API from a frustrating one. After integrating the major options into production apps over the past three years, the same six dimensions keep deciding whether a project ships on time or stalls.

Game coverage. A multi-game TCG app needs multi-game data. An API that only covers one game forces stitching across multiple data sources, each with its own auth, schema, and pricing model. This is where most APIs in the space stop short.

Pricing data. Card text and images are commodity data. Pricing is where APIs differentiate. Real-time prices from at least one major marketplace, broken down by card condition, with historical trends, and ideally with graded values for collector-grade cards.

Authentication. A simple API key in a header is appropriate for read-only price lookups. OAuth flows make sense for marketplace apps acting on behalf of sellers, they're overkill for fetching a Charizard price.

Free tier. A real free tier with real data, not a 7-day trial, is what lets developers prototype, learn the API, and decide whether to commit before paying.

SDK ecosystem. Official, maintained SDKs in mainstream languages (TypeScript, Python, Go) save days of integration time per language. Community wrappers are a liability, they go stale, miss endpoints, and have no SLA.

Rate limit predictability. Clear, header-driven rate limits (X-RateLimit-Remaining, X-RateLimit-Reset) let developers implement clean backoff. Soft limits, hidden ceilings, and IP-level penalties create production risk.

These are the criteria the comparison below applies to each service.


The Six APIs at a Glance

APIGames coveredPricing dataAuthFree tierBest for
TCG Price Lookup8 (multi-game)TCGPlayer + eBay, condition + grade, historyAPI key header200 req/dayMulti-game pricing apps, portfolio tools
Scryfall1 (MTG)Aggregated, current onlyNoneUnlimited (10/sec)MTG-only deck and card text apps
Pokemon TCG API1 (Pokemon)NoneAPI keyUnlimitedPokemon-only apps that don't need pricing
YGOPRODeck1 (Yu-Gi-Oh!)Aggregated, currentNone20 req/sec then IP banYu-Gi-Oh! deck-builders
TCGPlayer APIMulti (marketplace)Marketplace SKU pricingOAuth 2.0None, apply for accessApproved marketplace integrations
Cardmarket APIMulti (EU-focused)Cardmarket marketplace, EUROAuth 1.0 HMACNone, partners onlyCardmarket seller tooling

Below, each service in detail.


TCG Price Lookup

The service this site builds. We'll cover what it's actually good at and where its boundaries are.

Game coverage. Eight games under a single API key: Pokemon (English and Japanese), Magic: The Gathering, Yu-Gi-Oh!, Disney Lorcana, One Piece Card Game, Star Wars: Unlimited, and Flesh and Blood. Around 300,000 cards indexed in total. This is the broadest single-key coverage available.

Pricing data. Two independent sources, TCGPlayer and eBay sold listings, pulled separately rather than blended. That means a developer can compare what's listed against what's actually transacting. Per-condition breakdowns from Near Mint through Damaged. Graded card values for PSA, BGS, and CGC across grades 1–10. Historical pricing in 7d / 30d / 90d / 1y windows.

Authentication. Single header: X-API-Key. No OAuth flows, no token refresh, no application process.

Free tier. 200 requests/day, no credit card. Covers all 8 games at TCGPlayer pricing, enough for prototypes and small hobby projects to ship.

SDK ecosystem. Five official SDKs maintained by the API team: JavaScript/TypeScript, Python, Go, Rust, PHP. All published to their language's package registry. All handle batch chunking, typed errors, and rate limit headers.

Rate limits. Daily quotas with headers on every response. No IP bans. 429 responses include retry-after timing.

import { TCGPriceLookup } from '@tcgpricelookup/sdk';

const client = new TCGPriceLookup({ apiKey: process.env.TCG_API_KEY });

const charizard = await client.cards.get('base1-4');
console.log(charizard.prices.near_mint.tcgplayer);  // current TCGPlayer price
console.log(charizard.prices.near_mint.ebay);       // recent eBay sold avg
console.log(charizard.graded.psa['10']);            // PSA 10 graded value

const trend = await client.cards.history('base1-4', { period: '90d' });

Where it falls short. TCG Price Lookup is a pricing API. For a deeply searchable rules-text index across every printing of every Magic card ever released, Scryfall is more comprehensive on the card text side. For a free, no-auth-needed lookup of a single Pokemon card's metadata in a hobby script, the Pokemon TCG API is faster to integrate.

Best for. Multi-game pricing apps, collection valuation tools, portfolio trackers, Discord bots that report prices, and anything where condition or graded data matters.

Get a free API key →


Scryfall

The community standard for Magic: The Gathering data. If a project is MTG-only and primarily about cards rather than prices, Scryfall is hard to beat for what it covers.

Game coverage. Magic: The Gathering exclusively. Roughly 90,000+ unique printings indexed.

Pricing data. Aggregated current prices from TCGPlayer and Cardmarket. Critically: no historical data and no graded data. The API returns one price per card per source, useful for "what is this card worth right now," not useful for charts, alerts, or trend analysis.

Authentication. None required. Public, free, generous.

Free tier. Effectively unlimited for normal use, with a community-norm rate limit of around 10 requests/second and a recommended 100ms delay between requests. Enforcement is "good faith" rather than technical, predictable for hobby use, less reliable as a production dependency for high-traffic apps.

SDK ecosystem. No official SDKs. Community wrappers exist in most languages but vary widely in maintenance status.

Where it shines. Card text, oracle text, set metadata, image URLs, advanced search syntax (color>=wu, format:modern, is:commander), and full card-face data for double-faced and split cards. The search query language is genuinely excellent, it's the closest thing to a full-text search engine for MTG cards that exists.

Where it falls short. No price history, no graded data, no Pokemon, no Yu-Gi-Oh!, no anything except MTG. Mandatory attribution ("Powered by Scryfall") is required for commercial apps.

Best for. MTG deckbuilders, MTG search tools, MTG card displays, anything where the data being displayed is card text and set info rather than pricing trends.


Pokemon TCG API (pokemontcg.io)

The community-maintained Pokemon-only API. Long-running, widely cited, frequently the first result a developer finds when searching for "Pokemon API."

Game coverage. Pokemon TCG only. Cards across all main sets and most promos.

Pricing data. None. Despite its prominence in search results, the Pokemon TCG API does not return prices. It returns card metadata (set, rarity, types, attacks, HP, images) but no pricing endpoint exists. Developers expecting prices because the API is named "Pokemon TCG API" are routinely surprised.

Authentication. API key header, free to obtain.

Free tier. Effectively unlimited, no usage caps published. Single-maintainer community project, so uptime is "best effort."

SDK ecosystem. No official SDKs. Several community wrappers in various states.

Where it shines. Card images, set information, ability text, and the kind of structured Pokemon-specific data needed for a Pokedex-style display. The data model is clean and consistent.

Where it falls short. The complete absence of pricing is the showstopper for any commerce-adjacent project. Single-maintainer project with no commercial SLA.

Best for. Pokemon-only display apps, Pokedex tools, set-completion trackers, anything where card information matters and prices don't.


YGOPRODeck

The community hub for Yu-Gi-Oh! data. The API is widely used in Yu-Gi-Oh! deck-building tools because nothing else covers the game's data structure with comparable depth.

Game coverage. Yu-Gi-Oh! only. All TCG and OCG cards, including alternate art variants.

Pricing data. Aggregated current prices from third-party Yu-Gi-Oh! marketplaces. No historical data, no graded values.

Authentication. None required.

Free tier. 20 requests/second. Important caveat: exceeding the rate limit triggers a 1-hour IP ban rather than a 429 response. For production apps, this means a botched retry loop or unexpected traffic spike can knock the integration offline for an hour with no graceful recovery. The risk is real, and any production deployment needs a hard local rate limiter.

SDK ecosystem. No official SDKs.

Where it shines. Card-level data unique to Yu-Gi-Oh!, archetype, link arrows, level/rank, summoning conditions, ban list status. The community has extended the schema in ways that map well to how Yu-Gi-Oh! players think about the game.

Where it falls short. Yu-Gi-Oh! only. Pricing is current-only and aggregated rather than primary-source. The IP ban penalty is operationally hostile.

Best for. Yu-Gi-Oh! deck-builders, ban list trackers, and archetype browsers, where the game's specific data model matters more than cross-game coverage or price history.


TCGPlayer API

TCGPlayer is the largest TCG marketplace in North America. Their API has authoritative TCGPlayer pricing data, and the highest barrier to entry of any service in this comparison.

Game coverage. Multi-game (TCGPlayer carries every major TCG), but exposed through a marketplace SKU model rather than a card-centric model.

Pricing data. TCGPlayer marketplace pricing, by-seller, by-listing, by-SKU. This is the source data that downstream services (including TCG Price Lookup, Scryfall, and others) ultimately reference for TCGPlayer prices.

Authentication. OAuth 2.0 with the full authorization code flow. Appropriate for apps acting on behalf of TCGPlayer sellers; significant overhead for apps that just want price data.

Free tier. None in the typical developer sense. Access to the API requires applying through a developer onboarding process. There is no published timeline for approval and no guaranteed approval. For an indie developer with a weekend project, this alone is usually disqualifying.

SDK ecosystem. No official SDKs. Documentation has been restructured multiple times.

Where it shines. When approved access is granted and a project genuinely needs marketplace-native data, seller inventory management, listing automation, marketplace analytics, there is no substitute. This is the real source.

Where it falls short. Application-gated access, OAuth complexity, SKU-oriented data model. The mapping from "card" to "set of SKUs across conditions and printings" requires substantial application logic, and a developer building a price-tracker is generally better served by an API that has already done that mapping.

Best for. Approved marketplace integrators, seller tools, large-scale TCG businesses with engineering resources to handle OAuth and SKU mapping.


Cardmarket API

Cardmarket is the dominant TCG marketplace in Europe. Its API is, if anything, even more difficult to integrate against than TCGPlayer's.

Game coverage. Multi-game, but with strongest data on European TCG markets, particularly Magic, Yu-Gi-Oh!, and Pokemon as bought and sold by EU collectors.

Pricing data. Cardmarket marketplace data, denominated in EUR only. Suitable for EU-facing apps; introduces FX complexity for global or US-facing apps.

Authentication. OAuth 1.0 with HMAC-SHA1 signatures. Every request requires canonicalized parameter ordering, a nonce, a timestamp, and an HMAC computation. This is a 2010-era authentication scheme that few modern HTTP clients support natively, and implementing it is a non-trivial chunk of any integration.

Free tier. None. Access is gated to active Cardmarket sellers and approved partners. Public developer onboarding does not exist.

SDK ecosystem. No official SDKs. A handful of community wrappers in PHP and Python.

Where it shines. When the project is specifically Cardmarket seller tooling, listing management, sales reconciliation, inventory sync, and the developer is already an approved partner, the API exposes data that no other source has.

Where it falls short. OAuth 1.0 HMAC, partner-gated access, EUR-only pricing, one-concurrent-request-per-operation-group. For any project not specifically about Cardmarket seller workflows, the integration cost vastly exceeds the value.

Best for. Cardmarket seller tools and EU-marketplace-specific projects where the developer already has approved access.


Decision Matrix: Which API for Which Project

The "best" API depends entirely on what's being built. Mapping the six services against common developer use cases:

Multi-game price tracker or portfolio tool, TCG Price Lookup is purpose-built for this, with multi-game coverage and price history under one key. Scryfall and the Pokemon TCG API alone don't have multi-game coverage; YGOPRODeck doesn't have history; TCGPlayer/Cardmarket APIs don't have self-serve access.

MTG-only deckbuilder, Scryfall is the right call. Best card text data, best search syntax, no auth ceremony. If pricing trends matter, layer TCG Price Lookup on top for the pricing side.

Pokemon-only Pokedex display, Pokemon TCG API for card data; layer in TCG Price Lookup if any pricing is needed.

Yu-Gi-Oh! deckbuilder or ban list tracker, YGOPRODeck for the game-specific schema. Add TCG Price Lookup for price history if the app shows pricing.

Discord bot reporting card prices, TCG Price Lookup. Multi-game support and price history are the table stakes for a useful price bot, and the SDKs handle batching cleanly.

Marketplace integration (seller tools), TCGPlayer API for North America, Cardmarket API for Europe. Both require approval. Plan for weeks of integration work and OAuth implementation.

Rapid prototype / hackathon project, Whichever API has the fastest path to data. For pricing in any volume, TCG Price Lookup's free tier and SDK speed-to-first-request is hard to match. For pure card text, Scryfall.


Summary

For a single-game project where pricing is incidental, a single-game API (Scryfall for MTG, the Pokemon TCG API for Pokemon, YGOPRODeck for Yu-Gi-Oh!) is often the right call.

For any multi-game project, or any project where price history and graded values matter, TCG Price Lookup is the option built for the use case, eight games, dual-source pricing, condition and grade breakdowns, full history, and five official SDKs accessible from a free tier with a single API key header.

For marketplace-native integrations, TCGPlayer's and Cardmarket's APIs remain the underlying source, at the cost of approval gates, OAuth flows, and SKU-mapping work most projects don't need.

Most developers in this space end up using two services: one for card text and game-specific metadata (Scryfall, Pokemon TCG API, or YGOPRODeck), and one for pricing data and history (TCG Price Lookup). That combination covers everything a typical TCG app actually needs.

Sign up for a free TCG Price Lookup API key →. For developer guides, SDK references, and integration tutorials, the documentation hub at tcgfast.com covers each SDK in depth.