Skip to content

Cards

Card endpoints return card metadata, pricing data per printing type, and sealed product information.

GET /v1/cards/:id

Authentication: API key required

Example:

Terminal window
curl "https://api.tcgapi.dev/v1/cards/12345" \
-H "X-API-Key: YOUR_KEY"

Response:

{
"data": {
"id": 12345,
"name": "Charizard ex",
"clean_name": "charizard ex",
"number": "006",
"rarity": "Double Rare",
"image_url": "https://tcgplayer-cdn.tcgplayer.com/product/...",
"tcgplayer_id": 534280,
"tcgplayer_url": "https://www.tcgplayer.com/product/534280",
"product_type": "Cards",
"foil_only": 0,
"total_listings": 847,
"shipping_category_id": 1,
"product_status_id": 1,
"hp": "330",
"custom_attributes": {
"stage": "Stage 2",
"energyType": ["Fire"],
"weakness": "Wx2",
"retreatCost": "3",
"attack1": "[1RR] Brave Wing (100)",
"attack2": "[1RRR] Burning Dark (180)"
},
"set_id": 1234,
"set_name": "Obsidian Flames",
"game_id": 55,
"game_name": "Pokemon"
}
}

If you have a TCGPlayer product ID, look up the card directly:

GET /v1/cards/tcgplayer/:tcgplayerId

Authentication: API key required

Example:

Terminal window
curl "https://api.tcgapi.dev/v1/cards/tcgplayer/534280" \
-H "X-API-Key: YOUR_KEY"

Returns the card with all price data per printing type:

{
"data": {
"id": 12345,
"name": "Charizard ex",
"foil_only": 0,
"prices": [
{
"printing": "Normal",
"market_price": 24.99,
"low_price": 19.50,
"median_price": 26.50,
"lowest_with_shipping": 20.99,
"buylist_price": 18.00,
"price_change_24h": 2.15,
"last_updated_at": "2026-02-19T07:00:00.000Z"
},
{
"printing": "Foil",
"market_price": 42.50,
"low_price": 35.00,
"median_price": 45.00,
"lowest_with_shipping": 37.99,
"buylist_price": null,
"price_change_24h": 5.30,
"last_updated_at": "2026-02-19T07:00:00.000Z"
}
]
}
}
GET /v1/cards/:id/prices

Authentication: API key required

Query Parameters:

ParameterTypeDescription
printingstringFilter by Normal or Foil (optional)

Returns price data for all available printing types:

{
"data": [
{
"card_id": 12345,
"printing": "Normal",
"market_price": 24.99,
"low_price": 19.50,
"median_price": 26.50,
"lowest_with_shipping": 20.99,
"buylist_price": 18.00,
"price_change_24h": 2.15,
"price_change_7d": -5.30,
"price_change_30d": 12.00,
"last_updated_at": "2026-02-19T07:00:00.000Z"
}
]
}

If a card has only one printing type, a single object is returned instead of an array.

GET /v1/cards/:id/history

Authentication: API key required (Pro tier)

Query Parameters:

ParameterTypeDescription
rangestringmonth, quarter, or year (default: month)
printingstringFilter by Normal or Foil (optional)

Example:

Terminal window
curl "https://api.tcgapi.dev/v1/cards/12345/history?range=month&printing=Normal" \
-H "X-API-Key: YOUR_PRO_KEY"

Response:

{
"data": [
{
"date": "2026-02-19",
"printing": "Normal",
"market_price": 24.99,
"low_price": 19.50,
"avg_sales_price": 23.50,
"sales_volume": 12
},
{
"date": "2026-02-18",
"printing": "Normal",
"market_price": 24.47,
"low_price": 19.25,
"avg_sales_price": 22.80,
"sales_volume": 8
}
]
}
GET /v1/cards/:id/history/detailed

Authentication: API key required (Business tier)

Returns full history without date range limit. Includes all printing types, average sales prices, and daily sales volume.

Query Parameters:

ParameterTypeDescription
printingstringFilter by Normal or Foil (optional)
FieldTypeDescription
product_typestringCards or Sealed Products
foil_onlyinteger1 if card only exists as foil/holo
total_listingsintegerNumber of active seller listings
shipping_category_idinteger1=card, 3=box, 4=case
product_status_idinteger1=active, 20=presale
custom_attributesobjectGame-specific data (see below)

Pokemon: stage, energyType, hp, weakness, resistance, retreatCost, attack1-attack4, cardType, flavorText

Magic: The Gathering: color, manaCost, power, toughness, cardType, subType, flavorText, oracleText

Yu-Gi-Oh!: cardType, attribute, level, attack, defense, description