TCGplayer API endpoint
Returns one TCGplayer product in full: name, product line, set, rarity, card number, card text, attributes, the market, lowest and median prices, listing and seller counts, every purchasable condition/variant/language SKU, and TCGplayer's market and buylist price per printing.
/tcgplayer/productid is required: the TCGplayer product id, the number in tcgplayer.com/product/<id>. Find it with tcgplayer-search.
Notable response behavior:
description is the card text as plain text (TCGplayer sends HTML); number is the collector number.attributes holds the other labeled facts TCGplayer shows (artist, card type, ...), which differ by product line.skus lists every purchasable condition, variant (printing) and language combination with its TCGplayer SKU id.price_points has one entry per printing with market_price, listed_median_price and buylist_market_price. A figure is omitted when TCGplayer has none.total_listings and total_sellers count current offers.404. This call makes two upstream requests and is billed as two.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"product": {
"product_id": 42382,
"name": "Charizard",
"url": "https://www.tcgplayer.com/product/42382",
"image_url": "https://product-images.tcgplayer.com/fit-in/437x437/42382.jpg",
"product_line": "Pokemon",
"product_line_url_name": "pokemon",
"product_type": "Cards",
"set_name": "Base Set",
"set_code": "BS",
"rarity": "Holo Rare",
"number": "004/102",
"description": "Pokémon Power: Energy Burn As often as you like during your turn (before your attack), you may turn all Energy…",
"sealed": false,
"foil_only": true,
"normal_only": false,
"market_price": 954.65,
"lowest_price": 207.29,
"lowest_price_with_shipping": 207.3,
"total_listings": 139,
"total_sellers": 75,
"attributes": {
"Artist": "Mitsuhiro Arita",
"Attack 1": "[RRRR] Fire Spin (100)\nDiscard 2 Energy cards attached to Charizard in order to use this attack.",
"Card Number / Rarity": "004/102 / Holo Rare",
"Card Text": "Pokémon Power: Energy Burn As often as you like during your turn (before your attack), you may turn all Energy…",
"Card Type / HP / Stage": "Fire / 120 / Stage 2",
"TCGplayer Tip": "The Holo Rare Charizard card from Base Set has been the holy grail of Pokémon collectibles since 1999, and man…",
"Weakness / Resistance / Retreat Cost": "W / F-30 / 3"
},
"skus": [
{
"sku": 2999652,
"condition": "Near Mint",
"variant": "Holofoil",
"language": "English"
},
{
"sku": 2999653,
"condition": "Lightly Played",
"variant": "Holofoil",
"language": "English"
},
{
"sku": 2999654,
"condition": "Moderately Played",
"variant": "Holofoil",
"language": "English"
}
],
"price_points": [
{
"printing": "Normal"
},
{
"printing": "Foil",
"market_price": 954.65,
"listed_median_price": 587.98
}
]
}
}
}
| Field | Filled in, of 110 checked | Values in the sample |
|---|---|---|
| sku | 110 | |
| condition | 110 | Near Mint (22), Lightly Played (22), Moderately Played (22) and 2 more |
| variant | 110 | Normal (55), Foil (55) |
| language | 110 | “English” and 10 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | integer | Yes | TCGplayer product id (the number in tcgplayer.com/product/<id>), from tcgplayer-search | 243172 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/tcgplayer/product?id=243172" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"product": {
"product_id": 42382,
"name": "Charizard",
"url": "https://www.tcgplayer.com/product/42382",
"image_url": "https://product-images.tcgplayer.com/fit-in/437x437/42382.jpg",
"product_line": "Pokemon",
"product_line_url_name": "pokemon",
"product_type": "Cards",
"set_name": "Base Set",
"set_code": "BS",
"rarity": "Holo Rare",
"number": "004/102",
"description": "Pokémon Power: Energy Burn As often as you like during your turn (before your attack), you may turn all Energy…",
"sealed": false,
"foil_only": true,
"normal_only": false,
"market_price": 954.65,
"lowest_price": 207.29,
"lowest_price_with_shipping": 207.3,
"total_listings": 139,
"total_sellers": 75,
"attributes": {
"Artist": "Mitsuhiro Arita",
"Attack 1": "[RRRR] Fire Spin (100)\nDiscard 2 Energy cards attached to Charizard in order to use this attack.",
"Card Number / Rarity": "004/102 / Holo Rare",
"Card Text": "Pokémon Power: Energy Burn As often as you like during your turn (before your attack), you may turn all Energy…",
"Card Type / HP / Stage": "Fire / 120 / Stage 2",
"TCGplayer Tip": "The Holo Rare Charizard card from Base Set has been the holy grail of Pokémon collectibles since 1999, and man…",
"Weakness / Resistance / Retreat Cost": "W / F-30 / 3"
},
"skus": [
{
"sku": 2999652,
"condition": "Near Mint",
"variant": "Holofoil",
"language": "English"
},
{
"sku": 2999653,
"condition": "Lightly Played",
"variant": "Holofoil",
"language": "English"
},
{
"sku": 2999654,
"condition": "Moderately Played",
"variant": "Holofoil",
"language": "English"
}
],
"price_points": [
{
"printing": "Normal"
},
{
"printing": "Foil",
"market_price": 954.65,
"listed_median_price": 587.98
}
]
}
}
}Request schema
No body schema
Response schema
#/definitions/tcgplayer.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tcgplayer.ProductResponse | No | ||||
| data.product | tcgplayer.Product | No | ||||
| data.product.attributes | object | No | ||||
| data.product.description | string | No | ||||
| data.product.foil_only | boolean | No | ||||
| data.product.image_url | string | No | ||||
| data.product.lowest_price | number | No | ||||
| data.product.lowest_price_with_shipping | number | No | ||||
| data.product.market_price | number | No | ||||
| data.product.median_price | number | No | ||||
| data.product.name | string | No | ||||
| data.product.normal_only | boolean | No | ||||
| data.product.number | string | No | ||||
| data.product.price_points | array | No | ||||
| data.product.price_points[].buylist_market_price | number | No | ||||
| data.product.price_points[].listed_median_price | number | No | ||||
| data.product.price_points[].market_price | number | No | ||||
| data.product.price_points[].printing | string | No | ||||
| data.product.product_id | integer | No | ||||
| data.product.product_line | string | No | ||||
| data.product.product_line_url_name | string | No | ||||
| data.product.product_type | string | No | ||||
| data.product.rarity | string | No | ||||
| data.product.sealed | boolean | No | ||||
| data.product.set_code | string | No | ||||
| data.product.set_name | string | No | ||||
| data.product.skus | array | No | ||||
| data.product.skus[].condition | string | No | ||||
| data.product.skus[].language | string | No | ||||
| data.product.skus[].sku | integer | No | ||||
| data.product.skus[].variant | string | No | ||||
| data.product.total_listings | integer | No | ||||
| data.product.total_sellers | integer | No | ||||
| data.product.url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/tcgplayer/product?id=243172" \
-H "x-api-key: $CRAWLORA_API_KEY"