TCGplayer Price Scraper avatar

TCGplayer Price Scraper

Pricing

from $20.00 / 1,000 results

Go to Apify Store
TCGplayer Price Scraper

TCGplayer Price Scraper

Search trading cards by keyword and get market, lowest, and per-printing prices for each matching product.

Pricing

from $20.00 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Search trading cards by keyword and get the current market price, lowest available price, and per-printing price points for every matching product.

Why use this actor

  • Real market prices — each card comes through with its market price, lowest listed price, and median, straight from the live marketplace.
  • Per-printing detail — optionally enrich every card with market, median, and buylist prices broken out by printing (Normal, Foil, Holofoil, and more).
  • Full card identity — product name, set, set code, collector number, rarity, and product line so you can match cards exactly.
  • Built-in product links and images — every record includes a ready-to-open product URL and an image URL.
  • No account, no API key — works straight from public trading-card search and market prices.
  • Stable JSON output — same field names every run, ready for spreadsheets, databases, or pipelines.

How it works

  1. You provide one or more card search terms (for example charizard or black lotus).
  2. The actor searches the trading-card marketplace for each term and collects every matching product.
  3. Each product is saved as a CARD record with its name, set, number, rarity, and prices.
  4. When per-printing price points are enabled, each card is enriched with market, median, and buylist prices for every printing.
  5. Everything lands in your dataset, exportable as JSON, CSV, or Excel.

You don't need to manage any browsers or scrapers.

Input

{
"queries": [
"charizard",
"black lotus"
],
"maxResultsPerQuery": 50,
"enrichPricePoints": true,
"maxConcurrency": 4,
"maxRequestRetries": 5,
"proxyConfiguration": { "useApifyProxy": true }
}

This run looks up two card terms (charizard and black lotus), returns up to 50 matching products for each, and enriches every card with its per-printing price points.

FieldTypeDescription
queriesarrayRequired. Card search terms to look up market prices for (one per entry).
maxResultsPerQueryintegerHow many matching card products to return per term. Raise it for more cards per term, lower it for a quick sample. Default 24.
enrichPricePointsbooleanAdd per-printing market / median / buylist prices to each card. Turn it off for a faster run that skips the extra per-card lookup. Default true.
maxConcurrencyintegerNumber of parallel requests. Default 4.
maxRequestRetriesintegerRetries per request before giving up. Default 5.
proxyConfigurationobjectApify Proxy or a custom proxy list. The card-market feeds are open, so the default datacenter proxy is fine; residential is not required.

All prices are in US dollars (USD) — this is the US trading-card marketplace, so every price field is quoted in USD regardless of where the run happens.

Output

Each matching card is one record (recordType: "CARD"):

{
"recordType": "CARD",
"_input": "charizard",
"productId": 219059,
"name": "Charizard GX - 9/68 (#60 Charizard Stamped)",
"set": "Battle Academy",
"setCode": "BTA",
"number": "009/068",
"rarity": "Promo",
"productLine": "Pokemon",
"marketPrice": 11.87,
"lowestPrice": 7.99,
"medianPrice": null,
"lowestPriceWithShipping": 8.49,
"totalListings": 81,
"foilOnly": true,
"sealed": false,
"releaseDate": "2020-07-31T00:00:00Z",
"currency": "USD",
"url": "https://www.tcgplayer.com/product/219059",
"image": "https://product-images.tcgplayer.com/fit-in/437x437/219059.jpg",
"scrapedAt": "2026-06-10T11:00:44Z",
"pricePoints": [
{ "printing": "Normal", "marketPrice": null, "listedMedianPrice": null, "buylistMarketPrice": null },
{ "printing": "Foil", "marketPrice": 11.87, "listedMedianPrice": 14.1, "buylistMarketPrice": null }
]
}
FieldTypeDescription
recordTypestringAlways "CARD".
_inputstringThe search term that produced this record.
productIdintegerMarketplace product identifier (also the join key and image/URL key).
namestringCard / product name.
setstringSet name.
setCodestringShort set code.
numberstringCollector number when the product is a single card.
raritystringCard rarity when available.
productLinestringGame / product line (e.g. Pokemon, Magic).
marketPricenumberCurrent market price.
lowestPricenumberLowest listed price.
medianPricenumberMedian listed price when available.
lowestPriceWithShippingnumberLowest price including shipping.
totalListingsintegerNumber of active listings for the product.
foilOnlybooleanWhether the product exists only as a foil printing.
sealedbooleanWhether the product is a sealed item.
releaseDatestringRelease date when available.
currencystringISO currency of the prices (USD).
urlstringProduct page URL.
imagestringProduct image URL.
scrapedAtstringISO 8601 timestamp of collection.
pricePointsarrayPer-printing printing / marketPrice / listedMedianPrice / buylistMarketPrice (present when enrichment is enabled).

On a search term that returns nothing, the actor emits a single record with error: "NO_RESULTS" instead of skipping silently. If a search can't be completed after all retries, it emits error: "BLOCKED_AFTER_RETRIES".

Other Card Scrapers

ActorDescription
TCGplayer Price ScraperTrading-card search with market, lowest, and per-printing prices per keyword.