CompSniper
100 free requests, full sale history

TCGplayer sold prices and listings through one API.

Use GET /v1/tcgplayer/sold to get a card's TCGplayer completed sales (price, condition, printing, language, quantity, sale time) and optional market price history, and GET /v1/tcgplayer/listings for its active listings with seller details. Search by card name or TCGplayer product ID. You get the full sale history, not the 5 sales TCGplayer shows signed-out visitors, with one CompSniper API key.

Reviewed by Marc Andrew, owner of CompSniper. Updated October 10, 2026.

curl --fail-with-body \
  -H "Authorization: Bearer $COMPSNIPER_API_KEY" \
  "https://api.compsniper.com/v1/tcgplayer/sold?keyword=charizard+ex+223%2F197&count=100&history=quarter"
Endpoint
GET /v1/tcgplayer/sold
Results per page
Up to 250 sales per call
Coverage
TCGplayer, all product lines
What the API provides

Marketplace evidence without building another scraper

Full sale history

Up to 250 of the newest recorded sales per product, each with condition, printing, language, quantity, price, shipping and sale time.

Market price history

Add history=month, quarter or annual for daily or weekly market-price buckets with units sold, transaction count and low and high sale price.

One key for every marketplace

Use the same CompSniper key, allowance and credits for TCGplayer, eBay sold comps, 3-year eBay history, Poshmark and Mercari.

Request filters

Start with a keyword, then narrow the page

Authentication uses the same CompSniper API key as every other endpoint. No TCGplayer account or developer key is required.

ParameterAccepted valuesDefault
keywordCard or product name, up to 300 charactersRequired unless productId
productIdTCGplayer product IDNone
count1 to 250 sales (listings: 1 to 50)100 (listings: 25)
conditionFor example Near Mint, Lightly PlayedAll
variantFor example Normal, Holofoil, Reverse HolofoilAll
languageFor example English, JapaneseAll
historynone, month, quarter, annual (sold only)none
page1 to 50 (listings only)1
Response

Stable JSON with native fields

Every successful sold page includes a deterministic median, average, p25 to p75 range, and sample size calculated from the returned prices.

Response
{
  "keyword": "charizard ex 223/197",
  "marketplace": "tcgplayer",
  "product": {
    "productId": 509980,
    "name": "Charizard ex - 223/197",
    "productLine": "Pokemon",
    "setName": "SV03: Obsidian Flames",
    "number": "223/197",
    "marketPrice": 97.84,
    "url": "https://www.tcgplayer.com/product/509980"
  },
  "otherMatches": [],
  "salesHistory": "full",
  "totalSales": 702,
  "totalItems": 100,
  "items": [
    {
      "condition": "Near Mint",
      "variant": "Holofoil",
      "language": "English",
      "quantity": 1,
      "price": 97.84,
      "shipping": 0,
      "soldAt": "2026-10-10T01: 21: 29Z"
    }
  ],
  "priceHistory": [
    { "date": "2026-10-05", "condition": "Near Mint", "marketPrice": 97.84, "quantitySold": 10, "lowSalePrice": 91.99, "highSalePrice": 104.26 }
  ],
  "summary": { "count": 100, "currency": "USD", "median": 97.84 }
}
Returned fields

The data needed for pricing workflows

  • Sold price, shipping and total for every sale
  • Condition, printing, language and quantity
  • Exact sale timestamp
  • Product name, set, number, rarity and market price
  • Market price history with units sold
  • Active listings with seller name, rating and sales
  • Median, mean, p25, p75 of the returned sales
  • Close product matches for ambiguous names
Common workflows

Built for resale tools and repeatable research

Card pricing apps

Show what a card actually sold for by condition and printing, not just a single market price.

Store repricing

Compare your inventory against recent TCGplayer sales and active listings before you list or buy collections.

Cross-market comps

Combine TCGplayer sales with eBay sold comps, including graded copies, for a fuller picture of a card's value.

FAQ

TCGplayer API questions

Does TCGplayer have a public API?+

TCGplayer's own developer API is not open to new developers. CompSniper provides versioned endpoints for TCGplayer completed sales, market price history and active listings, so an app can get the data with one CompSniper API key and no TCGplayer developer account.

Do I get the full sale history or only the last 5 sales?+

The full history. Signed-out visitors on TCGplayer see only the latest 5 sales of a product; CompSniper uses signed-in TCGplayer sessions, so /v1/tcgplayer/sold returns up to 250 of the newest recorded sales, with condition, printing, language, quantity and price. The response says salesHistory: "full".

Which games does it cover?+

Every product line TCGplayer sells, including Pokemon, Magic: The Gathering, Yu-Gi-Oh, One Piece, Lorcana and Flesh and Blood, plus sealed products such as booster boxes.

Can I search by card name, or do I need the product ID?+

Either. Send a keyword such as the card name and number, and CompSniper picks the best matching product and lists other close matches in otherMatches. When a name is ambiguous, repeat the call with the exact productId from a TCGplayer product URL.

How is it billed?+

One successful call is one request from your normal CompSniper allowance, for sold and listings alike. Failed requests are free. The free plan includes 100 requests a month.

Run your first TCGplayer search

Create a free account, get an API key, and use the same quota from REST, the dashboard, or CompSniper MCP tools.