TCGplayer · Marketplace catalog and pricing
TCGplayer API alternative — card data without the partner gate
The TCGplayer API is a marketplace API: excellent prices, but it requires partner approval and models products rather than cards. TCGGraph gives you game-native card data with prices from five marketplaces and a key you can create yourself.
What TCGplayer API does well
- Authoritative pricing for the largest US card marketplace.
- Deep SKU-level data covering condition, printing and language.
- Direct cart and affiliate integration if commerce is your business model.
- Enormous catalog breadth across games and sealed product.
Where TCGGraph differs
- TCGplayer requires partner approval, which takes time and is not granted to every applicant. TCGGraph keys are self-service and immediate.
- It models marketplace products, not game cards. There is no HP, no mana cost, no ban list — you would join that data yourself.
- It prices one market. TCGplayer is North America, so a European seller or a European collection tracker gets numbers from a marketplace their users cannot buy on. TCGGraph carries the Cardmarket quote in EUR on the same card.
- TCGGraph normalises prices across five marketplaces, so you are not exposed to a single market's quirks.
- We keep game-native fields as first-class data, which is what a deck builder or collection tracker actually needs.
Side by side
Feature comparison
| Feature | TCGplayer API | TCGGraph |
|---|---|---|
| Self-service API key | Partner approval | |
| Game-native card fields | ||
| Games covered | Catalog-wide SKUs | 8 games, modelled |
| Price sources | TCGplayer | 5 sources |
| European prices (Cardmarket) | All 8 games, in EUR | |
| Format legality | ||
| Cart and affiliate links | ||
| GraphQL |
When to use TCGplayer API instead
If you are building commerce — carts, affiliate links, seller tooling — go direct to TCGplayer. Their pricing is authoritative for the US market and the affiliate economics only work first-party. TCGGraph is for products that need to understand cards as game objects, not as SKUs.
Signals
When it is worth switching
None of these are reasons on their own. Two or three together usually are.
- You want card data as well as commerce data, without joining two catalogues by name and hoping.
- You are not a TCGplayer seller and do not need order management, just prices and card details.
- You need European prices, which TCGplayer does not cover.
- The approval process and its requirements do not fit how you want to build.
Migration
Moving off TCGplayer API, step by step
The honest version, including the parts that are not one-to-one.
Step 1
Decide what you actually need
This is the one comparison where the two products barely overlap. TCGplayer's API is a commerce API: inventory, orders, listings, seller operations. If you are running a store on TCGplayer, you need it and we do not replace it. If you only ever wanted prices and card data, you have been using a commerce API as a card database.
Step 2
Replace product lookup with card lookup
TCGplayer productId identifies a sellable SKU. Our card id identifies a printing, and we carry the TCGplayer product id alongside it, so you can join back to your existing data rather than rebuilding the mapping.
Step 3
Broaden the price picture
TCGplayer market price becomes one source among five. If you want to keep behaving exactly as before, read the TCGplayer source and ignore the others. If you sell into Europe, Cardmarket is the number that matters and it is now available in the same call.
Step 4
Keep TCGplayer for anything transactional
Nothing here touches listings, orders or fulfilment. Teams that switch generally keep the TCGplayer API for commerce and use us for the catalogue and price history — those are different jobs.
Field mapping
What each field becomes
The part that takes the longest is discovering that TCGplayer API spells the same concept differently. Here it is, written down.
| TCGplayer API | TCGGraph | Notes |
|---|---|---|
| productId | externalIds.tcgplayer | Carried on every card so you can join both ways. |
| groupId | set.code | Their group is roughly our set. |
| marketPrice | prices[].market | One of five sources rather than the only one. |
| lowPrice | prices[].low | Same definition, per source. |
| extendedData | gameData | Typed per game rather than a name/value list. |
| imageUrl | images.large | Ours is unmetered and has more sizes. |
| — (not available) | legalities | Format legality is not part of a commerce API. |
| — (not available) | prices[].history | Daily series back to 2019. |
FAQ
Common questions
Anything else, email hello@tcggraph.com. We will tell you if the answer is that you should stay where you are.
More comparisons