TCGplayer Card Price Scraper — 8 TCGs · No Cap avatar

TCGplayer Card Price Scraper — 8 TCGs · No Cap

Pricing

$3.00 / 1,000 result items

Go to Apify Store
TCGplayer Card Price Scraper — 8 TCGs · No Cap

TCGplayer Card Price Scraper — 8 TCGs · No Cap

Search TCGplayer across 8 TCGs (Pokemon, Magic, Yu-Gi-Oh, Lorcana & more) for product prices or live seller listings with condition, printing, language & seller rating. No cap on results. $0.003/item.

Pricing

$3.00 / 1,000 result items

Rating

0.0

(0)

Developer

Gio

Gio

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

3

Monthly active users

17 days ago

Last modified

Categories

Features

Limited permissions

Share

Why use this scraper

TCGplayer prices move hour to hour: a single bulk buy, a tournament result, or a reprint announcement can shift a card's market price by double digits in a day. Anyone buying or selling cards at volume (shop owners restocking, flippers hunting undervalued listings, collection appraisers, price-tracking apps) needs a feed of what cards actually cost right now, not a cached number from last week.

Pulling this by hand means opening TCGplayer, searching one card at a time, and manually reading market price, median price, and the cheapest live listings off the page. For a shop with a few hundred SKUs, or a flipper scanning a few thousand cards a day, that does not scale. This scraper turns a search query (or a batch of them) into structured JSON: product-level price summaries, or, when you need it, every individual seller listing for a card, with seller rating, condition, printing, and shipping cost included.

Overview

Give it a search query (a card name, a product name, or a batch of several) and a game, and it returns one record per matching product, or, when "Include seller listings" is on, one record per individual seller listing for the top matches, sorted by total price. Output includes product ID, name, set, collector number, rarity, market and median price, and, in listings mode, seller name, rating, sales count, verified/gold/direct-seller badges, condition, printing, language, item price, shipping, and total price. A typical run of 20 to 50 items finishes in under a minute; a listings run that opens several products takes longer because each product page is fetched individually.

Supported inputs

  • Single search query — query: one card or product name (e.g. "Charizard ex", "Black Lotus"). Searches the selected game's TCGplayer catalog.
  • Multiple search queries — queries: a list of search terms run in one call; takes precedence over query when both are set. Use this to price out a whole want-list or a restock sheet in one run.
  • Game filter — game: pick one of 8 supported trading card games (Pokemon, Magic: The Gathering, Yu-Gi-Oh!, Disney Lorcana, One Piece, Flesh and Blood, Digimon, Star Wars Unlimited), or all to search across every game on TCGplayer at once.
  • Sort order — sortOption: best match, price ascending/descending, best selling, newest, or name A-Z, matching the sort options on the TCGplayer search page itself.
  • Seller listings mode — includeListings: true switches from product-level price summaries to individual seller listings, with condition, printing, language, maxProducts (how many matched products to open) and maxListingsPerProduct to control scope and cost.

Use cases

  • Card shop owners pricing restock sheets against the live market before placing a bulk buy order, instead of checking each card by hand.
  • Flippers and arbitrage sellers scanning for listings priced well under market or median, filtered by condition and printing, to resell at a margin.
  • Collection appraisers and insurers pulling current market and median price for a list of cards to value a collection at a point in time.
  • Price-tracking apps and spreadsheets refreshing a watchlist of cards daily or weekly without a human opening TCGplayer.
  • Deck builders and tournament players comparing the cheapest legal printing of a card (foil vs normal, which language) before buying singles for a deck.

How it works

The scraper requests TCGplayer's own search and product pages for the query and game you give it, the same pages a shopper's browser would load, and parses the structured price and listing data already embedded in the page rather than guessing from visible text. In product mode it reads the market price, median price, and listing count straight off the search result; in listings mode it opens each matched product's page and reads every individual seller row (price, shipping, condition, printing, language, seller reputation) in the order TCGplayer itself ranks them. No login or session is required for either mode, since TCGplayer serves price data on public pages.

Input configuration — 3 examples

1. Quick price check on one card:

{
"query": "Charizard ex",
"game": "pokemon",
"maxItems": 20
}

2. Batch price-out of a want-list across games:

{
"queries": ["Black Lotus", "Mox Sapphire", "Time Walk"],
"game": "magic",
"sortOption": "price-desc",
"maxItems": 50
}

3. Live seller listings for arbitrage, Near Mint only:

{
"query": "Charizard ex",
"game": "pokemon",
"includeListings": true,
"condition": "Near Mint",
"maxProducts": 5,
"maxListingsPerProduct": 20
}

Output sample

Product mode (real output, query=Lightning Bolt, game=magic):

{
"productId": 35427,
"name": "Lightning Bolt",
"set": "Magic 2011 (M11)",
"number": "149",
"rarity": "Common",
"game": "Magic: The Gathering",
"marketPrice": 1.08,
"medianPrice": 1.21,
"query": "Lightning Bolt",
"scrapedAt": "2026-10-22T22:43:10.858Z"
}

Seller listings mode (real output, same card, includeListings=true):

