TCGplayer Scraper - Card Prices & Price History
Pricing
from $2.30 / 1,000 tcgplayer card price delivereds
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
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
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 field | Read here as |
|---|---|
queries, searchQuery, query, q | searchQueries |
category, productLine | game |
set, expansion / rarityFilter | setName / rarity |
sortOption ("Best Selling", "Price: High to Low") | sortBy |
maxResults, limit (0 = no limit) | maxItems |
pageCount (50 products per page), maxListings | maxItemsPerQuery |
enrichData, scrapeDetails | includeDetails |
includeSalesHistory, range | includePriceHistory, historyRange |
min_price, max_price | minPrice, 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
- Run the search or product list you want to watch, then save the input as a Task.
- Turn on
compareWithPreviousRun. - 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
| Field | Description |
|---|---|
type | product, priceHistory or error |
productId, productName, game, setName, setCode | Product and set; reuse productId in productUrls |
cardNumber, rarity, cardType, sealed, releaseDate | Card attributes |
marketPrice | TCGplayer market price in USD, based on recent sales |
lowestPrice, lowestPriceWithShipping, medianPrice | Cheapest listing now, and median listed price |
totalListings, sellersCount | Listings and sellers offering it |
marketPriceNormal, marketPriceFoil, printingPrices | Prices per printing, with buylist market price |
conditionPrices, nearMintMarketPrice, quantitySold30d | Per condition market price and 30 day sales |
currentMarketPrice, startMarketPrice, marketPriceChangePercent | History summary for the period |
lowestSalePrice, highestSalePrice, totalQuantitySold | Sales summary for the period |
history | Series of date, marketPrice, quantitySold, transactionCount, lowSalePrice, highSalePrice |
imageUrl, url, searchQuery, position, scrapedAt | Image, product page, what produced the row, collection time |
previousPrice, priceChange, priceChangePct, isNewProduct, firstSeenAt, previousSeenAt | With compareWithPreviousRun: market price in the previous run and the change |
errorCode, error | Only 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.
maxItemsis filled by search terms in order; setmaxItemsPerQueryto 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 freeNO_PRICE_HISTORYrows.
Error codes (never charged)
| errorCode | Meaning |
|---|---|
NO_RESULTS | The search found nothing |
SET_NOT_FOUND | No set matches setName |
INVALID_GAME | The game is not a TCGplayer product line |
INVALID_PRODUCT, PRODUCT_NOT_FOUND | The link or ID is not a product, or it was removed |
NO_PRICE_HISTORY | No sales in the history period |
BLOCKED | TCGplayer 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.
Related scrapers
- Mercari Japan Scraper: Mercari Japan listings, sold prices and image search.
- Yahoo Auctions Japan Scraper: sold prices and live listings from Yahoo Auctions Japan.
- Depop Scraper: Depop listings, prices, brands, sizes and shops.
- Google Shopping Scraper: Google Shopping prices, offers and EAN lookup.
Changelog
- 2026-10-20: price monitoring:
compareWithPreviousRunadds 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.