Card PricesCard PricesCardPrices
API Endpoints

Sets

Fetch card sets and the cards within them.

List Sets

GET /public/v1/sets

Requires: Starter plan or higher

Promotional sets are excluded automatically. Sets are returned newest-first (by publishedOn).

Query Parameters

ParameterTypeDescription
gamestringRequired. Any of the 24 supported game keys — see Supported Games.
allbooleanWhen true, returns all sets for the game (up to 1000) in a single unpaginated response. page/limit are ignored. Default: false.
pagenumberPage number (default: 1)
limitnumberResults per page (default: 100, max: 250)

Example

curl "https://api.cardprices.io/public/v1/sets?game=magic&limit=5" \
  -H "X-API-Key: pub_live_YOUR_KEY"

Response

{
  "game": "magic",
  "total": 312,
  "page": 1,
  "limit": 5,
  "totalPages": 63,
  "sets": [
    {
      "_id": "60f1a0b2c3d4e5f6a7b8c9d0",
      "name": "Alpha",
      "groupId": 10001,
      "publishedOn": "1993-08-05T00:00:00.000Z",
      "abbreviation": "LEA",
      "image": "https://assets.magic.cardprices.io/sets/10001.jpg",
      "totalCards": 295,
      "totalSetPrice": 184500.50
    }
  ]
}

When all=true, the response omits page/limit/totalPages and returns { "game", "total", "sets": [...] }.


Get Set

GET /public/v1/sets/:game/:setId

Requires: Starter plan or higher

:setId accepts either the MongoDB _id or the numeric groupId. Returns the full set document (minus its bundled products array).

Example

curl "https://api.cardprices.io/public/v1/sets/magic/10001" \
  -H "X-API-Key: pub_live_YOUR_KEY"

Response

{
  "set": {
    "_id": "60f1a0b2c3d4e5f6a7b8c9d0",
    "game": "magic",
    "name": "Alpha",
    "groupId": 10001,
    "publishedOn": "1993-08-05T00:00:00.000Z",
    "abbreviation": "LEA",
    "image": "https://assets.magic.cardprices.io/sets/10001.jpg",
    "totalCards": 295,
    "totalSetPrice": 184500.50
  }
}

A missing set returns 404 with { "error": "NOT_FOUND", "message": "Set not found." }.


Get Set Cards

GET /public/v1/sets/:game/:setId/cards

Requires: Starter plan or higher

Returns the cards in a set, paginated. :setId accepts either the _id or the numeric groupId.

Query Parameters

ParameterTypeDescription
pagenumberPage number (default: 1)
limitnumberResults per page (default: 100, max: 250)

Example

curl "https://api.cardprices.io/public/v1/sets/yugioh/1001/cards" \
  -H "X-API-Key: pub_live_YOUR_KEY"

Response

The envelope echoes both game and the resolved groupId. Card objects have the same shape as List Cards.

{
  "game": "yugioh",
  "groupId": 1001,
  "total": 118,
  "page": 1,
  "limit": 100,
  "totalPages": 2,
  "cards": [
    {
      "_id": "60f1a0b2c3d4e5f6a7b8c9d0",
      "name": "Blue-Eyes White Dragon",
      "cleanName": "Blue-Eyes White Dragon",
      "rarity": "Ultra Rare",
      "number": "LOB-001",
      "productId": 100042,
      "image": "https://assets.yugioh.cardprices.io/100042.jpg",
      "prices": {
        "tcgplayer_url": "https://www.tcgplayer.com/product/100042",
        "tcgplayer_prices": [
          {
            "subTypeName": "1st Edition",
            "lowPrice": 8.00,
            "midPrice": 12.00,
            "highPrice": 20.00,
            "marketPrice": 12.50,
            "directLowPrice": 9.50
          }
        ]
      }
    }
  ]
}