Reef AI: ask for any data. Try it
Trading cards and collectibles

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.

SourceMarket and currencyGames or sportsReturns
Price guides and value trackers
CollectrUSD, or 35 other currencies at Collectr's daily ratePoké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.
PriceChartingUSD, the site's own estimatesPokémon, Magic, Yu-Gi-Oh!, One Piece, Lorcana; also video games, comics, coins, Funko and LEGO. No sports cardsPrice guideSold pricesPrice historyGradedPrice per condition and grade, monthly history, the completed sales behind the estimate.
SportsCardsProUSDBaseball, basketball, football, hockey, soccer, racing, wrestling, UFC, boxing, golf, tennisPrice guideSold pricesPrice historyGradedPopulationEvery grade priced, monthly history, PSA and CGC population per grade.
Card LadderUSDBasketball, baseball, football, hockey, soccer, Pokémon, One Piece, Magic, Yu-Gi-Oh! and morePrice 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.
AltUSDPokémon, One Piece, Yu-Gi-Oh!, Magic, sports and pop-culture cardsPrice 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.
MTGGoldfishUSD (tabletop) and MTGO tixMagicPrice guidePrice historyBuylistDaily history since release, vendor and buylist prices, metagame and decklists. Prices are listing-based; no completed sales.
MTGStocksEach store's own currency, mostly USD and EURMagicPrice 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
130pointThe currency each item sold in, with optional conversionTrading cards and collectiblesSold 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 ListingsThe listing's currencySold pricesBy seller or item number, not by keyword. Covers any eBay item, not only cards.
Marketplaces and stores, US and Europe
TCGplayerUS, USDMagic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana, Flesh and Blood and 60+ product linesPrice 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.
CardmarketEurope, EUR21 games including Magic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana and Flesh and BloodPrice 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.
CardTraderEurope, EUR or USD16 games including Magic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana and Flesh and BloodPrice 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 KingdomUS, USDMagicAsking 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
GoldinUSDPokémon, One Piece, Yu-Gi-Oh!, Magic, sports cards, sealed boxes, comics, memorabiliaAsking pricesSold pricesGradedLive lots, hammer prices back to 2012 with the buyer's premium percent, certificate number and bid history per lot.
Fanatics CollectUSDPokémon, One Piece, Magic, Yu-Gi-Oh!, basketball, baseball, football and moreAsking pricesSold pricesGradedPopulationLive and sold lots, sold price with and without buyer's premium, a sales archive back to 2012, population and certificate per lot.
MySlabsUS marketplace, USDBaseball, basketball, football, hockey, soccer, Pokémon and other TCGsAsking pricesSold pricesGradedLive slabs and auctions, and a sold archive with price and date. A certificate number appears only when the seller wrote it.
CourtyardUSDPokémon, One Piece, Magic, sports cards, sealed packs, comics, coinsPrice guideAsking pricesSold pricesGradedBuylistVaulted slabs: fair market value, asks and bids, Courtyard's own buyback offer, on-chain sale history.
Japan
magiJapan, JPYPokémon, One Piece, Yu-Gi-Oh!, Duel Masters, Magic, Weiß Schwarz and 200+ gamesAsking pricesSold pricesPrice historyLive and sold listings, every sale per card, a daily chart up to 200 days. Grades are read from titles.
SNKRDUNKJapanese resale market, USD on the English storefrontTrading cards (brands such as Pokémon, One Piece, Yu-Gi-Oh!) and sneakersAsking pricesEvery offerGradedFloor price per grade (PSA 10, A to D) and every live listing. No sold prices or price history.
Suruga-yaJapan, JPY including taxPokémon, Yu-Gi-Oh!, One Piece, Duel Masters, Weiß Schwarz, Magic and other collectiblesAsking pricesEvery offerGradedBuylistOwn price per condition and PSA slab, marketplace shops' offers, and a buy price when the shop prints one.
Card RushJapan, JPY including taxPokémon, One Piece, Yu-Gi-Oh!, Magic, Duel Masters, Battle Spirits, Digimon, Vanguard, Dragon Ball Fusion World, Shadowverse: EvolveAsking pricesGradedBuylistSell price with condition and PSA grade, buying-price list for nine games. No price history.
Yuyu-teiJapan, JPY24 games including Pokémon, Yu-Gi-Oh!, One Piece, Duel Masters and Weiß Schwarz. No MagicAsking pricesBuylistSell price and exact stock, damaged copies listed apart, buy price with the earlier price when it was raised.
HareruyaJapan, JPYMagicAsking pricesGradedBuylistPer language and condition (NM, SP, MP, HP) with weekly sales; buylist for Near Mint only.
Ka-nabellJapan, JPY including taxPokémon, Yu-Gi-Oh!, Duel MastersAsking pricesGradedBuylistPrice and stock per condition grade, copies sold in 7 and 30 days, buy price with how many it still wants.
DorasutaJapan, JPY31 games including Pokémon, Yu-Gi-Oh!, One Piece, Duel Masters, Magic, Weiß Schwarz, Digimon and LorcanaAsking pricesBuylistTwo conditions per card (状態A and 状態C) with stock; buy price per condition.
ToretokuJapan, JPY including taxYu-Gi-Oh!, Pokémon, Magic, Duel Masters, One Piece, Rush Duel, Weiß SchwarzAsking 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.
BIGWEBJapan, JPY29 games including Magic, Pokémon, Yu-Gi-Oh!, One Piece, Duel Masters and Weiß SchwarzAsking pricesBuylistPrice per card and condition with stock; buy price per condition and how many it takes.
Card LaboJapan, JPY including taxPokémon, Yu-Gi-Oh!, One Piece, Magic, Duel Masters, Weiß Schwarz, Vanguard, Battle Spirits and moreAsking 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
LigaMagicBrazil, BRLMagic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana, Flesh and Blood, Digimon, Star Wars Unlimited, Riftbound, Sorcery, Gundam, Vanguard, Dragon BallPrice 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.
LigaPokemonBrazil, BRLPokémonPrice guideEvery offerBuylistThe same guide, store offers and buylist as LigaMagic, for Pokémon.
LigaYugiohBrazil, BRLYu-Gi-Oh!Price guideEvery offerBuylistThe same guide, store offers and buylist as LigaMagic, for Yu-Gi-Oh!.
LigaOnePieceBrazil, BRLOne PiecePrice guideEvery offerBuylistThe same guide, store offers and buylist as LigaMagic, for One Piece.
MYP CardsBrazil, BRL24 games including Magic, Pokémon, Yu-Gi-Oh!, Lorcana and One PiecePrice guideEvery offerGradedLowest and average price, every seller offer, graded slabs with certificate. Price history is for signed-in users of the site.
Australia
Good GamesAustralia, AUDPokémon, Magic, Lorcana, One Piece, Flesh and Blood and Riftbound singles, plus sealed productAsking pricesPrice and stock per condition. No price history or buylist.
MTG MateAustralia, AUDMagicAsking 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 CardsPokémon, Magic, One Piece, Yu-Gi-Oh!, Lorcana and 450+ TCGs, sports and non-sportsGradedPopulationCGC only: certificate lookup and population at every grade. No prices.
GemRateSports cards and TCGs (Pokémon, Magic, One Piece), graded by PSA, BGS, SGC and CGCPopulationPopulation per grader and grade, gem rates, population history. No prices and no certificate lookup.
Current market price

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.

