Get Price History by Certificate Number
Changed onGet card information and pricing by grader certificate number.
This endpoint performs a multi-step lookup:
- Checks the persistent validated-certificate cache; queries GemRate only when that certificate has not been successfully retrieved before
- Fetches card details from CardHedge using GemRate IDs
- Fallback: if step 2 finds no card, matches the GemRate description against the AI card-match endpoint
- Retrieves price history for the card at the specified grade, served from the synced card_prices table with upstream fallback for cards the sync does not cover
Related: to look up many certificates at once, use details-by-certs (card details only) or batch-prices-by-cert (one price estimate per cert instead of price history).
card_source reports how the card was resolved -- gemrate_id for the direct GemRate ID lookup, or card_match for the description fallback. When the fallback is used, match_confidence carries the AI match score (0-1); treat prices derived from a low-confidence match with care. Cards resolved via the card_match fallback have null category_group and set_type -- the matcher does not return those two fields.
Example curl:
# Default: 180 days of price history
curl -X POST -H "X-API-Key: your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"cert": "76676185",
"grader": "PSA"
}' \
"https://api.cardhedger.com/v1/cards/prices-by-cert"
# Custom: 30 days of price history
curl -X POST -H "X-API-Key: your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"cert": "76676185",
"grader": "PSA",
"days": 30
}' \
"https://api.cardhedger.com/v1/cards/prices-by-cert"
Returns certificate info, card details, and price history (default: 180 days, max: 365 days).
Daily allowance of uncached lookups. The first time a certificate is looked up it needs a live call to our grading-data provider and draws on your account's daily allowance of such lookups; repeat lookups are served from cache and do not. See Rate limits in the API overview for your tier's allowance.
Request
- Base URLhttps://api.cardhedger.com
- AuthAPI key in header X-API-Key
Request body
Example request
{
"cert": "76676185",
"days": 180,
"grader": "PSA"
}Response
Successful Response
Example response
{
"card": {
"card_id": "1699670576265x928796749151534600",
"category": "Baseball",
"category_group": "Sports Cards",
"description": "C.C. Sabathia 1999 Bowman Chrome Baseball",
"image": "https://942284f33c575895b4be9de571ca6e40.cdn.bubble.io/d112/f1699670857725x475053799924132860/resized_20231111_024737.jpeg",
"number": "344",
"player": "C.C. Sabathia",
"set": "1999 Bowman Chrome Baseball",
"set_type": "Bowman Chrome Baseball",
"variant": "Base"
},
"cert_info": {
"cert": "50000000",
"description": "1999 Bowman Chrome C.C. Sabathia 344",
"gemrate_id": "25783324b9710f1366ca4d54f3dd4689c02b6885",
"grade": "PSA 10",
"grader": "psa",
"universal_gemrate_id": "25783324b9710f1366ca4d54f3dd4689c02b6885"
},
"prices": [
{
"Grade": "PSA 10",
"card_id": "1699670576265x928796749151534600",
"closing_date": "2025-10-26T23:59:00.000Z",
"price": "125.50"
},
{
"Grade": "PSA 10",
"card_id": "1699670576265x928796749151534600",
"closing_date": "2025-10-25T23:59:00.000Z",
"price": "122.00"
}
]
}Changes
- info
added the non-success response with the status
- info