TCGplayer API endpoint
Returns a TCGplayer product's price history over a month, quarter, half year or year, per condition, printing and language: market price, quantity sold, transaction count and low/high sale price for each period, plus the average daily sales volume.
/tcgplayer/price-historyParameters:
id (required): the TCGplayer product id (see tcgplayer-search).range (optional): month, quarter (default), semi-annual or annual.Notable response behavior:
skus has one entry per condition, printing (variant) and language, each with its buckets. Buckets run newest first: daily for month (30), every 3 days for quarter (30) and weekly for semi-annual (26) and annual (52). start_date is the first day of the bucket.market_price is TCGplayer's market price for that period; quantity_sold and transaction_count count completed sales.skus list.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"product_id": 42382,
"range": "month",
"skus": [
{
"sku": 2999655,
"variant": "Holofoil",
"language": "English",
"condition": "Heavily Played",
"average_daily_quantity_sold": 0,
"average_daily_transaction_count": 0,
"total_quantity_sold": 29,
"total_transaction_count": 29,
"buckets": [
{
"start_date": "2026-10-25",
"market_price": 247.58,
"quantity_sold": 0,
"transaction_count": 0,
"low_sale_price": 0,
"high_sale_price": 0,
"low_sale_price_with_shipping": 0,
"high_sale_price_with_shipping": 0
}
]
}
]
}
}
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | integer | Yes | TCGplayer product id from tcgplayer-search | 42382 | |
| range | string | No | quarter | History window; defaults to quarter Allowed values: month, quarter, semi-annual, annual. | quarter |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/tcgplayer/price-history?id=42382&range=month" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"product_id": 42382,
"range": "month",
"skus": [
{
"sku": 2999655,
"variant": "Holofoil",
"language": "English",
"condition": "Heavily Played",
"average_daily_quantity_sold": 0,
"average_daily_transaction_count": 0,
"total_quantity_sold": 29,
"total_transaction_count": 29,
"buckets": [
{
"start_date": "2026-10-25",
"market_price": 247.58,
"quantity_sold": 0,
"transaction_count": 0,
"low_sale_price": 0,
"high_sale_price": 0,
"low_sale_price_with_shipping": 0,
"high_sale_price_with_shipping": 0
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/tcgplayer.priceHistoryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tcgplayer.PriceHistoryResponse | No | ||||
| data.product_id | integer | No | ||||
| data.range | string | No | ||||
| data.skus | array | No | ||||
| data.skus[].average_daily_quantity_sold | number | No | ||||
| data.skus[].average_daily_transaction_count | number | No | ||||
| data.skus[].buckets | array | No | ||||
| data.skus[].buckets[].high_sale_price | number | No | ||||
| data.skus[].buckets[].high_sale_price_with_shipping | number | No | ||||
| data.skus[].buckets[].low_sale_price | number | No | ||||
| data.skus[].buckets[].low_sale_price_with_shipping | number | No | ||||
| data.skus[].buckets[].market_price | number | No | ||||
| data.skus[].buckets[].quantity_sold | integer | No | ||||
| data.skus[].buckets[].start_date | string | No | ||||
| data.skus[].buckets[].transaction_count | integer | No | ||||
| data.skus[].condition | string | No | ||||
| data.skus[].language | string | No | ||||
| data.skus[].sku | integer | No | ||||
| data.skus[].total_quantity_sold | integer | No | ||||
| data.skus[].total_transaction_count | integer | No | ||||
| data.skus[].variant | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/price-history?id=42382&range=month" \
-H "x-api-key: $CRAWLORA_API_KEY"