TCGplayer Data Scraper
Pricing
from $4.00 / 1,000 results
TCGplayer Data Scraper
Scrape TCGPlayer prices in seconds. Get real-time market data, seller listings, No API key required. Export as JSON, CSV, or Excel.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer

devcake
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
๐ TCGPlayer Scraper | Scrape Trading Card Prices & Data
The TCGPlayer Scraper lets you scrape TCGPlayer for trading card prices, market data, and seller listings. No API key required - perform TCGPlayer card search across store listings for Pokemon, Magic: The Gathering, Yu-Gi-Oh!, sports cards, and all TCG categories with real-time pricing, seller ratings, and optional sales history.
๐ What This Scraper Does
The TCGPlayer Scraper automatically searches and extracts comprehensive product data including:
- ๐ฐ Real-time market prices - Current market value, median price, lowest price
- ๐ True total cost - Lowest price including shipping for accurate cost comparison
- ๐ช Complete seller data - Ratings, verification status, gold seller badges, direct seller flags
- ๐ด Card attributes - Set info, rarity, card number, condition, printing type
- ๐ Optional enrichment - Actual sales history and price points by printing type (Normal/Foil)
- ๐ฆ Bulk export - Scrape hundreds of products in a single run with concurrent processing
๐ง Problem Solved
TCGPlayer data scraping has traditionally required an API key or expensive subscriptions. This scraper provides TCGPlayer data access without authentication - a cost-effective solution for:
- ๐ Price tracking - Monitor card values over time
- ๐ต Arbitrage research - Find underpriced cards across sellers
- ๐ Inventory management - Pull current pricing for your listings
- ๐ Market analysis - Build datasets for research or machine learning
โก Features
| Feature | Description |
|---|---|
| ๐ TCGPlayer Search | Search across all stores, categories, and card types |
| ๐ Concurrent Scraping | 10x faster with parallel page processing |
| ๐ TLS Fingerprinting Bypass | Uses curl_cffi Chrome impersonation for reliable access |
| ๐ Multiple Search Queries | Scrape different card categories simultaneously |
| ๐ Full Pagination | Up to 100 pages per query, 50 products per page |
| ๐ 5 Sort Options | Best Match, Best Selling, A-Z, Price High-Low, Price Low-High |
| ๐ต TCGPlayer Sales Data | Get actual sales history, transaction prices, and price trends |
| ๐ฅ TCGPlayer Data Download | Export results as JSON, CSV, Excel, or via REST API |
| โจ Clean Output | Internal fields automatically removed |
๐๏ธ Input Parameters
| Parameter | Type | Default | Max | Description |
|---|---|---|---|---|
queries | array | ["pokemon cards"] | - | TCGPlayer card search queries. Search store listings for any card |
sortOption | string | "Best Match" | - | Sort order (see options below) |
startPage | integer | 1 | - | Starting page (1-based), applies per query |
pageCount | integer | 3 | 100 | Pages to scrape per query (50 products/page) |
enrichData | boolean | false | - | Fetch sales history & price points |
๐ Sort Options
- ๐ฏ
Best Match- Default relevance ranking - ๐ฅ
Best Selling- Sort by popularity and sales volume - ๐ค
A-Z- Alphabetical by product name - ๐ฐ
Price: High to Low- Highest prices first - ๐ธ
Price: Low to High- Lowest prices first
๐ Example Input
{"queries": ["charizard", "black lotus", "blue eyes white dragon"],"sortOption": "Price: Low to High","startPage": 1,"pageCount": 2,"enrichData": false}
๐ก Note: With 3 queries ร 2 pages ร 50 products = 300 products total
๐ค Output Data Structure
๐ด Core Product Fields
| Field | Type | Description |
|---|---|---|
productId | integer | Unique TCGPlayer product identifier |
productName | string | Full product name |
productUrlName | string | URL-safe product name slug |
url | string | Direct link to product page |
imageUrl | string | Product image URL (400x400) |
setName | string | Card set name (e.g., "Base Set Unlimited") |
setCode | string | Set abbreviation (e.g., "BASE") |
rarity | string | Rarity code |
rarityName | string | Full rarity name (e.g., "Rare Holo") |
number | string | Card number in set |
condition | string | Default condition |
๐ฐ Pricing Fields
| Field | Type | Description |
|---|---|---|
marketPrice | number | Current TCGPlayer market price |
medianPrice | number | Median price across all listings |
lowestPrice | number | Lowest listing price (before shipping) |
lowestPriceWithShipping | number | True lowest price including shipping |
totalListings | integer | Number of active seller listings |
๐ช Seller Listing Details
Each product includes a listings array with:
| Field | Type | Description |
|---|---|---|
listingId | integer | Unique listing identifier |
sellerName | string | Seller's store name |
sellerId | integer | Seller's TCGPlayer ID |
sellerKey | string | Seller's unique key |
sellerRating | number | Seller rating score |
sellerSales | integer | Total sales by seller |
sellerPrograms | array | Seller program memberships |
verifiedSeller | boolean | TCGPlayer verified status |
goldSeller | boolean | Gold seller badge |
directSeller | boolean | Direct from TCGPlayer |
condition | string | Card condition (Mint, Near Mint, etc.) |
printing | string | Printing type (Normal, Foil) |
language | string | Card language (English, Japanese, etc.) |
price | number | Listing price |
shippingPrice | number | Shipping cost |
totalPrice | number | Price + shipping combined |
quantity | integer | Available quantity |
โก Pokemon Card Attributes (when available)
| Field | Type | Description |
|---|---|---|
customAttributes.cardType | string | Card type (Pokemon, Trainer, Energy) |
customAttributes.energyType | string | Energy type (Fire, Water, etc.) |
customAttributes.stage | string | Evolution stage (Basic, Stage 1, Stage 2) |
customAttributes.hp | string | Hit points |
customAttributes.retreatCost | number | Retreat cost |
customAttributes.weakness | string | Weakness type |
customAttributes.resistance | string | Resistance type |
customAttributes.attack1 | object | First attack details |
๐ Enrichment Data (when enrichData: true)
| Field | Type | Description |
|---|---|---|
_enriched | boolean | True if enrichment data was fetched |
_enrichment.sales.totalSales | integer | Total number of recorded sales |
_enrichment.sales.lastSaleDate | string | Date of most recent sale |
_enrichment.sales.avgPrice | number | Average sale price |
_enrichment.sales.priceRange | object | {min, max} sale prices |
_enrichment.sales.recentSales[] | array | Last 10 sales with date, price, condition |
_enrichment.pricePoints.normal | object | Normal printing prices |
_enrichment.pricePoints.foil | object | Foil printing prices |
๐ท๏ธ Metadata Tags
| Field | Type | Description |
|---|---|---|
_query | string | Search query that found this product |
_scrapedPage | integer | Page number where product was found |
_sortOption | string | Sort option used |
_scrapedAt | string | ISO 8601 timestamp |
_scraperVersion | string | Actor version |
๐ Example Output
{"productId": 290158372,"productName": "Charizard - 4/102 - Base Set Unlimited","productUrlName": "charizard-base-set-unlimited","url": "https://www.tcgplayer.com/product/290158372/charizard-base-set-unlimited","imageUrl": "https://product-images.tcgplayer.com/fit-in/400x400/290158372.jpg","setName": "Base Set Unlimited","setCode": "BASE","rarity": "Rare Holo","rarityName": "Rare Holo","number": "4/102","marketPrice": 450.00,"medianPrice": 425.00,"lowestPrice": 399.99,"lowestPriceWithShipping": 414.99,"totalListings": 15,"listings": [{"listingId": 12345678,"sellerName": "CardShopPro","sellerId": 54321,"sellerKey": "cardshoppro","sellerRating": 98.5,"sellerSales": 15000,"sellerPrograms": ["Verified", "Gold"],"verifiedSeller": true,"goldSeller": true,"directSeller": false,"condition": "Near Mint","printing": "Normal","language": "English","price": 399.99,"shippingPrice": 15.00,"totalPrice": 414.99,"quantity": 1}],"customAttributes": {"cardType": "Pokemon","stage": "Stage 2","hp": "120","weakness": "Water","resistance": "Fighting","attack1": {"name": "Fire Spin", "damage": "100"}},"_query": "charizard","_scrapedPage": 1,"_sortOption": "Price: Low to High","_scrapedAt": "2026-02-13T12:00:00Z","_scraperVersion": "3.0.0","_enriched": false}
๐ Enriched Output Example (with enrichData: true)
{"_enriched": true,"_enrichment": {"sales": {"totalSales": 234,"lastSaleDate": "2026-02-12T15:30:00Z","avgPrice": 435.50,"priceRange": {"min": 380.00, "max": 520.00},"recentSales": [{"date": "2026-02-12T15:30:00Z", "price": 425.00, "condition": "Near Mint"}]},"pricePoints": {"normal": {"marketPrice": 450.00, "listedMedian": 425.00},"foil": {"marketPrice": 1200.00, "listedMedian": 1100.00}}}}
๐ฎ Supported Trading Card Categories
Works with all TCGPlayer categories:
- โก Pokemon - Base set, Sword & Shield, Scarlet & Violet, all series
- ๐ง Magic: The Gathering - Standard, Modern, Commander, Legacy
- ๐ Yu-Gi-Oh! - Main sets, special editions, reprint sets
- โพ Sports Cards - Baseball, Basketball, Football, Hockey
- ๐ฒ Other TCGs - Digimon, Dragon Ball Super, One Piece, Flesh and Blood, and more
๐ Getting Started
โ๏ธ Run on Apify Cloud
- Open the TCGPlayer Scraper on Apify
- Click Run with default settings or configure input
- Download your scraped data as JSON, CSV, Excel, or access via REST API
๐ก Use Cases
| Use Case | Description |
|---|---|
| ๐ Card Search | Quickly find and compare cards across all TCGPlayer stores |
| ๐ฐ Card Collectors | Find the best deals with true total cost (price + shipping) |
| ๐ Price Tracking | Monitor market trends and price history over time |
| ๐ต Arbitrage | Identify price discrepancies between sellers |
| ๐ Inventory Management | Pull current pricing for your own listings |
| ๐ Market Research | Analyze pricing patterns across sets and rarities |
| ๐ Data Analysis | Build datasets for ML models or business intelligence |
๐ TCGPlayer API vs This Scraper
If you're searching for TCGPlayer API access, here's how this scraper compares to the official options:
| Feature | This Scraper | TCGPlayer Official API |
|---|---|---|
| ๐ API Key Required | No | Yes (requires partnership) |
| ๐ Access Method | Public search API | Authenticated REST API |
| ๐ต Sales History | Yes (via enrichData) | Limited |
| ๐ฐ Price Data | Real-time | Real-time |
| โฑ๏ธ Rate Limits | Auto-managed | Based on tier |
| ๐ณ Cost | Pay per Apify run | Subscription required |
| ๐ฏ Best For | One-time scraping, research | Production apps, high volume |
โ When to Use This Scraper
- You need bulk price data without an API key
- You're doing market research or price tracking
- You want sales history and price point data
- You need to scrape multiple queries quickly
๐ข When to Use Official TCGPlayer API
- You're building a production application
- You need authenticated, guaranteed access
- You require SLA guarantees
- You're doing high-volume commercial operations
๐ก Note: This scraper does NOT require or use any TCGPlayer API key. It accesses publicly available data.
โ Frequently Asked Questions
๐ Do I need a TCGPlayer API key?
No. This scraper accesses TCGPlayer's public search API directly. No API key, authentication, or TCGPlayer account is required.
๐ต Can I get sales history data?
Yes. Set enrichData: true in your input to fetch actual sales transactions including sale dates, prices, and conditions. This adds 2 extra API calls per product.
๐ฐ What's the difference between marketPrice and lowestPrice?
marketPrice- TCGPlayer's calculated market value based on recent saleslowestPrice- The cheapest current listing (before shipping)lowestPriceWithShipping- The cheapest listing including shipping cost
๐ How many products can I scrape?
- Up to 50 products per page (TCGPlayer API limit)
- Up to 100 pages per query (configurable)
- With 3 queries ร 100 pages ร 50 products = 15,000 products max
๐ฑ Does this work with TCGPlayer's app collection?
No. This scraper searches TCGPlayer's product database. It does not access personal collections from the TCGPlayer app.
๐ Is this the same as TCGPlayer's official API?
No. This is an independent scraper that accesses TCGPlayer's public search endpoints. For official API access with authentication and SLA guarantees, contact TCGPlayer directly.