Get Card Details by Certificate Numbers (Batch)
Changed onGet card details for multiple certificate numbers in a single request.
This endpoint performs batch lookups without price history:
- Checks the persistent validated-certificate cache for each certificate; queries GemRate only for certificates not 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
- Returns certificate info and card details (or null if not found in either lookup)
card_source reports how each 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 low-confidence matches with care.
Example curl:
curl -X POST -H "X-API-Key: your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"certs": ["76676185", "50000000", "12345678"],
"grader": "PSA"
}' \
"https://api.cardhedger.com/v1/cards/details-by-certs"
Returns card details for each certificate. Cards not found in CardHedge will have null card field. Maximum 100 certificates per request. Each submitted certificate counts as one unit toward the customer's minute and day rate limits, including duplicate and cached certificates. A batch that exceeds the remaining allowance is rejected with HTTP 429 before any certificates are processed. GemRate HTTP 400 not-found results are cached by grader and certificate and reused on later requests.
Each account also has a daily budget of uncached certificate lookups (shared by every certificate endpoint and every API key of the account, resetting at 00:00 UTC). Only certificates that were never looked up before spend it. Once it is spent, cached certificates are still served and any other certificate comes back with error: "gemrate_daily_quota_exceeded"; if none of the batch could be served the request returns HTTP 429 with a Retry-After header.
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
{
"certs": [
"76676185",
"50000000",
"12345678"
],
"grader": "PSA"
}Response
Successful Response
Example response
{
"results": [
{
"cert_info": {
"cert": "76676185",
"description": "2000 Pokemon Japanese Neo Wooper 194",
"gemrate_id": "9f4cd2db01a0a873ba5da0feb23428686fd556ac",
"grade": "PSA 9",
"grader": "psa",
"universal_gemrate_id": "9f4cd2db01a0a873ba5da0feb23428686fd556ac"
}
},
{
"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"
}
}
],
"total_found": 1,
"total_requested": 2
}Changes
- info
added the non-success response with the status
- info
added the optional property
//to the response with the status
- info