API documentation
One REST API for trading-card prices across many marketplaces and six languages, reconciled into a single coherent view for both singles and sealed products. Below: every endpoint, copy-paste examples in cURL / JavaScript / Python, and a live tester (runs against a demo key, no signup needed to try). Build with your own key — it's free.
One fair value, with confidence
We blend prices across sources into a single outlier-trimmed value per card and language, and return a confidence score — so you don't have to reconcile marketplaces, currencies and conditions yourself.
Consistent by design
Graded values (PSA / CGC / BGS) and raw conditions stay logically ordered, and live eBay / Vinted listings are matched to the exact card — right number, set and language, not fuzzy name lookups.
Built to integrate
Metered keys with quotas and rate limits, batch lookups up to 500 ids per call, daily-refreshed history with all-time high/low, and a browsable catalog of singles and sealed products.
Authentication
Every request needs your API key as a Bearer token. Get a free key, then:
Authorization: Bearer YOUR_API_KEY
Base URL: https://api.tcgapi.io · responses are JSON · prices in EUR (USD where noted via currency).
Examples in
Cards & search
GET
/v1/cards?game=pokemon&search=Charizard&language=EN&pageSize=10Search / list cards
Filter by game, language, rarity, set; full-text on name (FR/EN/IT/日本語, accent-insensitive). Returns cards with set, image and prices.
curl "https://api.tcgapi.io/v1/cards?game=pokemon&search=Charizard&language=EN&pageSize=10" \ -H "Authorization: Bearer $TCG_API_KEY"
GET
/v1/cards?cardmarketIds=23820,886487&pageSize=50Batch lookup by Cardmarket id
Resolve many cards at once by their Cardmarket id — matches both the internal id AND the product id.
curl "https://api.tcgapi.io/v1/cards?cardmarketIds=23820,886487&pageSize=50" \ -H "Authorization: Bearer $TCG_API_KEY"
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fbaCard detail
Full card: names, image, current prices (all sources), graded values.
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba" \ -H "Authorization: Bearer $TCG_API_KEY"
Prices
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fba/price?language=FR&kind=nm_lowResolved best price
One value per card for a (language, kind): best source wins, ties by recency, with cross-source consensus + staleness.
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba/price?language=FR&kind=nm_low" \ -H "Authorization: Bearer $TCG_API_KEY"
POST
/v1/cards/pricesBatch resolved prices
Up to 500 ids in one call. kind selects the source: nm_low=Cardmarket(EUR), market/mid=TCGplayer(EUR).
curl -X POST "https://api.tcgapi.io/v1/cards/prices" \
-H "Authorization: Bearer $TCG_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "ids": ["card_e7c8762fbf4c55bdd5af2fba"], "language": "EN", "kind": "market" }'POST endpoint — use the code above with your key.
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fba/tcgplayer-priceTCGplayer price
Per-card TCGplayer market + mid (EUR) + tcgplayerUrl deep-link.
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba/tcgplayer-price" \ -H "Authorization: Bearer $TCG_API_KEY"
Marketplace listings
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fba/listings?source=ebay-active&language=FR&condition=near_minteBay active (by language + NM)
Live fixed-price + auctions. language routes the marketplace (FR→eBay.fr, EN→US…), condition filters (near_mint = NM only).
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba/listings?source=ebay-active&language=FR&condition=near_mint" \ -H "Authorization: Bearer $TCG_API_KEY"
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fba/listings?source=ebayeBay sold (last sales)
Recently completed eBay sales with sold dates.
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba/listings?source=ebay" \ -H "Authorization: Bearer $TCG_API_KEY"
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fba/auctionsAuction bid history
Progression of live auctions: current bid + when recorded + when it ends.
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba/auctions" \ -H "Authorization: Bearer $TCG_API_KEY"
History & analytics
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fba/history?language=FR&kind=nm_low&days=180Price history
Daily history per (language, kind, source). Backfilled ~570 days (source=pokeitem).
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba/history?language=FR&kind=nm_low&days=180" \ -H "Authorization: Bearer $TCG_API_KEY"
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fba/analytics?language=FRPrice analytics (outlier-robust)
current + 7d/30d median avg + %change + 7d range + all-time low/high + trend + graded. Cleaned of biased spikes.
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba/analytics?language=FR" \ -H "Authorization: Bearer $TCG_API_KEY"
GET
/v1/cards/card_e7c8762fbf4c55bdd5af2fba/gradedGraded values
PSA / CGC / BGS market value per grade, with sample counts.
curl "https://api.tcgapi.io/v1/cards/card_e7c8762fbf4c55bdd5af2fba/graded" \ -H "Authorization: Bearer $TCG_API_KEY"
Catalog status
GET
/v1/status/catalogCatalog coverage
Totals + breakdowns by game / language / condition / graded company.
curl "https://api.tcgapi.io/v1/status/catalog" \ -H "Authorization: Bearer $TCG_API_KEY"
GET
/v1/status/catalog?breakdown=card_language_coverageEN coverage (union)
Cards priced by at least one EN source + per-source counts.
curl "https://api.tcgapi.io/v1/status/catalog?breakdown=card_language_coverage" \ -H "Authorization: Bearer $TCG_API_KEY"
GET
/v1/status/facetsFilterable facets
Games / languages / rarities with counts — powers the browse filters.
curl "https://api.tcgapi.io/v1/status/facets" \ -H "Authorization: Bearer $TCG_API_KEY"