TCGplayer Scraper - Card Prices & Price History avatar

TCGplayer Scraper - Card Prices & Price History

Pricing

from $2.30 / 1,000 tcgplayer card price delivereds

Go to Apify Store
TCGplayer Scraper - Card Prices & Price History

TCGplayer Scraper - Card Prices & Price History

Get TCGplayer card prices by card name, set or product URL for Pokemon, Magic, Yu-Gi-Oh!, One Piece, Lorcana and more: market, lowest and median price, price by condition and printing, listings count, set, rarity, optional price history with sales. Compare with the last run. Pay per card.

Pricing

from $2.30 / 1,000 tcgplayer card price delivereds

Rating

0.0

(0)

Developer

Scrapewise Data

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

1

Monthly active users

4 hours ago

Last modified

Share

TCGplayer Scraper pulls trading card prices from TCGplayer.com for Pokemon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Disney Lorcana and every other game on the site: market price, lowest price, median price, listings count, price by condition and printing, and a dated price history with sales. It is built for card shops, resellers and collectors who need a reference price, and for spreadsheets, pricing bots and AI agents that read it.

No login, no API key, no browser. The Actor reads the same public JSON the TCGplayer website uses to show prices, so runs are fast and cheap.

What the TCGplayer scraper fixes

  • One market price per card is not enough to price a shop. Each product can carry the market price and 30 day sales for every condition (Near Mint to Damaged) and printing (Normal, Foil), at no extra cost.
  • No public price history. The same series TCGplayer draws in its price chart comes back as rows: market price, quantity sold, number of sales, lowest and highest sale per period, up to 12 months.
  • TCGplayer's developer API is closed to new access. This reads the public data the website shows any visitor.
  • Paying for searches that found nothing. Empty searches, unknown sets, invalid links and blocked requests come back as free rows with an errorCode.

TCGplayer scraper at a glance

  • Price: US$ 3.00 per 1,000 products on Free, US$ 2.30 on Gold and above; from 1 Nov 2026 each run also has an Actor start event of US$ 0.005
  • Price by condition and printing: included
  • Price history: US$ 3.00 per 1,000 products, only when asked
  • Games: every product line on TCGplayer, singles and sealed
  • Filters: game, set, rarity, market price range, TCGplayer sort orders

Switching from another TCGplayer scraper? Your existing input works

Their fieldRead here as
queries, searchQuery, query, qsearchQueries
category, productLinegame
set, expansion / rarityFiltersetName / rarity
sortOption ("Best Selling", "Price: High to Low")sortBy
maxResults, limit (0 = no limit)maxItems
pageCount (50 products per page), maxListingsmaxItemsPerQuery
enrichData, scrapeDetailsincludeDetails
includeSalesHistory, rangeincludePriceHistory, historyRange
min_price, max_priceminPrice, maxPrice

TCGplayer scraper input examples

Search Pokemon for "charizard", best selling first, with price by condition:

{ "searchQueries": ["charizard"], "game": "pokemon", "sortBy": "bestSelling", "includeDetails": true, "maxItems": 50 }

Every chase card of one set, most expensive first:

{ "game": "pokemon", "setName": "151", "rarity": ["Special Illustration Rare"], "sortBy": "priceHighLow" }

Price history for cards you track:

{ "mode": "priceHistory", "productUrls": ["https://www.tcgplayer.com/product/42382/pokemon-base-set-charizard", "1174"], "historyRange": "annual" }

With an empty input the Actor searches "charizard" in Pokemon and returns 30 products.

Monitor TCGplayer prices on a schedule

  1. Run the search or product list you want to watch, then save the input as a Task.
  2. Turn on compareWithPreviousRun.
  3. Attach an Apify Schedule to the Task, for example daily.
{ "mode": "products", "productUrls": ["42382", "1174"], "compareWithPreviousRun": true }

Each run returns every product as usual, plus what changed since the run before: previousPrice (market price last time), priceChange and priceChangePct, isNewProduct (not seen before by this input), firstSeenAt and previousSeenAt. On the first run every product is new. The history lives in a key-value store on your own account named tcgplayer-prices-... (Storage, Key-value stores), and is saved after the products are delivered. To start over, delete that store or set a new snapshotName. It is not used in priceHistory mode.

Video guides from Apify: how to schedule an Actor and how to connect it to other apps.

What data the TCGplayer scraper returns

A product row with details ("lightning bolt" in Magic, includeDetails on, run of 2026-09-15), shortened:

{
"type": "product",
"productId": 1174,
"productName": "Lightning Bolt",
"game": "Magic: The Gathering",
"setName": "Alpha Edition",
"rarity": "Common",
"currency": "USD",
"marketPrice": 626.67,
"lowestPrice": 292.5,
"medianPrice": 639.99,
"totalListings": 23,
"sellersCount": 9,
"nearMintMarketPrice": 626.67,
"quantitySold30d": 11,
"conditionPrices": [
{"skuId": 15322, "printing": "Normal", "condition": "Near Mint", "marketPrice": 626.67, "quantitySold30d": 6},
{"skuId": 332752, "printing": "Normal", "condition": "Moderately Played", "marketPrice": 438.24, "quantitySold30d": 4},
{"skuId": 348510, "printing": "Normal", "condition": "Heavily Played", "marketPrice": 284.25, "quantitySold30d": 1}
],
"url": "https://www.tcgplayer.com/product/1174/magic-alpha-edition-lightning-bolt"
}

