BinderDex API

Get a card's price statistics

GET /v1/cards/{id}/price-stats

GET/v1/cards/{id}/price-stats

Get aggregate price statistics for one card over a trailing window (7, 30, or 90 days), broken out per variant in data.variants so printings (e.g. Normal and Holofoil) are never blended together: each entry has min, max, average (integer cents), the first and last price in the window with their dates, absolute and percent change first to last, and the number of data points. The variant param restricts the response to a single entry. window_start and window_end apply to the whole response. When no price data falls in the window, returns 200 with an empty data.variants array, not an error. Requires a paid plan (starter, pro, or business); a free-plan key gets a 403 plan_limit error. The requested window is also bounded by your plan's price-history range.

Auth: send Authorization: Bearer bdx_live_... (or X-API-Key) from a server-side integration. Sandbox keys get 403 sandbox_key.

Response shape

FieldTypeRequiredDescription
currencystringAlways USD today. "USD" const: USD
dataobject
data.variantsarray<object>
data.variants[].average_price_centsinteger | null
data.variants[].change_centsinteger | null
data.variants[].change_percentnumber | null
data.variants[].data_pointsinteger
data.variants[].firstobject | null
data.variants[].first.datestringformat: date
data.variants[].first.price_centsinteger
data.variants[].lastobject | null
data.variants[].last.datestringformat: date
data.variants[].last.price_centsinteger
data.variants[].max_price_centsinteger | null
data.variants[].min_price_centsinteger | null
data.variants[].variantstring
idstring
variantstring | null
windowstring["7d","30d","90d"] enum: ["7d","30d","90d"]
window_endstringformat: date-time
window_startstringformat: date-time

Parameters

NameInTypeRequiredDescription
idpathstringYesCard id or slug.
windowquerystringTrailing window: 7d, 30d, or 90d. Your plan may cap this lower. default: 30d · enum: ["7d","30d","90d"]
variantquerystringRestrict to one variant, e.g. Holofoil. Defaults to every variant BinderDex tracks for the card. minLength: 1 · maxLength: 64

Example

Example responsejson
{
  "currency": "USD",
  "data": {
    "variants": [
      {
        "average_price_cents": 5050,
        "change_cents": 100,
        "change_percent": 2,
        "data_points": 3,
        "first": {
          "date": "2026-08-20",
          "price_cents": 5000
        },
        "last": {
          "date": "2026-09-18",
          "price_cents": 5100
        },
        "max_price_cents": 5100,
        "min_price_cents": 5000,
        "variant": "Holofoil"
      },
      {
        "average_price_cents": 1150,
        "change_cents": 300,
        "change_percent": 30,
        "data_points": 3,
        "first": {
          "date": "2026-08-20",
          "price_cents": 1000
        },
        "last": {
          "date": "2026-09-18",
          "price_cents": 1300
        },
        "max_price_cents": 1300,
        "min_price_cents": 1000,
        "variant": "Normal"
      }
    ]
  },
  "id": "card_9f2c1b7a",
  "variant": null,
  "window": "30d",
  "window_end": "2026-09-18T04:00:00Z",
  "window_start": "2026-08-19T04:00:00Z"
}

Possible errors

Every error below uses the Error envelope with a request ID. Retry only when the response’s documented semantics identify a temporary condition; see errors and versioning for the detailed guidance.