Full sale history
Up to 250 of the newest recorded sales per product, each with condition, printing, language, quantity, price, shipping and sale time.
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"Up to 250 of the newest recorded sales per product, each with condition, printing, language, quantity, price, shipping and sale time.
Add history=month, quarter or annual for daily or weekly market-price buckets with units sold, transaction count and low and high sale price.
Use the same CompSniper key, allowance and credits for TCGplayer, eBay sold comps, 3-year eBay history, Poshmark and Mercari.
Authentication uses the same CompSniper API key as every other endpoint. No TCGplayer account or developer key is required.
| Parameter | Accepted values | Default |
|---|---|---|
| keyword | Card or product name, up to 300 characters | Required unless productId |
| productId | TCGplayer product ID | None |
| count | 1 to 250 sales (listings: 1 to 50) | 100 (listings: 25) |
| condition | For example Near Mint, Lightly Played | All |
| variant | For example Normal, Holofoil, Reverse Holofoil | All |
| language | For example English, Japanese | All |
| history | none, month, quarter, annual (sold only) | none |
| page | 1 to 50 (listings only) | 1 |
Every successful sold page includes a deterministic median, average, p25 to p75 range, and sample size calculated from the returned prices.
{
"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 }
}Show what a card actually sold for by condition and printing, not just a single market price.
Compare your inventory against recent TCGplayer sales and active listings before you list or buy collections.
Combine TCGplayer sales with eBay sold comps, including graded copies, for a fuller picture of a card's value.
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.
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".
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.
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.
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.
Create a free account, get an API key, and use the same quota from REST, the dashboard, or CompSniper MCP tools.