Skip to content
SteamSets
Esc
↑↓navigate↵open⌘Jpreview

Find accounts with a spare copy of one or more trading cards: a copy their badge does not need. Only cards with few owners are looked up. Every caller gets the totals. A donator gets the holders, nearest in the friend graph first.

POST/v1/item.findSpareHolders
Authorization
AuthorizationBearer token · headerrequired
Request body
requiredapplication/json
holdersPerIteminteger<int32>

Max holders returned per item (default 10, max 25)

min 0
itemIdsinteger<int64>[] | nullrequired

Trading card class IDs to look up

min items 1 · max items 50
maxDepthinteger<int32>

Friend-path depth limit (default 4, max 6)

min 0
Responses
200

OK

itemsItemSpareHolders[] | nullrequired
Show properties
Array of ItemSpareHolders
classIdinteger<int64>required
min 0
holdersSpareHolder[] | nullrequired
Show properties
Array of SpareHolder
accountLeaderboardAccount | nullrequired

The account with a spare copy

Show properties
animatedAvatarstringrequired

The animated avatar of the account

appsinteger<int32>required

The number of apps the account has

min 0
avatarstringrequired

The avatar hash of the account

avatarFramestringrequired

The avatar frame of the account

awardsGiveninteger<int32>required

The number of awards the account has

min 0
awardsReceivedinteger<int32>required

The number of awards the account has

min 0
backgroundstringrequired

The background of the account

badgesinteger<int32>required

The number of badges the account has

min 0
bansinteger<int32>required

The number of bans

min 0
cityLeaderboardCity | null

The city of the account

Show properties
namestringrequired

The name of the city

countryLeaderboardCountry | null

The country of the account

Show properties
codestring

The code of the country

namestringrequired

The name of the country

createdAtstring<date-time>required

The time the account was created

donatedinteger<int32>required

The total of donations the account has

min 0
economyBanstringrequired

The economy ban of the account

foilBadgesinteger<int32>required

The number of foil badges the account has

min 0
friendsinteger<int32>required

The number of friends the account has

min 0
gameBansinteger<int32>required

The number of game bans

min 0
levelinteger<int32>required

The level of the account

min 0
miniBackgroundstringrequired

The mini background of the account

namestringrequired

The name of the account

nameEffectstringrequired

Donator name effect, none when unset or the account no longer holds an entitling role

Allowed:nonerainbowshadowneonshattervaporwavestardustcosmicsakurahalomoltenglassamber_glintamethyst_glintemerald_depthsapphire_depthruby_firediamond_fireastral_skynebula_skystaff_scandeveloper_scancrownlensboost
normalBadgesinteger<int32>required

The number of normal badges the account has

min 0
playtimeinteger<int32>required

The playtime of the account

min 0
pointsGiveninteger<int32>required

The number of points the account has

min 0
pointsReceivedinteger<int32>required

The number of points the account has

min 0
privacystringrequired

The privacy of the account

Allowed:publicprivatefriends_only
regionLeaderboardRegion | null

The region of the account

Show properties
namestringrequired

The name of the region

rolesRole[] | nullrequired

The roles of the account

Show properties
Array of Role
extrasobject | nullrequired

Extra data associated with the role

ratinginteger<int32>required

The higher the more presedence it has

rolestringrequired
Allowed:userdonatorstaffdeveloperpartnerowneramethystamberemeraldsapphirerubydiamondcontributorearly_supporterbetatranslatortop_100badge_scoutnitro_boosterastralnebula
stateLeaderboardState | null

The state of the account

Show properties
namestringrequired

The name of the state

steamIdstringrequired

The steam id

steamSetsScoreinteger<int32>required

The steam sets score

min 0
steamSetsVanitystringrequired

The vanity of the account

steamVanitystringrequired

The vanity of the account

supporterSupporterStatus

Whether this account helps cover the monthly server costs, omitted when it never donated

Show properties
activebooleanrequired

Donated this month

monthsinteger<int32>required

Total months with a donation

min 0
themeColorstring | nullrequired

Donator profile theme color as #RRGGBB (no alpha), null when unset or the account no longer holds an entitling role

vacBansinteger<int32>required

The number of vac bans

min 0
xpinteger<int32>required

The number of xp the account has

min 0
distanceinteger<int32>

Number of hops from requester to holder

min 0
pathLeaderboardAccount[] | null

Accounts from requester (first) to holder (last), inclusive

pathFoundbooleanrequired

Whether a friend path was found within maxDepth

spareinteger<int32>required

Copies the account's badge does not need

min 0
tradeUrlstring

The holder's Steam trade offer link, when the holder added one

tooCommonbooleanrequired

True when the card has too many owners to look up spares. Use item.findOwners for it.

totalHoldersinteger<int32>required

Accounts with a copy their badge does not need

min 0
lockedbooleanrequired

True when the caller's role does not include the holder list. The totals are still returned.

400

Bad Request

detailstring

A human-readable explanation specific to this occurrence of the problem.

errorsErrorDetail[] | null

