SleevedSleeved Docs

Get deck details (bulk)

Fetch full contents for up to 50 decks by id in one call. Requires the decks:read:public scope.

Requires the decks:read:public API key scope — the same scope used by the Get deck endpoint.

Each resolved entry is a minimal deck summary (id, gameId, name, cards) — no owner identity or timestamps. cards is the deck's card list, each entry shaped as {cardId, quantity, zoneId}. For the full deck shape including ownerDisplayName, use the single-deck Get deck endpoint.

This endpoint never returns 404 for an individual id. A malformed, private, or nonexistent id is placed in unresolved instead, and the batch always returns 200. This differs from the single-deck Get deck endpoint, which does 404 on a missing or non-public deck.

decks is returned in unspecified order — match results back to your request by id, never by array position.

POST
/decks/details
X-API-Key<token>

Your Sleeved API key. Format: slvd_live_<hex>. Contact Sleeved to obtain a key.

In: header

idsarray<string>

Deck ids to fetch, 1 to 50 entries.

Items1 <= items <= 50

Response Body

curl -X POST "https://api.sleeved.gg/v1/decks/details" \  -H "Content-Type: application/json" \  -d '{    "ids": [      "00000000-0000-4000-8000-000000000001",      "00000000-0000-4000-8000-000000000002",      "not-a-real-deck-id"    ]  }'
{
  "data": {
    "decks": [
      {
        "id": "00000000-0000-4000-8000-000000000001",
        "gameId": "chrono-core",
        "name": "Aggro Tempo",
        "cards": [
          {
            "cardId": "CC-001",
            "quantity": 1,
            "zoneId": "loadout"
          },
          {
            "cardId": "CC-045",
            "quantity": 3,
            "zoneId": "main"
          }
        ]
      }
    ],
    "unresolved": [
      "00000000-0000-4000-8000-000000000002",
      "not-a-real-deck-id"
    ]
  }
}
{
  "error": "Invalid request body",
  "code": "VALIDATION_ERROR"
}

{
  "error": "API key required"
}

{
  "error": "Insufficient scope"
}
{
  "error": "Rate limit exceeded"
}
{
  "error": "Internal server error"
}