TCGplayer Price Scraper
Pricing
from $20.00 / 1,000 results
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
Maintained by CommunityActor 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
- You provide one or more card search terms (for example
charizardorblack lotus). - The actor searches the trading-card marketplace for each term and collects every matching product.
- Each product is saved as a
CARDrecord with its name, set, number, rarity, and prices. - When per-printing price points are enabled, each card is enriched with market, median, and buylist prices for every printing.
- 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.
| Field | Type | Description |
|---|---|---|
queries | array | Required. Card search terms to look up market prices for (one per entry). |
maxResultsPerQuery | integer | How many matching card products to return per term. Raise it for more cards per term, lower it for a quick sample. Default 24. |
enrichPricePoints | boolean | Add 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. |
maxConcurrency | integer | Number of parallel requests. Default 4. |
maxRequestRetries | integer | Retries per request before giving up. Default 5. |
proxyConfiguration | object | Apify 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 }]}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "CARD". |
_input | string | The search term that produced this record. |
productId | integer | Marketplace product identifier (also the join key and image/URL key). |
name | string | Card / product name. |
set | string | Set name. |
setCode | string | Short set code. |
number | string | Collector number when the product is a single card. |
rarity | string | Card rarity when available. |
productLine | string | Game / product line (e.g. Pokemon, Magic). |
marketPrice | number | Current market price. |
lowestPrice | number | Lowest listed price. |
medianPrice | number | Median listed price when available. |
lowestPriceWithShipping | number | Lowest price including shipping. |
totalListings | integer | Number of active listings for the product. |
foilOnly | boolean | Whether the product exists only as a foil printing. |
sealed | boolean | Whether the product is a sealed item. |
releaseDate | string | Release date when available. |
currency | string | ISO currency of the prices (USD). |
url | string | Product page URL. |
image | string | Product image URL. |
scrapedAt | string | ISO 8601 timestamp of collection. |
pricePoints | array | Per-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
| Actor | Description |
|---|---|
| TCGplayer Price Scraper | Trading-card search with market, lowest, and per-printing prices per keyword. |