SourceCallReturns
TCGplayerPOST /tcgplayer/v1/product/detailMarket price per printing and per SKU (condition, printing, language), lowest listing with and without shipping
CardmarketPOST /cardmarket/v1/price_guideA whole game in one call: lowest price, Trend and average sell prices from the daily price guide file
CardmarketPOST /cardmarket/v1/product/detailFrom, Trend and 30-, 7- and 1-day average sell prices for one product
CardTraderPOST /cardtrader/v1/product/detailCT Min Price, CT Market Price, Best Deal and US Market Price
CollectrPOST /collectr/v1/productRaw price of every variant and every graded price Collectr tracks
PriceChartingPOST /pricecharting/v1/productEvery condition and grade the site prices, with last change and sales volume
SportsCardsProPOST /sportscardspro/v1/cardEvery grade the site tracks, for sports cards
Card LadderPOST /cardladder/v1/card_gradesThe CL Value of every grade of one card, from Raw to PSA 10
AltPOST /altxyz/v1/cardAlt Value, confidence band and last sale for every grade
MTGGoldfishPOST /mtggoldfish/v1/cardTabletop price in USD and MTGO price in tix for one Magic printing
MTGStocksPOST /mtgstocks/v1/printLow, average, high, market and foil prices at each store it tracks, in that store's currency
SNKRDUNKPOST /snkrdunk/v1/prices_by_conditionCurrent floor price per grade, the figure a daily tracker stores
LigaMagicPOST /ligamagic/v1/cardMin, average and max in BRL per printing and finish
Sold-price comps

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.