{
"productId": 35427,
"name": "Lightning Bolt",
"listingId": 883469487,
"seller": "Underground Zone",
"sellerRating": 100,
"sellerSales": "50000+",
"verifiedSeller": true,
"goldSeller": true,
"directSeller": true,
"condition": "Damaged",
"printing": "Normal",
"language": "English",
"price": 0.78,
"shippingPrice": 1.49,
"totalPrice": 2.27,
"quantity": 1,
"currency": "USD",
"url": "https://www.tcgplayer.com/product/35427"
}

Key output fields

FieldTypeDescription
productIdintegerTCGplayer internal product ID.
namestringCard or product name.
setstringSet the card belongs to.
numberstringCollector number within the set.
raritystringCard rarity as listed by TCGplayer.
gamestringTrading card game the product belongs to.
marketPricefloatTCGplayer market price (USD), product mode only.
medianPricefloatTCGplayer median price (USD), product mode only.
listingIdintegerUnique ID of the individual seller listing, listings mode only.
sellerstringSeller store name, listings mode only.
sellerRatingintegerSeller rating (0-100), listings mode only.
sellerSalesstringSeller's lifetime sales bracket, listings mode only.
verifiedSeller / goldSeller / directSellerbooleanTCGplayer seller badges, listings mode only.
conditionstringCard condition (Mint to Damaged), listings mode only.
printingstringPrinting/finish (Normal, Foil, Holofoil, etc.), listings mode only.
languagestringCard language, listings mode only.
price / shippingPrice / totalPricefloatItem price, shipping, and total, listings mode only.
quantityintegerUnits the seller has in stock at that price, listings mode only.

Pricing

Pay-per-result, no subscription:

EventPrice
Result item (product or seller listing, charged once per record)$0.003

Errors are not charged. A 50-item product search costs about $0.15; a seller-listings run opening 10 products at 20 listings each returns up to 200 records for about $0.60.

What makes this richer than the competition

Most TCGplayer scrapers on the Store return one game and one price per card. This one covers all 8 major TCGs TCGplayer sells (Pokemon, Magic, Yu-Gi-Oh!, Lorcana, One Piece, Flesh and Blood, Digimon, Star Wars Unlimited) from a single actor, plus an all mode that searches every game at once — memo23's own card-price actors are scoped to a single game per listing. maxItems also accepts 0 for no limit, so a full want-list or a shop's whole restock sheet can run in one call instead of paging through a fixed cap.

On seller data: devcake/tcgplayer-data-scraper (15 users/30d) and solidcode/tcgplayer-scraper (5 users/30d) both return seller listings, but neither advertises per-listing seller trust badges (verified, gold, direct) alongside condition, printing and language in the same record — this actor returns all of it in one pass per listing, so a buyer can filter for a trustworthy seller and the right condition without opening a second page.

Notes & limitations

  • Product-mode marketPrice/medianPrice reflect TCGplayer's own aggregate pricing for the product; they are not recalculated or adjusted by this actor.
  • Seller listings mode opens each matched product individually, so it is slower and costs more per record than product mode; keep maxProducts and maxListingsPerProduct tight for a quick check.
  • sellerSales is returned as the bracket TCGplayer displays (e.g. "50000+"), not an exact lifetime count.
  • This actor reads TCGplayer's own public pages; it does not track price history over time. Run it on a schedule and store the results yourself to build a history.

FAQ

Does this need a TCGplayer account or API key? No. Both product search and seller listings are read from TCGplayer's public pages.

Can I search more than one card in a single run? Yes, use queries with a list of card or product names instead of the single query field.

What's the difference between market price and median price? Market price is TCGplayer's rolling average sale price; median price is the midpoint of recent sales. Both come straight from TCGplayer, unmodified.

Can I filter seller listings by condition or foil/non-foil printing? Yes, condition and printing filter individual listings when includeListings is on.

Does maxItems: 0 really return everything with no cap? Yes, set it to 0 and the run returns every matching product (or every listing, in listings mode) instead of stopping at a fixed count.

For AI Agents & LLM Apps

This Actor is MCP-compatible and works as a tool call for any LLM agent that needs live trading-card prices.

Via MCP (mcp.apify.com): add this Actor as a tool in your MCP-compatible client and call it with a query and game; the agent gets back structured JSON it can reason over directly, no HTML parsing needed.

Via API (run-sync-get-dataset-items):

curl "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-X POST -H "Content-Type: application/json" \
-d '{"query": "Charizard ex", "game": "pokemon", "maxItems": 10}'

This returns the dataset items directly in the response, ideal for a single synchronous tool call from an agent pipeline.

Disclaimer

This Actor is an independent tool that reads publicly available pages on tcgplayer.com. It is not affiliated with, endorsed by, or sponsored by TCGplayer, LLC. "TCGplayer" and related marks are trademarks of their respective owners, used here only to describe the data source.

SEO Keywords

TCGplayer scraper, Pokemon card price API, Magic the Gathering price scraper, TCG seller listings scraper, trading card price tracker, TCGplayer API alternative.

⌂ 换网址