Optional list of individual error details

Show properties
Array of ErrorDetail
locationstring

Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'

messagestring

Error message text

valueany

The value at the given location

instancestring<uri>

A URI reference that identifies the specific occurrence of the problem.

statusinteger<int64>

HTTP status code

titlestring

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

typestring<uri>

A URI reference to human-readable documentation for the error.

default: "about:blank"
422

Unprocessable Entity

detailstring

A human-readable explanation specific to this occurrence of the problem.

errorsErrorDetail[] | null

Optional list of individual error details

Show properties
Array of ErrorDetail
locationstring

Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'

messagestring

Error message text

valueany

The value at the given location

instancestring<uri>

A URI reference that identifies the specific occurrence of the problem.

statusinteger<int64>

HTTP status code

titlestring

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

typestring<uri>

A URI reference to human-readable documentation for the error.

default: "about:blank"
500

Internal Server Error

detailstring

A human-readable explanation specific to this occurrence of the problem.

errorsErrorDetail[] | null

Optional list of individual error details

Show properties
Array of ErrorDetail
locationstring

Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'

messagestring

Error message text

valueany

The value at the given location

instancestring<uri>

A URI reference that identifies the specific occurrence of the problem.

statusinteger<int64>

HTTP status code

titlestring

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

typestring<uri>

A URI reference to human-readable documentation for the error.

default: "about:blank"
Try it
Server
Authorization
Bodyapplication/json
Request
curl -X POST 'https://api.steamsets.com/v1/item.findSpareHolders' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "holdersPerItem": 0,
  "itemIds": [
    0
  ],
  "maxDepth": 0
}'
Response
{
  "items": [
    {
      "classId": 0,
      "holders": [
        {
          "account": {
            "animatedAvatar": "string",
            "apps": 123456,
            "avatar": "f1a1d2c3d0c9d1e1f2f3f4f5f6f7f8f9",
            "avatarFrame": "string",
            "awardsGiven": 123456,
            "awardsReceived": 123456,
            "background": "string",
            "badges": 123456,
            "bans": 0,
            "city": {
              "name": "Bad Krozingen"
            },
            "country": {
              "code": "DE",
              "name": "Germany"
            },
            "createdAt": "2023-01-01T00:00:00Z",
            "donated": 123456,
            "economyBan": "steam",
            "foilBadges": 123456,
            "friends": 123456,
            "gameBans": 0,
            "level": 123456,
            "miniBackground": "string",
            "name": "steamsets",
            "nameEffect": "rainbow",
            "normalBadges": 123456,
            "playtime": 123456,
            "pointsGiven": 123456,
            "pointsReceived": 123456,
            "privacy": "public",
            "region": {
              "name": "Europe"
            },
            "roles": [
              {
                "extras": {
                  "property1": null,
                  "property2": null
                },
                "rating": 0,
                "role": "user"
              }
            ],
            "state": {
              "name": "Baden-Wurttemberg"
            },
            "steamId": "76561198842603734",
            "steamSetsScore": 0,
            "steamSetsVanity": "steamsets",
            "steamVanity": "steamsets",
            "supporter": {
              "active": true,
              "months": 3
            },
            "themeColor": "#FF5733",
            "vacBans": 0,
            "xp": 123456
          },
          "distance": 0,
          "path": [
            {
              "animatedAvatar": "string",
              "apps": 123456,
              "avatar": "f1a1d2c3d0c9d1e1f2f3f4f5f6f7f8f9",
              "avatarFrame": "string",
              "awardsGiven": 123456,
              "awardsReceived": 123456,
              "background": "string",
              "badges": 123456,
              "bans": 0,
              "city": {
                "name": "Bad Krozingen"
              },
              "country": {
                "code": "DE",
                "name": "Germany"
              },
              "createdAt": "2023-01-01T00:00:00Z",
              "donated": 123456,
              "economyBan": "steam",
              "foilBadges": 123456,
              "friends": 123456,
              "gameBans": 0,
              "level": 123456,
              "miniBackground": "string",
              "name": "steamsets",
              "nameEffect": "rainbow",
              "normalBadges": 123456,
              "playtime": 123456,
              "pointsGiven": 123456,
              "pointsReceived": 123456,
              "privacy": "public",
              "region": {
                "name": "Europe"
              },
              "roles": [
                {
                  "extras": {
                    "property1": null,
                    "property2": null
                  },
                  "rating": 0,
                  "role": "user"
                }
              ],
              "state": {
                "name": "Baden-Wurttemberg"
              },
              "steamId": "76561198842603734",
              "steamSetsScore": 0,
              "steamSetsVanity": "steamsets",
              "steamVanity": "steamsets",
              "supporter": {
                "active": true,
                "months": 3
              },
              "themeColor": "#FF5733",
              "vacBans": 0,
              "xp": 123456
            }
          ],
          "pathFound": true,
          "spare": 0,
          "tradeUrl": "string"
        }
      ],
      "tooCommon": true,
      "totalHolders": 0
    }
  ],
  "locked": true
}