Skip to content

Cards

The Cards API exposes each item in a partner user's collection — a user_cards row joined to catalog metadata in cards. Use it to sync inventory, show grades in your portal, or resolve a user_card_id before fetching a grading.

List cards

http
GET /v1/cards?limit=25&sort=added&dir=desc
QueryDefaultDescription
limit25Page size, 1–100
cursorISO 8601 datetime; cards with added_at before this value
qSearch player, brand, year, card number, or team
gradedallall, graded, or raw
category_idFilter by catalog category ID
sortaddedadded, player, year, brand, grade
dirdescasc or desc

Response

json
{
  "cards": [
    {
      "user_card_id": 42,
      "card_id": 1001,
      "brand": "Bowman",
      "year": "2000",
      "card_number": "1",
      "variant": null,
      "player_name": "Vladimir Guerrero",
      "team_name": null,
      "category": "Baseball",
      "grade": "8.5",
      "grader": "chck",
      "shoebox_value": 12500,
      "added_at": "2026-02-17T06:34:29.825Z",
      "images": {
        "front": "https://…",
        "back": "https://…"
      }
    }
  ],
  "next_cursor": "2026-02-17T06:34:29.825Z"
}

Each list item includes presigned images.front and images.back (same shape as card detail; null when no attachment). URLs expire after 300 seconds by default.

shoebox_value is the catalog value in cents. When next_cursor is null, there are no more pages.

Pagination with cursor

When paginating with cursor, results are ordered by added_at descending regardless of sort/dir, matching the gradings list cursor behavior.

Card detail

http
GET /v1/cards/{user_card_id}

The path parameter is user_cards.id (not cards.id). Use user_card_id from the list response or your dashboard.

Response highlights

SectionContents
user_cardOwnership, grade, grader, share slug, timestamps
cardFull catalog metadata (player, team, TCDB fields, category)
imagesPresigned front / back plus slab and damage-report URLs when available
gradingsLinked grading UUIDs (use with Gradings)
grade_runsHistorical grade records with subgrades
model_gradeInternal model payload (optional)

Presigned URLs expire after 300 seconds by default (PRESIGNED_URL_TTL_SECONDS).

Typical flows

Inventory sync — Page through GET /v1/cards and store user_card_id, catalog fields, and presigned image URLs in your DB (refresh URLs before they expire).

Webhook → grading → card — On webhook, call GET /v1/gradings/{uuid}, then GET /v1/cards/{user_card_id} only when you need slab images, full grade history, or model payload.

Graded-only feedGET /v1/cards?graded=graded&sort=grade&dir=desc.

OpenAPI

Request/response schemas and try-it-out: API reference.

CHCK Partner API