BinderDex API

Search cards

GET /v1/cards

GET/v1/cards

Search the BinderDex card catalog by name, set, number, rarity, price range, or game (Pokémon and One Piece are live today). Returns card summaries with the current display price. Use cards_get for the full price breakdown by variant and condition on one card.

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

Response shape

FieldTypeRequiredDescription
dataarray<object>
data[].gamestring | nullStable game slug, e.g. pokemon or one-piece.
data[].game_namestring | nullDisplay name, e.g. Pokémon TCG.
data[].idstringOpaque, stable card id.
data[].image_urlstring | nullBinderDex-hosted image URL (assets.binderdex.com or binderdex.com). null when no hosted image exists.
data[].namestring
data[].numberstring | nullCard number as printed, e.g. 025.
data[].priceobject
data[].price.currencystringAlways USD today. "USD" const: USD
data[].price.market_price_centsinteger | nullInteger cents. Divide by 100 for a dollar amount. null when BinderDex has no current price.
data[].raritystring | null
data[].setobject | null
data[].set.idstring
data[].set.namestring
data[].urlstring | nullPublic binderdex.com card page.
next_cursorstring | nullPass back as ?cursor= to get the next page. null on the last page.

Parameters

NameInTypeRequiredDescription
qquerystringFree-text name search. minLength: 1 · maxLength: 200
setquerystringSet id or slug. minLength: 1 · maxLength: 200
gamequerystringFilter to one game by slug, e.g. pokemon or one-piece. minLength: 1 · maxLength: 64
numberquerystringCard number as printed, e.g. 025. minLength: 1 · maxLength: 32
rarityquerystringminLength: 1 · maxLength: 64
min_price_centsqueryintegerminimum: 0 · maximum: 100000000
max_price_centsqueryintegerminimum: 0 · maximum: 100000000
sortquerystringdefault: relevance · enum: ["relevance","price_desc","price_asc","newest"]
limitqueryintegerRows to return, 1-50. minimum: 1 · maximum: 50 · default: 20
cursorquerystringOpaque cursor from a previous response's next_cursor. Expires 15 minutes after issue. maxLength: 512

Example

Example responsejson
{
  "data": [
    {
      "game": "pokemon",
      "game_name": "Pokemon TCG",
      "id": "card_9f2c1b7a",
      "image_url": "https://assets.binderdex.com/cards/card_9f2c1b7a.png",
      "name": "Pikachu ex",
      "number": "025",
      "price": {
        "currency": "USD",
        "market_price_cents": 1299,
        "price_updated_at": "2026-09-18T04:00:00Z"
      },
      "rarity": "Double Rare",
      "set": {
        "id": "set_ssp",
        "name": "Surging Sparks"
      },
      "url": "https://binderdex.com/cards/pikachu-ex-ssp-025"
    }
  ],
  "next_cursor": null
}

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.