PriceCharting API endpoint
Returns the monthly price history behind a PriceCharting product page's price chart: one series per price column (for a trading card Ungraded, Grade 7, Grade 8, Grade 9, Grade 9.5 and PSA 10; for a video game Loose, Complete, New, Graded, Box and Manual), each a list of dated prices, oldest first, starting wherever PriceCharting's chart starts for that product. Trading cards also carry the PSA and CGC population counts by grade 1 to 10. Look a product up by id, by its pricecharting.com address, or by console and slug. Price data is PriceCharting's; cite it with a link when you display it.
/pricecharting/price-historyGive exactly one way to identify the product, as in pricecharting-product:
id: the PriceCharting product id. It costs one extra request to find the product page, so prefer the next two forms when you have them.url: a pricecharting.com/game/<console>/<slug> address.console and slug: the two path parts of that address.Notable response behavior:
series has one entry per price column the product shows, in the price table's order. tab is the column's id (used, cib, new, graded, box-only, manual-only), the same value as recent_sales[].tab in pricecharting-product. label is the column name on this product: Ungraded, Grade 7, Grade 8, Grade 9, Grade 9.5, PSA 10 for trading cards; Loose, Complete, New, Graded, Box, Manual for video games; other categories use their own names (a Funko Pop shows three columns).{date, price}: the first day of a month and the price in US dollars. Points run oldest first. A month with no price is left out, so a series can be shorter than another or empty. The newest point is the current month and equals the product's current price.population is present for trading cards: psa and cgc are the graded-copy counts for grades 1 to 10 (grade, count). It is left out when the product has no population report or its grade scale is not a plain 1 to 10 (comics).404.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"product": {
"id": 630417,
"name": "Charizard #4",
"console": "Pokemon Base Set",
"console_slug": "pokemon-base-set",
"slug": "charizard-4",
"url": "https://www.pricecharting.com/game/pokemon-base-set/charizard-4"
},
"currency": "USD",
"series": [
{
"tab": "used",
"label": "Ungraded",
"points": [
{
"date": "2020-12-01",
"price": 225
},
{
"date": "2021-01-01",
"price": 282.4
},
{
"date": "2021-02-01",
"price": 260
}
]
},
{
"tab": "cib",
"label": "Grade 7",
"points": [
{
"date": "2020-12-01",
"price": 517
},
{
"date": "2021-01-01",
"price": 500
},
{
"date": "2021-02-01",
"price": 623.18
}
]
},
{
"tab": "new",
"label": "Grade 8",
"points": [
{
"date": "2020-12-01",
"price": 834
},
{
"date": "2021-01-01",
"price": 797
},
{
"date": "2021-02-01",
"price": 970.39
}
]
}
],
"population": {
"psa": [
{
"grade": 1,
"count": 4096
},
{
"grade": 2,
"count": 3573
},
{
"grade": 3,
"count": 5580
}
],
"cgc": [
{
"grade": 1,
"count": 0
},
{
"grade": 2,
"count": 0
},
{
"grade": 3,
"count": 1
}
]
}
}
}
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| grade | 10 | 1 to 10, median 5 |
| count | 10 | 486 to 17,851, median 8,455 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | integer | No | PriceCharting product id from pricecharting-search or pricecharting-console (costs one extra request) | 630417 | |
| url | string | No | A pricecharting.com/game/<console>/<slug> product address | https://www.pricecharting.com/game/pokemon-base-set/charizard-4 | |
| console | string | No | Console or set slug, used together with slug | pokemon-base-set | |
| slug | string | No | Product slug, used together with console | charizard-4 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/pricecharting/price-history" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"product": {
"id": 630417,
"name": "Charizard #4",
"console": "Pokemon Base Set",
"console_slug": "pokemon-base-set",
"slug": "charizard-4",
"url": "https://www.pricecharting.com/game/pokemon-base-set/charizard-4"
},
"currency": "USD",
"series": [
{
"tab": "used",
"label": "Ungraded",
"points": [
{
"date": "2020-12-01",
"price": 225
},
{
"date": "2021-01-01",
"price": 282.4
},
{
"date": "2021-02-01",
"price": 260
}
]
},
{
"tab": "cib",
"label": "Grade 7",
"points": [
{
"date": "2020-12-01",
"price": 517
},
{
"date": "2021-01-01",
"price": 500
},
{
"date": "2021-02-01",
"price": 623.18
}
]
},
{
"tab": "new",
"label": "Grade 8",
"points": [
{
"date": "2020-12-01",
"price": 834
},
{
"date": "2021-01-01",
"price": 797
},
{
"date": "2021-02-01",
"price": 970.39
}
]
}
],
"population": {
"psa": [
{
"grade": 1,
"count": 4096
},
{
"grade": 2,
"count": 3573
},
{
"grade": 3,
"count": 5580
}
],
"cgc": [
{
"grade": 1,
"count": 0
},
{
"grade": 2,
"count": 0
},
{
"grade": 3,
"count": 1
}
]
}
}
}Request schema
No body schema
Response schema
#/definitions/pricecharting.priceHistoryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | pricecharting.PriceHistoryResponse | No | ||||
| data.currency | string | No | ||||
| data.population | pricecharting.Population | No | ||||
| data.population.cgc | array | No | ||||
| data.population.cgc[].count | integer | No | ||||
| data.population.cgc[].grade | integer | No | ||||
| data.population.psa | array | No | ||||
| data.population.psa[].count | integer | No | ||||
| data.population.psa[].grade | integer | No | ||||
| data.product | pricecharting.ProductRef | No | ||||
| data.product.console | string | No | ||||
| data.product.console_slug | string | No | ||||
| data.product.id | integer | No | ||||
| data.product.name | string | No | ||||
| data.product.slug | string | No | ||||
| data.product.url | string | No | ||||
| data.series | array | No | ||||
| data.series[].label | string | No | Label is the column's name on this product, for example Ungraded, Grade 9 or PSA 10 on a card and Loose, Complete or New on a game. | |||
| data.series[].points | array | No | ||||
| data.series[].points[].date | string | No | Date is the first day of the month the price describes (YYYY-MM-DD). | |||
| data.series[].points[].price | number | No | ||||
| data.series[].tab | string | No | Tab is the column's sales tab id, the same value as recent_sales[].tab in pricecharting-product: used, cib, new, graded, box-only or manual-only. | |||
| 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/pricecharting/price-history" \
-H "x-api-key: $CRAWLORA_API_KEY"