One trading card price API for 37 sources
TCGplayer and Cardmarket, sold comps from eBay and the auction houses, graded population reports, and shops in Japan, Brazil and Australia, each as JSON under one API key. Sources keep their own ids, currencies and condition scales, so this page says which one answers which question.
Every card source in the API, and what each one returns
Each row links to that source's own page with its full endpoint list. Blank cells mean we could not establish the fact, not that the answer is no. The tags mark which kinds of price a source publishes; the note under them says what is missing.
| Source | Market and currency | Games or sports | Returns |
|---|---|---|---|
| Price guides and value trackers | |||
| Collectr | USD, or 35 other currencies at Collectr's daily rate | Pokémon (English, Japanese, Chinese), Magic, Yu-Gi-Oh!, One Piece, Lorcana and 30+ more; for sports, basketball only (Panini 2018-21 rookies) | Price guidePrice historyGradedRaw and graded price per variant, about a year of daily history per grade. No population counts. |
| PriceCharting | USD, the site's own estimates | Pokémon, Magic, Yu-Gi-Oh!, One Piece, Lorcana; also video games, comics, coins, Funko and LEGO. No sports cards | Price guideSold pricesPrice historyGradedPrice per condition and grade, monthly history, the completed sales behind the estimate. |
| SportsCardsPro | USD | Baseball, basketball, football, hockey, soccer, racing, wrestling, UFC, boxing, golf, tennis | Price guideSold pricesPrice historyGradedPopulationEvery grade priced, monthly history, PSA and CGC population per grade. |
| Card Ladder | USD | Basketball, baseball, football, hockey, soccer, Pokémon, One Piece, Magic, Yu-Gi-Oh! and more | Price guideAsking pricesSold pricesPrice historyGradedPopulationCL Value per grade, per-day sales history, listings across marketplaces, market indexes, PSA certificate lookup. The individual sales list and full population report need a Card Ladder Pro account and are not included. |
| Alt | USD | Pokémon, One Piece, Yu-Gi-Oh!, Magic, sports and pop-culture cards | Price guideAsking pricesSold pricesPrice historyGradedPopulationAlt Value per grade with an error band, every recorded sale of a card, about a year of daily values, certificate lookup. |
| MTGGoldfish | USD (tabletop) and MTGO tix | Magic | Price guidePrice historyBuylistDaily history since release, vendor and buylist prices, metagame and decklists. Prices are listing-based; no completed sales. |
| MTGStocks | Each store's own currency, mostly USD and EUR | Magic | Price guideEvery offerPrice historyBuylistPrint-level daily history per store (TCGplayer back to 2012, Cardmarket back to 2017), current offers and buy prices at the stores it tracks. |
| Sold-price search | |||
| 130point | The currency each item sold in, with optional conversion | Trading cards and collectibles | Sold pricesAsking pricesKeyword search over eBay (with the accepted Best Offer price), Fanatics Collect, Goldin, Heritage, Pristine, MySlabs and Card Hobby. Grade read from the title; at most 200 sales per search. |
| eBay Sold Listings | The listing's currency | Sold pricesBy seller or item number, not by keyword. Covers any eBay item, not only cards. | |
| Marketplaces and stores, US and Europe | |||
| TCGplayer | US, USD | Magic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana, Flesh and Blood and 60+ product lines | Price guideAsking pricesEvery offerSold pricesPrice historyMarket price per condition, printing and language, every live listing with shipping, the 5 latest sales, up to a year of history. |
| Cardmarket | Europe, EUR | 21 games including Magic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana and Flesh and Blood | Price guideEvery offerPrice historyPrice guide (From, Trend, 30-, 7- and 1-day averages) per product or for a whole game. As of 2026-09-17 Cardmarket restricted automated access to its Pokémon pages: Pokémon search and set listings were unavailable, while price guide and offers still worked. |
| CardTrader | Europe, EUR or USD | 16 games including Magic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana and Flesh and Blood | Price guideEvery offerPrice historyCT Market Price with about 35 days of history, and every offer with condition, language, seller and seller country. No sold prices. |
| Card Kingdom | US, USD | Magic | Asking pricesBuylistSell price and stock per condition (NM, EX, VG, G), foil and non-foil; buylist in cash and store credit. No price history. |
| Graded marketplaces and auction houses | |||
| Goldin | USD | Pokémon, One Piece, Yu-Gi-Oh!, Magic, sports cards, sealed boxes, comics, memorabilia | Asking pricesSold pricesGradedLive lots, hammer prices back to 2012 with the buyer's premium percent, certificate number and bid history per lot. |
| Fanatics Collect | USD | Pokémon, One Piece, Magic, Yu-Gi-Oh!, basketball, baseball, football and more | Asking pricesSold pricesGradedPopulationLive and sold lots, sold price with and without buyer's premium, a sales archive back to 2012, population and certificate per lot. |
| MySlabs | US marketplace, USD | Baseball, basketball, football, hockey, soccer, Pokémon and other TCGs | Asking pricesSold pricesGradedLive slabs and auctions, and a sold archive with price and date. A certificate number appears only when the seller wrote it. |
| Courtyard | USD | Pokémon, One Piece, Magic, sports cards, sealed packs, comics, coins | Price guideAsking pricesSold pricesGradedBuylistVaulted slabs: fair market value, asks and bids, Courtyard's own buyback offer, on-chain sale history. |
| Japan | |||
| magi | Japan, JPY | Pokémon, One Piece, Yu-Gi-Oh!, Duel Masters, Magic, Weiß Schwarz and 200+ games | Asking pricesSold pricesPrice historyLive and sold listings, every sale per card, a daily chart up to 200 days. Grades are read from titles. |
| SNKRDUNK | Japanese resale market, USD on the English storefront | Trading cards (brands such as Pokémon, One Piece, Yu-Gi-Oh!) and sneakers | Asking pricesEvery offerGradedFloor price per grade (PSA 10, A to D) and every live listing. No sold prices or price history. |
| Suruga-ya | Japan, JPY including tax | Pokémon, Yu-Gi-Oh!, One Piece, Duel Masters, Weiß Schwarz, Magic and other collectibles | Asking pricesEvery offerGradedBuylistOwn price per condition and PSA slab, marketplace shops' offers, and a buy price when the shop prints one. |
| Card Rush | Japan, JPY including tax | Pokémon, One Piece, Yu-Gi-Oh!, Magic, Duel Masters, Battle Spirits, Digimon, Vanguard, Dragon Ball Fusion World, Shadowverse: Evolve | Asking pricesGradedBuylistSell price with condition and PSA grade, buying-price list for nine games. No price history. |
| Yuyu-tei | Japan, JPY | 24 games including Pokémon, Yu-Gi-Oh!, One Piece, Duel Masters and Weiß Schwarz. No Magic | Asking pricesBuylistSell price and exact stock, damaged copies listed apart, buy price with the earlier price when it was raised. |
| Hareruya | Japan, JPY | Magic | Asking pricesGradedBuylistPer language and condition (NM, SP, MP, HP) with weekly sales; buylist for Near Mint only. |
| Ka-nabell | Japan, JPY including tax | Pokémon, Yu-Gi-Oh!, Duel Masters | Asking pricesGradedBuylistPrice and stock per condition grade, copies sold in 7 and 30 days, buy price with how many it still wants. |
| Dorasuta | Japan, JPY | 31 games including Pokémon, Yu-Gi-Oh!, One Piece, Duel Masters, Magic, Weiß Schwarz, Digimon and Lorcana | Asking pricesBuylistTwo conditions per card (状態A and 状態C) with stock; buy price per condition. |
| Toretoku | Japan, JPY including tax | Yu-Gi-Oh!, Pokémon, Magic, Duel Masters, One Piece, Rush Duel, Weiß Schwarz | Asking pricesSold pricesBuylistPer condition rank (S, A to D) with stock, the latest 30 orders with the price paid, buylist for Yu-Gi-Oh! and Pokémon only. |
| BIGWEB | Japan, JPY | 29 games including Magic, Pokémon, Yu-Gi-Oh!, One Piece, Duel Masters and Weiß Schwarz | Asking pricesBuylistPrice per card and condition with stock; buy price per condition and how many it takes. |
| Card Labo | Japan, JPY including tax | Pokémon, Yu-Gi-Oh!, One Piece, Magic, Duel Masters, Weiß Schwarz, Vanguard, Battle Spirits and more | Asking pricesGradedBuylistSingles, graded slabs and sealed product with stock; buy price and how many it still wants. Matching a sale row to a buy-back row works on identical titles only. |
| Brazil | |||
| LigaMagic | Brazil, BRL | Magic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana, Flesh and Blood, Digimon, Star Wars Unlimited, Riftbound, Sorcery, Gundam, Vanguard, Dragon Ball | Price guideEvery offerBuylistMin, average and max per printing and finish, every store offer, buylist prices, movers. Sold prices are for the site's signed-in users; shipping is not in the offer list. |
| LigaPokemon | Brazil, BRL | Pokémon | Price guideEvery offerBuylistThe same guide, store offers and buylist as LigaMagic, for Pokémon. |
| LigaYugioh | Brazil, BRL | Yu-Gi-Oh! | Price guideEvery offerBuylistThe same guide, store offers and buylist as LigaMagic, for Yu-Gi-Oh!. |
| LigaOnePiece | Brazil, BRL | One Piece | Price guideEvery offerBuylistThe same guide, store offers and buylist as LigaMagic, for One Piece. |
| MYP Cards | Brazil, BRL | 24 games including Magic, Pokémon, Yu-Gi-Oh!, Lorcana and One Piece | Price guideEvery offerGradedLowest and average price, every seller offer, graded slabs with certificate. Price history is for signed-in users of the site. |
| Australia | |||
| Good Games | Australia, AUD | Pokémon, Magic, Lorcana, One Piece, Flesh and Blood and Riftbound singles, plus sealed product | Asking pricesPrice and stock per condition. No price history or buylist. |
| MTG Mate | Australia, AUD | Magic | Asking pricesBuylistPrice and stock per SKU, foil and non-foil apart, buylist in cash and store credit. The store does not grade condition. |
| Population and certification | |||
| CGC Cards | Pokémon, Magic, One Piece, Yu-Gi-Oh!, Lorcana and 450+ TCGs, sports and non-sports | GradedPopulationCGC only: certificate lookup and population at every grade. No prices. | |
| GemRate | Sports cards and TCGs (Pokémon, Magic, One Piece), graded by PSA, BGS, SGC and CGC | PopulationPopulation per grader and grade, gem rates, population history. No prices and no certificate lookup. | |
A card's market price depends on which market you ask
Each source computes its own figure, so two of them do not average into anything useful. TCGplayer's market price describes a Near Mint copy, with one figure per condition, printing and language. Cardmarket's From is the cheapest listed copy in any condition, while its Trend and 30-, 7- and 1-day averages are sell prices. PriceCharting and SportsCardsPro compute estimates from completed sales. Card Ladder, Alt and Courtyard each publish a value of their own.
| Source | Call | Returns |
|---|---|---|
| TCGplayer | POST /tcgplayer/v1/product/detail | Market price per printing and per SKU (condition, printing, language), lowest listing with and without shipping |
| Cardmarket | POST /cardmarket/v1/price_guide | A whole game in one call: lowest price, Trend and average sell prices from the daily price guide file |
| Cardmarket | POST /cardmarket/v1/product/detail | From, Trend and 30-, 7- and 1-day average sell prices for one product |
| CardTrader | POST /cardtrader/v1/product/detail | CT Min Price, CT Market Price, Best Deal and US Market Price |
| Collectr | POST /collectr/v1/product | Raw price of every variant and every graded price Collectr tracks |
| PriceCharting | POST /pricecharting/v1/product | Every condition and grade the site prices, with last change and sales volume |
| SportsCardsPro | POST /sportscardspro/v1/card | Every grade the site tracks, for sports cards |
| Card Ladder | POST /cardladder/v1/card_grades | The CL Value of every grade of one card, from Raw to PSA 10 |
| Alt | POST /altxyz/v1/card | Alt Value, confidence band and last sale for every grade |
| MTGGoldfish | POST /mtggoldfish/v1/card | Tabletop price in USD and MTGO price in tix for one Magic printing |
| MTGStocks | POST /mtgstocks/v1/print | Low, average, high, market and foil prices at each store it tracks, in that store's currency |
| SNKRDUNK | POST /snkrdunk/v1/prices_by_condition | Current floor price per grade, the figure a daily tracker stores |
| LigaMagic | POST /ligamagic/v1/card | Min, average and max in BRL per printing and finish |
What a card actually sold for, and what that number includes
Check what is inside a figure before comparing it. 130point reports auction-house prices with the buyer's premium included. Goldin returns the hammer price and the premium percent separately. Fanatics Collect returns the sold price with and without the premium. On eBay, the accepted Best Offer amount comes from 130point; the eBay source itself does not publish it.
| Source | Call | Returns |
|---|---|---|
| 130point | POST /130point/v1/search | Sold listings by keyword across eBay and six other sites, with the accepted Best Offer amount on eBay. At most 200 sales per search |
| eBay Sold Listings | POST /ebay-sold/v1/sold_item | One listing by item number: whether it sold, exact end time, final price. Full record for the last 3 to 4 months |
| eBay Sold Listings | POST /ebay-sold/v1/seller_sales | One seller's completed sales: title, item number, price paid |
| Alt | POST /altxyz/v1/card_sales | Every recorded sale of one card and grade, with marketplace and link |
| Alt | POST /altxyz/v1/sales | Sold listings across all cards, last ~90 days |
| Goldin | POST /goldin/v1/sold | Hammer price, buyer's premium percent and sale date, back to November 2012 |
| Fanatics Collect | POST /fanaticscollect/v1/sales_history | About 5.5 million sales since 2012, including PWCC auctions; the first 999 of a query are reachable |
| MySlabs | POST /myslabs/v1/sold | Sold slabs with price and date; meta.price_summary gives count, min, median, mean and max of the page |
| PriceCharting | POST /pricecharting/v1/sales | Up to 30 completed sales per condition, with marketplace |
| SportsCardsPro | POST /sportscardspro/v1/sales | Up to 30 completed sales per grade, with marketplace |
| TCGplayer | POST /tcgplayer/v1/product/sales | The 5 most recent sales, which is all TCGplayer shows without an account |
| magi | POST /magi/v1/sold | Realised prices on Japanese listings, buyer fee included |
| Courtyard | POST /courtyard/v1/sales | About the last 1,000 on-chain sales, each labelled marketplace or buyback |
| Toretoku | POST /toretoku/v1/recent_orders | The shop's 30 latest orders per game: card, condition rank, price paid |
CardTrader and SNKRDUNK publish no sold prices, and on the Liga sites they are for signed-in users. Cardmarket gives average sell prices here rather than a list of sales.
How far back each source goes, and how often it records a price
Depth and resolution both matter: a monthly point and a per-sale point are different series, and neither joins cleanly to the other.
| Source | Call | Depth | Resolution |
|---|---|---|---|
| TCGplayer | POST /tcgplayer/v1/product/price_history | Up to 12 months | Per SKU: daily for the last 30 days, then 3-day and weekly buckets |
| Cardmarket | POST /cardmarket/v1/product/detail | Last 30 days | Daily average sell price |
| CardTrader | POST /cardtrader/v1/product/detail | About 35 days | Daily CT market and US market price |
| Collectr | POST /collectr/v1/price_history | About a year | Daily per variant and grade; graded series have gaps |
| PriceCharting | POST /pricecharting/v1/price_history | From 2020-2021 for older cards, from release for new items | One point per month per condition |
| SportsCardsPro | POST /sportscardspro/v1/price_history | One point per month per headline grade | |
| Card Ladder | POST /cardladder/v1/card_price_history | Back to the card's first recorded sale | One point per sale day: average price and number of sales |
| Alt | POST /altxyz/v1/card_value_history | About a year | Daily Alt Value for one grade, with its error band |
| MTGGoldfish | POST /mtggoldfish/v1/price_history | Since the printing's release | Daily, tabletop USD and MTGO tix as two series |
| MTGStocks | POST /mtgstocks/v1/price_history | TCGplayer to 2012, Cardmarket to 2017 | Daily per store and price type |
| magi | POST /magi/v1/price_history | Up to 200 days | One point a day, plus every sale |
Suruga-ya, Card Rush, Yuyu-tei, Hareruya, BIGWEB, Card Labo, Toretoku, Card Kingdom and Good Games publish no price history, and Ka-nabell only the last price change. For those, call the current price on your own schedule and keep the series yourself.
A grade's price, a slab's certificate and a population count are three different lookups
Grades do not line up across companies. CGC 10 Pristine and CGC 10 Gem Mint are different grades, as are BGS 10 and BGS 10 Black Label. Collectr's grading_scales lists which grades it treats as equivalent, and GemRate's combined scale is GemRate's own.
Price in a given grade
| Source | Call | Returns |
|---|---|---|
| Collectr | POST /collectr/v1/product | PSA, BGS, CGC, TAG, ACE, ARS and AGS, with grade names such as CGC 10 Pristine and BGS 10 Black Label |
| PriceCharting | POST /pricecharting/v1/product | Ungraded, Grade 1 to 9.5, PSA 10, BGS 10, CGC 10, SGC 10 |
| SportsCardsPro | POST /sportscardspro/v1/card | 19 grades, from Ungraded to PSA 10, BGS 10 Black, CGC 10 Pristine, SGC 10, TAG 10 and ACE 10 |
| Card Ladder | POST /cardladder/v1/card_grades | Every grade of one card with its CL Value |
| Alt | POST /altxyz/v1/card | A grade ladder with each grade's Alt Value and last sale |
| SNKRDUNK | POST /snkrdunk/v1/prices_by_condition | Floor price for PSA 10 and the A to D raw grades |
Certificate lookup
| Source | Call | Returns |
|---|---|---|
| CGC Cards | POST /cgc/v1/cert_lookup | CGC only: card, set, grade as printed, date and photos when CGC has them |
| Card Ladder | POST /cardladder/v1/cert_lookup | PSA only: the slab's identity and the matching Card Ladder card with values and sales history |
| Alt | POST /altxyz/v1/cert_lookup | PSA, BGS, SGC and CGC: the card, the grade, the current Alt Value and every recorded sale of that slab Alt holds |
| Goldin | POST /goldin/v1/lot | Grading company, grade and certificate number on one lot |
| Fanatics Collect | POST /fanaticscollect/v1/item | Grader, grade, certificate and population on one listing |
| Courtyard | POST /courtyard/v1/search | Search the vault by certificate number |
130point publishes no certificate numbers and reads the grade from the title. On MySlabs a certificate appears only when the seller wrote it.
Population
| Source | Call | Returns |
|---|---|---|
| GemRate | POST /gemrate/v1/card | Population per grader and grade across PSA, Beckett, SGC and CGC, plus GemRate's combined scale |
| GemRate | POST /gemrate/v1/card_history | BGS and SGC weekly history; for PSA, weekly totals without dates or a grade split |
| CGC Cards | POST /cgc/v1/card_population | How many copies CGC graded at every grade, with gem rate and highest grade reached |
| CGC Cards | POST /cgc/v1/set_population | Every card CGC graded from one set, 50 a page |
| SportsCardsPro | POST /sportscardspro/v1/card | PSA and CGC population for grades 1 to 10 on sports cards |
| Alt | POST /altxyz/v1/card | Graded population of every grade of a card |
Collectr publishes no population counts, and CGC's population history over time is not published either.
What a shop pays is a different number from what it charges
A buylist price is a shop's offer to buy your card. Set against an asking price in another region it suggests a spread, but the two figures sit in different currencies and condition scales, so conversion, shipping and condition are yours to model. TCGplayer publishes no buylist, and neither does Good Games.
| Source | Call | Returns |
|---|---|---|
| Card Kingdom | POST /cardkingdom/v1/buylist | US, USD. Near Mint, cash and store credit, and how many copies it buys |
| MTG Mate | POST /mtgmate/v1/buylist | Australia, AUD. Cash and store credit and how many it wants; the hot list or one set |
| LigaMagic | POST /ligamagic/v1/buylist | Brazil, BRL. Per store and printing, with the discount for each condition and language |
| LigaPokemon | POST /ligapokemon/v1/buylist | Brazil, BRL. The same, for Pokémon |
| LigaYugioh | POST /ligayugioh/v1/buylist | Brazil, BRL. The same, for Yu-Gi-Oh! |
| LigaOnePiece | POST /ligaonepiece/v1/buylist | Brazil, BRL. The same, for One Piece |
| Hareruya | POST /hareruya/v1/buylist | Japan, JPY. Near Mint only, per language and foil |
| Suruga-ya | POST /surugaya/v1/buyback_search | Japan, JPY. By name, JAN or ISBN barcode, or model number. Null when the shop prints no price |
| Ka-nabell | POST /kanabell/v1/buyback_search | Japan, JPY. Top condition, the percent paid for lower ones, and how many it still wants |
| Dorasuta | POST /dorasuta/v1/buyback_search | Japan, JPY. Buy price and the most it takes per order |
| Toretoku | POST /toretoku/v1/buyback_search | Japan, JPY. A-rank copy, Yu-Gi-Oh! and Pokémon only |
| BIGWEB | POST /bigweb/v1/buyback_search | Japan, JPY. Price per card and condition and how many it takes |
| Card Labo | POST /cardlabo/v1/buyback_search | Japan, JPY. Buy price and how many it still wants |
| Card Rush | POST /cardrush/v1/buying_prices | Japan, JPY. Nine games, one price per card rather than per condition |
| Yuyu-tei | POST /yuyu-tei/v1/buy_prices | Japan, JPY. Same card id as the sell side, and the earlier price when it was raised |
| Courtyard | POST /courtyard/v1/asset | USD. Every bid on a vaulted slab, with Courtyard's own instant buyback offer flagged |
Every offer on a card, and what the cheapest one hides
The lowest ask can be a damaged copy, a copy in another language or, on sealed product, a part of the box. On the Liga sites and MYP Cards the guide minimum is not always the cheapest copy. Shipping differs too: TCGplayer returns price, shipping and their sum; CardTrader only a shipping “from” price; Cardmarket, the Liga sites and MYP Cards have no shipping in the offer list.
| Source | Call | Returns |
|---|---|---|
| TCGplayer | POST /tcgplayer/v1/product/listings | Every live listing, 50 a page: price, shipping, condition, printing, language, seller rating |
| Cardmarket | POST /cardmarket/v1/product/offers | Condition, card language, foil, signed, first edition, seller type and country |
| CardTrader | POST /cardtrader/v1/product/offers | Up to 1,000 offers a call, per ship-to country, with seller price and CardTrader's buyer fee |
| LigaMagic | POST /ligamagic/v1/card | Every store offer with stock, condition, language and the store's rating, in BRL |
| MYP Cards | POST /mypcards/v1/card | Every seller offer with units, condition, language and finish, in BRL |
| SNKRDUNK | POST /snkrdunk/v1/product/listings | Every live listing with its grade; recently sold ones are flagged |
| Suruga-ya | POST /surugaya/v1/offers | Marketplace shops with price, condition note, stock and shipping time |
| Card Ladder | POST /cardladder/v1/listings | Active listings tracked across eBay, Fanatics, Goldin, Heritage, MySlabs, Pristine and more |
| Alt | POST /altxyz/v1/listings | Alt, eBay, Fanatics, Goldin, Pristine and CardHobby listings, with bids, grade and population |
| 130point | POST /130point/v1/live_search | Live auctions by keyword across eBay, Fanatics Collect, Goldin, Heritage, Pristine and MySlabs |
| Goldin | POST /goldin/v1/search | Running and upcoming lots with current bid, bid count, end time and buyer's premium |
| Fanatics Collect | POST /fanaticscollect/v1/search | Weekly, Premier and Buy Now lots with bids, end time, grader and certificate |
| MySlabs | POST /myslabs/v1/search | Live slabs, auctions and private deals with exact totals |
| Courtyard | POST /courtyard/v1/search | Every vaulted item with grader, grade, certificate and buy-now price |
An id from one source means nothing at another
- Identifiers
- TCGplayer's
product_idand Cardmarket'sproduct_idare separate numbering systems, and so are Card Ladder's and Alt'scard_id. Build your own key from set, collector number, language and finish. That key will have holes: Dorasuta's card number is read from the name and absent on Yu-Gi-Oh! and Magic, and MySlabs has no structured year or number at all. PriceCharting'sproductdoes carry a TCGplayer id. - Currencies
- USD, EUR, JPY, BRL, AUD and MTGO tix come back as the source publishes them. Nothing is converted unless the source does it. Suruga-ya, Card Rush, Ka-nabell, Toretoku and Card Labo give prices including tax. We have not verified that for the other Japanese sources, so check before comparing two yen prices.
- Condition scales
- Cardmarket runs from Mint to Poor. TCGplayer uses Near Mint, Lightly Played and so on. Card Kingdom uses NM, EX, VG and G, Hareruya NM, SP, MP and HP. Toretoku ranks S and A to D, Dorasuta only 状態A and 状態C, and MTG Mate does not grade at all. No scale here maps onto another; that mapping is a rule you write yourself.
The call and the shape that comes back
TCGplayer's product detail for one Base Set Charizard. Every engine answers with the same envelope: branch on ok, read data. The response below is a real recorded one, shortened to the price fields.
curl -X POST https://api.reefapi.com/tcgplayer/v1/product/detail \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"product_id":"42382"}'{
"ok": true,
"data": {
"product": {
"product_id": 42382,
"name": "Charizard",
"game": "Pokemon",
"set": "Base Set",
"number": "004/102",
"rarity": "Holo Rare",
"currency": "USD",
"market_price": 882.02,
"lowest_price": 183.58,
"listings_count": 143
},
"skus": [
{
"sku_id": 2999652,
"condition": "Near Mint",
"printing": "Holofoil",
"language": "English",
"market_price": 882.02,
"market_price_low": 426.5,
"market_price_high": 1499.65,
"market_price_sample_size": 13,
"market_price_calculated_at": "2026-09-14T22:58:11Z"
},
{
"sku_id": 2999653,
"condition": "Lightly Played",
"printing": "Holofoil",
"language": "English",
"market_price": 535.43,
"market_price_low": 444.99,
"market_price_high": 678.38,
"market_price_sample_size": 25,
"market_price_calculated_at": "2026-09-15T14:34:36Z"
}
],
"latest_sales": [
{
"sold_at": "2026-09-16T03:09:33Z",
"price": 381.4,
"shipping_price": 0,
"price_with_shipping": 381.4,
"currency": "USD",
"quantity": 1,
"condition": "Moderately Played",
"printing": "Holofoil",
"language": "English",
"listing_type": "standard",
"title": "Charizard"
}
]
}
}Questions from people wiring up card data
What each call costs is on the pricing page.
Can I get an official TCGplayer or Cardmarket API key instead?▾
As of our last read on 2026-09-27, not as a new applicant. TCGplayer's developer docs say “We are no longer granting new API access at this time”, and Cardmarket's help page says “Currently, we are not accepting applications for access to the Cardmarket API”. If you already hold credentials from before those programmes closed, they are first-party and yours to keep using.
Can I search eBay sold prices by keyword?▾
Not through sold_item or seller_sales: eBay keeps keyword search of sold listings for signed-in users, so that source works from an item number or a seller. For a keyword search use 130point's search, which covers eBay and the auction sites listed above.
Which sources can check a PSA, BGS, SGC or CGC certificate number?▾
Alt's cert_lookup accepts PSA, BGS, SGC and CGC. Card Ladder's cert_lookup is PSA only, and CGC's own cert_lookup is CGC only. GemRate has no certificate lookup.
Are prices converted to one currency?▾
No. Each source answers in its own currency, shown in the table. A few can do more: Collectr returns other currencies at its own daily rate, 130point adds a converted price next to the original, and CardTrader sells in EUR or USD, where the USD figure is its own price rather than a conversion.
Can I refresh prices for a large catalogue in bulk?▾
Some sources make that practical. Cardmarket's price_guide returns a whole game in one call, refreshed once a day, and takes your own product ids. SNKRDUNK's products/batch takes up to 30 products. MTGGoldfish set and MTG Mate set return a whole set of Magic cards. Otherwise it is one call per card.
Try it on a card you actually track
Start with the source closest to your market, then add the others one at a time. Every source shares one key and one balance.
Every endpoint named on this page was in the live catalog on 2026-11-08. Coverage notes come from each source's published API page, measured between September and November 2026. Site names belong to their owners; ReefAPI is not affiliated with them.