TCGplayer Data Scraper avatar

TCGplayer Data Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
TCGplayer Data Scraper

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

devcake

Maintained by Community

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

FeatureDescription
๐Ÿ” TCGPlayer SearchSearch across all stores, categories, and card types
๐Ÿš€ Concurrent Scraping10x faster with parallel page processing
๐Ÿ” TLS Fingerprinting BypassUses curl_cffi Chrome impersonation for reliable access
๐Ÿ“ Multiple Search QueriesScrape different card categories simultaneously
๐Ÿ“„ Full PaginationUp to 100 pages per query, 50 products per page
๐Ÿ”„ 5 Sort OptionsBest Match, Best Selling, A-Z, Price High-Low, Price Low-High
๐Ÿ’ต TCGPlayer Sales DataGet actual sales history, transaction prices, and price trends
๐Ÿ“ฅ TCGPlayer Data DownloadExport results as JSON, CSV, Excel, or via REST API
โœจ Clean OutputInternal fields automatically removed

๐ŸŽ›๏ธ Input Parameters

ParameterTypeDefaultMaxDescription
queriesarray["pokemon cards"]-TCGPlayer card search queries. Search store listings for any card
sortOptionstring"Best Match"-Sort order (see options below)
startPageinteger1-Starting page (1-based), applies per query
pageCountinteger3100Pages to scrape per query (50 products/page)
enrichDatabooleanfalse-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

FieldTypeDescription
productIdintegerUnique TCGPlayer product identifier
productNamestringFull product name
productUrlNamestringURL-safe product name slug
urlstringDirect link to product page
imageUrlstringProduct image URL (400x400)
setNamestringCard set name (e.g., "Base Set Unlimited")
setCodestringSet abbreviation (e.g., "BASE")
raritystringRarity code
rarityNamestringFull rarity name (e.g., "Rare Holo")
numberstringCard number in set
conditionstringDefault condition

๐Ÿ’ฐ Pricing Fields

FieldTypeDescription
marketPricenumberCurrent TCGPlayer market price
medianPricenumberMedian price across all listings
lowestPricenumberLowest listing price (before shipping)
lowestPriceWithShippingnumberTrue lowest price including shipping
totalListingsintegerNumber of active seller listings

๐Ÿช Seller Listing Details

Each product includes a listings array with:

FieldTypeDescription
listingIdintegerUnique listing identifier
sellerNamestringSeller's store name
sellerIdintegerSeller's TCGPlayer ID
sellerKeystringSeller's unique key
sellerRatingnumberSeller rating score
sellerSalesintegerTotal sales by seller
sellerProgramsarraySeller program memberships
verifiedSellerbooleanTCGPlayer verified status
goldSellerbooleanGold seller badge
directSellerbooleanDirect from TCGPlayer
conditionstringCard condition (Mint, Near Mint, etc.)
printingstringPrinting type (Normal, Foil)
languagestringCard language (English, Japanese, etc.)
pricenumberListing price
shippingPricenumberShipping cost
totalPricenumberPrice + shipping combined
quantityintegerAvailable quantity

โšก Pokemon Card Attributes (when available)

FieldTypeDescription
customAttributes.cardTypestringCard type (Pokemon, Trainer, Energy)
customAttributes.energyTypestringEnergy type (Fire, Water, etc.)
customAttributes.stagestringEvolution stage (Basic, Stage 1, Stage 2)
customAttributes.hpstringHit points
customAttributes.retreatCostnumberRetreat cost
customAttributes.weaknessstringWeakness type
customAttributes.resistancestringResistance type
customAttributes.attack1objectFirst attack details

๐Ÿ“Š Enrichment Data (when enrichData: true)

FieldTypeDescription
_enrichedbooleanTrue if enrichment data was fetched
_enrichment.sales.totalSalesintegerTotal number of recorded sales
_enrichment.sales.lastSaleDatestringDate of most recent sale
_enrichment.sales.avgPricenumberAverage sale price
_enrichment.sales.priceRangeobject{min, max} sale prices
_enrichment.sales.recentSales[]arrayLast 10 sales with date, price, condition
_enrichment.pricePoints.normalobjectNormal printing prices
_enrichment.pricePoints.foilobjectFoil printing prices

๐Ÿท๏ธ Metadata Tags

FieldTypeDescription
_querystringSearch query that found this product
_scrapedPageintegerPage number where product was found
_sortOptionstringSort option used
_scrapedAtstringISO 8601 timestamp
_scraperVersionstringActor 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

  1. Open the TCGPlayer Scraper on Apify
  2. Click Run with default settings or configure input
  3. Download your scraped data as JSON, CSV, Excel, or access via REST API

๐Ÿ’ก Use Cases

Use CaseDescription
๐Ÿ” Card SearchQuickly find and compare cards across all TCGPlayer stores
๐Ÿ’ฐ Card CollectorsFind the best deals with true total cost (price + shipping)
๐Ÿ“ˆ Price TrackingMonitor market trends and price history over time
๐Ÿ’ต ArbitrageIdentify price discrepancies between sellers
๐Ÿ“‹ Inventory ManagementPull current pricing for your own listings
๐Ÿ” Market ResearchAnalyze pricing patterns across sets and rarities
๐Ÿ“Š Data AnalysisBuild 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:

FeatureThis ScraperTCGPlayer Official API
๐Ÿ”‘ API Key RequiredNoYes (requires partnership)
๐ŸŒ Access MethodPublic search APIAuthenticated REST API
๐Ÿ’ต Sales HistoryYes (via enrichData)Limited
๐Ÿ’ฐ Price DataReal-timeReal-time
โฑ๏ธ Rate LimitsAuto-managedBased on tier
๐Ÿ’ณ CostPay per Apify runSubscription required
๐ŸŽฏ Best ForOne-time scraping, researchProduction 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 sales
  • lowestPrice - 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.