Endpoints
Cards
Since API 2.0 a card sold in both markets is one card. Request it with its US id or its EU id and GET /cards/:id returns both markets: TCGPlayer and eBay prices in USD next to CardMarket prices in EUR. GET /cards lists it once, under its US id, with both markets too. Use these routes when you need one search layer across US and EU inventories for dashboards, alerts, collection tooling, sealed-product pricing and AI enrichment.
| Coverage | What you get |
|---|---|
| US | TCGPlayer market prices plus eBay sold sales for raw conditions, with graded tiers on higher plans. |
| EU | CardMarket price trend data and active listings, including condition, grade, per-country and per-language breakdowns where available. |
| Price depth | Average, low, high, sale count, approximate-sale flag, rolling averages, medians, top price and freshness fields. |
| Product taxonomy | Cards and sealed products expose productType and productFamily, so boosters, boxes, tins, decks and accessories can be filtered directly. |
Product filters
product_type accepts single, sealed, code_card and accessory. Use product_family for narrower sealed-product groups such as booster_box, booster_pack, booster_bundle, elite_trainer_box, tin, deck, box_collection and blister.
Approximate sale counts
approxSaleCount tells you whether a source uses an approximate sale count. This matters for unstable sold-listing sources such as ebay, where revoked, removed or reclassified listings can change the visible count after the initial sale. Stable marketplace sources return approxSaleCount: false.
Both markets in one response
GET /cards/:id and each item in GET /cards carry two fields that cover both markets. Each market keeps its own currency; nothing is converted.
| Field | What it contains |
|---|---|
markets | One entry per market, keyed US and EU: available, cardId, currency and variant, plus finish and link on the linked market. The linked card's id is in markets.EU.cardId or markets.US.cardId, and every id works with all /cards endpoints. The market of the id you request is always present. |
prices | Prices grouped by grade or condition first, then market, then source, for example prices.NEAR_MINT.US.tcgplayer, prices.PSA_10.US.ebay or prices.NEAR_MINT.EU.cardmarket_unsold. Each price object has avg, low, high, saleCount and, where available, rolling averages and medians. |
EU and graded access is unchanged. On plans without EU access the EU entry is { "available": false, "reason": "plan" } and no EU prices are returned. Graded tiers appear only on plans that include graded data. Old US and EU ids and slugs keep working, and one request now covers both markets, so most clients need fewer calls.
Related: Sets, Markets and tiers, Authentication
Search cards with prices and pagination
GET /v2/cardsAPI key requiredSearch cards and sealed products with pagination. Each item includes plan-filtered prices, grouped by grade or condition, then market, then source. saleCount is returned for all non-AGGREGATED tiers, and approxSaleCount tells you whether that source uses an approximate count. Filter by set, name, card number, variant, rarity, game, product taxonomy, or market. A card linked across markets is listed once, as the combined card: the US record's fields plus markets and prices for both markets, the same as GET /cards/:id. Cards without a linked card are listed on their own. Lookups by cardmarket_ids, tcgplayer_ids or an EU set slug also return linked EU cards as the combined card: the top-level id is the US id, and the EU id is in markets.EU.cardId. EU ids stay valid for GET /cards/:id and price history.
curl -H "X-API-Key: YOUR_KEY" "https://api.poketrace.com/v2/cards?search=charizard&market=US&limit=2"// A linked card is listed once, under its US id, with both markets. market=EU returns the same item.// prices is grouped by grade, then market, then source.{"data": [{"id": "019bff77-befa-771d-bab0-f5909f0a78c9","name": "Charizard","cardNumber": "004/102","set": { "slug": "base-set", "name": "Base Set" },"variant": "Holofoil","rarity": "Rare Holo","productType": "single","productFamily": "card","image": "https://cdn.poketrace.com/cards/...","game": "pokemon","market": "US","currency": "USD","refs": { "tcgplayerId": "83356", "cardmarketId": "273927" },"lastUpdated": "2026-11-06T12:00:00Z","markets": {"US": { "available": true, "cardId": "019bff77-befa-771d-bab0-f5909f0a78c9", "currency": "USD", "variant": "Holofoil" },"EU": { "available": true, "cardId": "eu_273927", "currency": "EUR", "variant": "Holofoil", "finish": "base", "link": "exact" }},"prices": {"PSA_10": {"US": {"ebay": { "avg": 5200, "low": 4800, "high": 5600, "saleCount": 47, "approxSaleCount": true, "avg7d": 5100, "median7d": 5120 }},"EU": {"cardmarket_unsold": { "avg": 4200, "low": 3800, "high": 4600, "saleCount": 20, "approxSaleCount": false, "median7d": 4100 }}},"NEAR_MINT": {"US": {"ebay": { "avg": 890, "low": 750, "high": 1050, "saleCount": 156, "approxSaleCount": true, "avg7d": 870, "median7d": 875 },"tcgplayer": { "avg": 420, "low": 380, "high": 480, "saleCount": 89, "approxSaleCount": false, "avg7d": 410, "median7d": 412 }},"EU": {"cardmarket_unsold": { "avg": 420, "low": 350, "high": 890, "saleCount": 125, "approxSaleCount": false, "median7d": 410 }}},"AGGREGATED": {"EU": {"cardmarket": { "avg": 385, "low": null, "high": null, "avg1d": 380, "avg7d": 375, "avg30d": 370 }}}}}],"pagination": { "hasMore": true, "nextCursor": "YnNfMg==", "count": 1 }}
Get card by ID with full pricing
GET /v2/cards/:idAPI key requiredGet one card with a US id or an EU id. Linked cards return both markets: markets lists the card id, currency and variant per market, and prices groups prices by grade, then market, then source. US sources: ebay (all tiers) + tcgplayer (raw only), in USD. EU sources: cardmarket (AGGREGATED tier from Price Trend, no saleCount) + cardmarket_unsold (active listings with medians), in EUR. Includes rolling medians (median3d/7d/30d) calculated from individual listings, excluding anomalies. approxSaleCount tells you whether a source uses an approximate sale count.
curl -H "X-API-Key: YOUR_KEY" "https://api.poketrace.com/v2/cards/019bff77-befa-771d-bab0-f5909f0a78c9"// Requested with the US id. The same card requested with "eu_273927" returns the same prices; id, market,// currency and refs then describe the EU record, and finish and link move to markets.US (the linked market).// prices is grouped by grade, then market, then source.{"data": {"id": "019bff77-befa-771d-bab0-f5909f0a78c9", "name": "Charizard", "cardNumber": "004/102", "variant": "Holofoil", "rarity": "Rare Holo", "productType": "single", "productFamily": "card", "game": "pokemon", "market": "US", "currency": "USD", "topPrice": 5200, "totalSaleCount": 292, "hasGraded": true, "lastUpdated": "2026-11-06T12:00:00Z","set": { "slug": "base-set", "name": "Base Set" },"refs": { "tcgplayerId": "83356", "cardmarketId": null },"gradedOptions": ["PSA_10", "PSA_9", "BGS_9_5", "CGC_9"],"conditionOptions": ["NEAR_MINT", "LIGHTLY_PLAYED"],"markets": {"US": { "available": true, "cardId": "019bff77-befa-771d-bab0-f5909f0a78c9", "currency": "USD", "variant": "Holofoil" },"EU": { "available": true, "cardId": "eu_273927", "currency": "EUR", "variant": "Holofoil", "finish": "base", "link": "exact" }},"prices": {"PSA_10": {"US": {"ebay": { "avg": 5200, "low": 4800, "high": 5600, "saleCount": 47, "approxSaleCount": true, "avg7d": 5100, "median7d": 5120 }},"EU": {"cardmarket_unsold": {"avg": 4200, "low": 3800, "high": 4600, "saleCount": 20, "approxSaleCount": false, "median7d": 4100,"country": {"DE": { "avg": 4150, "low": 3800, "high": 4500, "saleCount": 10, "approxSaleCount": false }}}}},"NEAR_MINT": {"US": {"ebay": { "avg": 890, "low": 750, "high": 1050, "saleCount": 156, "approxSaleCount": true, "avg7d": 870, "median7d": 875 },"tcgplayer": { "avg": 420, "low": 380, "high": 480, "saleCount": 89, "approxSaleCount": false, "avg7d": 410, "median7d": 412 }},"EU": {"cardmarket_unsold": {"avg": 420, "low": 350, "high": 890, "saleCount": 125, "approxSaleCount": false, "median7d": 410,"country": {"DE": {"avg": 410, "low": 350, "high": 650, "saleCount": 45, "approxSaleCount": false,"language": {"EN": { "avg": 432, "low": 380, "high": 650, "saleCount": 18, "approxSaleCount": false }}},"FR": { "avg": 450, "low": 380, "high": 890, "saleCount": 30, "approxSaleCount": false }}}}},"MINT": {"EU": {"cardmarket_unsold": { "avg": 610, "low": 540, "high": 720, "saleCount": 14, "approxSaleCount": false, "median7d": 600 }}},"AGGREGATED": {"EU": {"cardmarket": { "avg": 385, "low": null, "high": null, "avg1d": 380, "avg7d": 375, "avg30d": 370 }}}}}}
Get price history for a specific tier
GET /v2/cards/:id/prices/:tier/historyAPI key requiredGet historical price data for a specific tier. Add market=US or market=EU to read the linked card's history in that market through the same id (404 when there is no linked card in that market). Each entry includes the source, rolling medians, saleCount, and approxSaleCount. AGGREGATED tier returns avg1d/avg7d/avg30d from Price Trend (no saleCount, null low/high). Condition/graded tiers include per-country breakdowns, with language nested under each country.
curl -H "X-API-Key: YOUR_KEY" "https://api.poketrace.com/v2/cards/019bff77.../prices/PSA_10/history?period=30d"{"data": [{ "date": "2026-01-27", "source": "ebay", "avg": 5200, "low": 4800, "high": 5600, "saleCount": 3, "approxSaleCount": true, "median3d": 5180, "median7d": 5120, "median30d": 4980 },{ "date": "2026-01-26", "source": "ebay", "avg": 5150, "low": 4750, "high": 5500, "saleCount": 5, "approxSaleCount": true, "median3d": 5140, "median7d": 5100, "median30d": 4950 }],"pagination": { "hasMore": true, "nextCursor": "MjAyNi0wMS0yNQ==", "count": 2 }}
Get sold eBay listings for a card
GET /v2/cards/:id/listingsAPI key required · Scale or Business planGet individual sold eBay listings for a card. Includes graded and raw sales with anomaly detection flags. Rate limited to 30 requests per 30 seconds per account.
curl -H "X-API-Key: YOUR_KEY" "https://api.poketrace.com/v2/cards/019bff77.../listings?grader=PSA&grade=10"{"data": [{"id": 12345,"sourceItemId": "123456789012","listingType": "sold","title": "PSA 10 Charizard Base Set 1999 Pokemon","price": 5250.00,"currency": "USD","listingUrl": "https://www.ebay.com/itm/123456789012","condition": null,"grader": "PSA","grade": "10","soldAt": "2026-01-27T15:30:00Z","anomalyFlag": null,"anomalyReason": null},{"id": 12344,"sourceItemId": "123456789011","listingType": "sold","title": "Charizard Base Set NM/M","price": 890.00,"currency": "USD","listingUrl": "https://www.ebay.com/itm/123456789011","condition": "NEAR_MINT","grader": null,"grade": null,"soldAt": "2026-01-27T14:20:00Z","anomalyFlag": "low_price","anomalyReason": "Price 60% below median"}],"pagination": { "hasMore": true, "nextCursor": "MTIzNDM=", "count": 2 }}