SourceCallReturns
130pointPOST /130point/v1/searchSold 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 ListingsPOST /ebay-sold/v1/sold_itemOne listing by item number: whether it sold, exact end time, final price. Full record for the last 3 to 4 months
eBay Sold ListingsPOST /ebay-sold/v1/seller_salesOne seller's completed sales: title, item number, price paid
AltPOST /altxyz/v1/card_salesEvery recorded sale of one card and grade, with marketplace and link
AltPOST /altxyz/v1/salesSold listings across all cards, last ~90 days
GoldinPOST /goldin/v1/soldHammer price, buyer's premium percent and sale date, back to November 2012
Fanatics CollectPOST /fanaticscollect/v1/sales_historyAbout 5.5 million sales since 2012, including PWCC auctions; the first 999 of a query are reachable
MySlabsPOST /myslabs/v1/soldSold slabs with price and date; meta.price_summary gives count, min, median, mean and max of the page
PriceChartingPOST /pricecharting/v1/salesUp to 30 completed sales per condition, with marketplace
SportsCardsProPOST /sportscardspro/v1/salesUp to 30 completed sales per grade, with marketplace
TCGplayerPOST /tcgplayer/v1/product/salesThe 5 most recent sales, which is all TCGplayer shows without an account
magiPOST /magi/v1/soldRealised prices on Japanese listings, buyer fee included
CourtyardPOST /courtyard/v1/salesAbout the last 1,000 on-chain sales, each labelled marketplace or buyback
ToretokuPOST /toretoku/v1/recent_ordersThe 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.

Price history

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.

SourceCallDepthResolution
TCGplayerPOST /tcgplayer/v1/product/price_historyUp to 12 monthsPer SKU: daily for the last 30 days, then 3-day and weekly buckets
CardmarketPOST /cardmarket/v1/product/detailLast 30 daysDaily average sell price
CardTraderPOST /cardtrader/v1/product/detailAbout 35 daysDaily CT market and US market price
CollectrPOST /collectr/v1/price_historyAbout a yearDaily per variant and grade; graded series have gaps
PriceChartingPOST /pricecharting/v1/price_historyFrom 2020-2021 for older cards, from release for new itemsOne point per month per condition
SportsCardsProPOST /sportscardspro/v1/price_historyOne point per month per headline grade
Card LadderPOST /cardladder/v1/card_price_historyBack to the card's first recorded saleOne point per sale day: average price and number of sales
AltPOST /altxyz/v1/card_value_historyAbout a yearDaily Alt Value for one grade, with its error band
MTGGoldfishPOST /mtggoldfish/v1/price_historySince the printing's releaseDaily, tabletop USD and MTGO tix as two series
MTGStocksPOST /mtgstocks/v1/price_historyTCGplayer to 2012, Cardmarket to 2017Daily per store and price type
magiPOST /magi/v1/price_historyUp to 200 daysOne 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.

Graded cards

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

SourceCallReturns
CollectrPOST /collectr/v1/productPSA, BGS, CGC, TAG, ACE, ARS and AGS, with grade names such as CGC 10 Pristine and BGS 10 Black Label
PriceChartingPOST /pricecharting/v1/productUngraded, Grade 1 to 9.5, PSA 10, BGS 10, CGC 10, SGC 10
SportsCardsProPOST /sportscardspro/v1/card19 grades, from Ungraded to PSA 10, BGS 10 Black, CGC 10 Pristine, SGC 10, TAG 10 and ACE 10
Card LadderPOST /cardladder/v1/card_gradesEvery grade of one card with its CL Value
AltPOST /altxyz/v1/cardA grade ladder with each grade's Alt Value and last sale
SNKRDUNKPOST /snkrdunk/v1/prices_by_conditionFloor price for PSA 10 and the A to D raw grades

Certificate lookup

SourceCallReturns
CGC CardsPOST /cgc/v1/cert_lookupCGC only: card, set, grade as printed, date and photos when CGC has them
Card LadderPOST /cardladder/v1/cert_lookupPSA only: the slab's identity and the matching Card Ladder card with values and sales history
AltPOST /altxyz/v1/cert_lookupPSA, BGS, SGC and CGC: the card, the grade, the current Alt Value and every recorded sale of that slab Alt holds
GoldinPOST /goldin/v1/lotGrading company, grade and certificate number on one lot
Fanatics CollectPOST /fanaticscollect/v1/itemGrader, grade, certificate and population on one listing
CourtyardPOST /courtyard/v1/searchSearch 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