A price history row (mode: priceHistory, 3 months), last points of the series:

{
"type": "priceHistory",
"productId": 113670,
"productName": "M Charizard EX",
"setName": "Generations",
"printing": "Holofoil",
"condition": "Near Mint",
"periodStart": "2026-06-19",
"periodEnd": "2026-09-14",
"currentMarketPrice": 163.98,
"startMarketPrice": 157.66,
"marketPriceChangePercent": 4.01,
"totalQuantitySold": 25,
"history": [
{"date": "2026-09-11", "marketPrice": 163.98, "quantitySold": 1, "transactionCount": 1, "lowSalePrice": 144, "highSalePrice": 144},
{"date": "2026-09-14", "marketPrice": 163.98, "quantitySold": 0, "transactionCount": 0, "lowSalePrice": null, "highSalePrice": null}
]
}

The dataset has four views: Card prices, Price by condition, Price history summary and Price history series (one line per date, ready for a chart).

TCGplayer price data fields

FieldDescription
typeproduct, priceHistory or error
productId, productName, game, setName, setCodeProduct and set; reuse productId in productUrls
cardNumber, rarity, cardType, sealed, releaseDateCard attributes
marketPriceTCGplayer market price in USD, based on recent sales
lowestPrice, lowestPriceWithShipping, medianPriceCheapest listing now, and median listed price
totalListings, sellersCountListings and sellers offering it
marketPriceNormal, marketPriceFoil, printingPricesPrices per printing, with buylist market price
conditionPrices, nearMintMarketPrice, quantitySold30dPer condition market price and 30 day sales
currentMarketPrice, startMarketPrice, marketPriceChangePercentHistory summary for the period
lowestSalePrice, highestSalePrice, totalQuantitySoldSales summary for the period
historySeries of date, marketPrice, quantitySold, transactionCount, lowSalePrice, highSalePrice
imageUrl, url, searchQuery, position, scrapedAtImage, product page, what produced the row, collection time
previousPrice, priceChange, priceChangePct, isNewProduct, firstSeenAt, previousSeenAtWith compareWithPreviousRun: market price in the previous run and the change
errorCode, errorOnly on error rows

TCGplayer scraper pricing

US$ 3.00 per 1,000 products (Bronze 2.70, Silver 2.50, Gold and above 2.30). Price by condition and printing is included. Price history is a separate event at US$ 3.00 per 1,000 products with history, one charge per product however many conditions and dates it returns. 1,000 Pokemon cards with price by condition cost US$ 3; with a 12 month history, US$ 6. Error rows and duplicates are free.

TCGplayer scraper limitations

  • Prices are USD from the US marketplace, as TCGplayer shows them.
  • Individual seller listings and the latest sales feed are not collected. You get aggregates: lowest price, median, listings, sellers and sales per period.
  • TCGplayer returns at most 50 products per page and 10,000 per search. Split broad searches by game, set or rarity.
  • maxItems is filled by search terms in order; set maxItemsPerQuery to balance terms.
  • A product can have no market price (no recent sales) or no history in the period; fields are then null, and history-only products come back as free NO_PRICE_HISTORY rows.

Error codes (never charged)

errorCodeMeaning
NO_RESULTSThe search found nothing
SET_NOT_FOUNDNo set matches setName
INVALID_GAMEThe game is not a TCGplayer product line
INVALID_PRODUCT, PRODUCT_NOT_FOUNDThe link or ID is not a product, or it was removed
NO_PRICE_HISTORYNo sales in the history period
BLOCKEDTCGplayer refused the request after retries

TCGplayer scraper FAQ

Why not the official TCGplayer API? TCGplayer's developer API is closed to new access, so most people cannot get a key. This Actor needs no key or login and returns market, lowest and median prices, price by condition and printing, and a dated price history from the public website data.

What is the difference between market price, lowest price and median price? Market price is TCGplayer's estimate from recent completed sales. Lowest price is the cheapest listing now. Median price is the middle of current listings. Shops usually price from market price; buyers look at lowest price with shipping.

How do I get the Near Mint price of a card? Turn on includeDetails (or use products mode). Each product gets nearMintMarketPrice and the full conditionPrices list.

How far back does the history go? Up to 12 months with historyRange: "annual" (weekly points); month gives daily points.

How many products per run? As many as maxItems. A run of 320 products took under 90 seconds in our tests.

Can I use it from Google Sheets, n8n or an AI agent? Yes, through Apify integrations, the Apify nodes for n8n and Make, or the Apify MCP server (https://mcp.apify.com).

Is it legal? It reads public product prices without logging in and collects no seller or buyer data. How you use the data is your responsibility under TCGplayer's terms.

Japanese prices for the same card? Our Mercari Japan Scraper returns on-sale and sold listings from Mercari Japan in JPY, with price, condition and category filters, so a card can be compared between the US and Japan.

Changelog

  • 2026-10-20: price monitoring: compareWithPreviousRun adds the previous market price and the change to every product row.
  • 2026-09-15: first version: search with filters and sort orders, product details with price by condition, price history mode, four dataset views, free error rows, input names of other TCGplayer scrapers.