SourceCallReturns
GemRatePOST /gemrate/v1/cardPopulation per grader and grade across PSA, Beckett, SGC and CGC, plus GemRate's combined scale
GemRatePOST /gemrate/v1/card_historyBGS and SGC weekly history; for PSA, weekly totals without dates or a grade split
CGC CardsPOST /cgc/v1/card_populationHow many copies CGC graded at every grade, with gem rate and highest grade reached
CGC CardsPOST /cgc/v1/set_populationEvery card CGC graded from one set, 50 a page
SportsCardsProPOST /sportscardspro/v1/cardPSA and CGC population for grades 1 to 10 on sports cards
AltPOST /altxyz/v1/cardGraded population of every grade of a card

Collectr publishes no population counts, and CGC's population history over time is not published either.

Buylists and arbitrage

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.

SourceCallReturns
Card KingdomPOST /cardkingdom/v1/buylistUS, USD. Near Mint, cash and store credit, and how many copies it buys
MTG MatePOST /mtgmate/v1/buylistAustralia, AUD. Cash and store credit and how many it wants; the hot list or one set
LigaMagicPOST /ligamagic/v1/buylistBrazil, BRL. Per store and printing, with the discount for each condition and language
LigaPokemonPOST /ligapokemon/v1/buylistBrazil, BRL. The same, for Pokémon
LigaYugiohPOST /ligayugioh/v1/buylistBrazil, BRL. The same, for Yu-Gi-Oh!
LigaOnePiecePOST /ligaonepiece/v1/buylistBrazil, BRL. The same, for One Piece
HareruyaPOST /hareruya/v1/buylistJapan, JPY. Near Mint only, per language and foil
Suruga-yaPOST /surugaya/v1/buyback_searchJapan, JPY. By name, JAN or ISBN barcode, or model number. Null when the shop prints no price
Ka-nabellPOST /kanabell/v1/buyback_searchJapan, JPY. Top condition, the percent paid for lower ones, and how many it still wants
DorasutaPOST /dorasuta/v1/buyback_searchJapan, JPY. Buy price and the most it takes per order
ToretokuPOST /toretoku/v1/buyback_searchJapan, JPY. A-rank copy, Yu-Gi-Oh! and Pokémon only
BIGWEBPOST /bigweb/v1/buyback_searchJapan, JPY. Price per card and condition and how many it takes
Card LaboPOST /cardlabo/v1/buyback_searchJapan, JPY. Buy price and how many it still wants
Card RushPOST /cardrush/v1/buying_pricesJapan, JPY. Nine games, one price per card rather than per condition
Yuyu-teiPOST /yuyu-tei/v1/buy_pricesJapan, JPY. Same card id as the sell side, and the earlier price when it was raised
CourtyardPOST /courtyard/v1/assetUSD. Every bid on a vaulted slab, with Courtyard's own instant buyback offer flagged
Marketplace listings

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.

SourceCallReturns
TCGplayerPOST /tcgplayer/v1/product/listingsEvery live listing, 50 a page: price, shipping, condition, printing, language, seller rating
CardmarketPOST /cardmarket/v1/product/offersCondition, card language, foil, signed, first edition, seller type and country
CardTraderPOST /cardtrader/v1/product/offersUp to 1,000 offers a call, per ship-to country, with seller price and CardTrader's buyer fee
LigaMagicPOST /ligamagic/v1/cardEvery store offer with stock, condition, language and the store's rating, in BRL
MYP CardsPOST /mypcards/v1/cardEvery seller offer with units, condition, language and finish, in BRL
SNKRDUNKPOST /snkrdunk/v1/product/listingsEvery live listing with its grade; recently sold ones are flagged
Suruga-yaPOST /surugaya/v1/offersMarketplace shops with price, condition note, stock and shipping time
Card LadderPOST /cardladder/v1/listingsActive listings tracked across eBay, Fanatics, Goldin, Heritage, MySlabs, Pristine and more
AltPOST /altxyz/v1/listingsAlt, eBay, Fanatics, Goldin, Pristine and CardHobby listings, with bids, grade and population
130pointPOST /130point/v1/live_searchLive auctions by keyword across eBay, Fanatics Collect, Goldin, Heritage, Pristine and MySlabs
GoldinPOST /goldin/v1/searchRunning and upcoming lots with current bid, bid count, end time and buyer's premium
Fanatics CollectPOST /fanaticscollect/v1/searchWeekly, Premier and Buy Now lots with bids, end time, grader and certificate
MySlabsPOST /myslabs/v1/searchLive slabs, auctions and private deals with exact totals
CourtyardPOST /courtyard/v1/searchEvery vaulted item with grader, grade, certificate and buy-now price
Before you join them

An id from one source means nothing at another

Identifiers
TCGplayer's product_id and Cardmarket's product_id are separate numbering systems, and so are Card Ladder's and Alt's card_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's product does 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.
One call

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.

Request
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"}'
Response (shortened)
{
  "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.