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

List account badges

POST/v1/account.listBadges
Authorization
AuthorizationBearer token · headerrequired
Request body
requiredapplication/json
filterstring[] | nulldeprecated
filtersV1BadgeFilters
Show properties
appIdsinteger<int32>[] | null

Filter to badges from these app IDs

hasHighestLevelboolean | null

If true, only badges where the user has reached the highest known level; if false, only badges where the user has not

isEventboolean | null

Filter by event badges

isFoilboolean | null

Filter by foil badges

isSaleboolean | null

Filter by sale badges

levelRange

Filter by badge level range

Show properties
maxinteger<int32>

Maximum value (inclusive)

mininteger<int32>

Minimum value (inclusive)

scarcityRange

Filter by scarcity range

Show properties
maxinteger<int32>

Maximum value (inclusive)

mininteger<int32>

Minimum value (inclusive)

viewerLevelRange

Filter by the level the authenticated caller holds the badge at. Implies viewerOwnership=owned, so it cannot be combined with viewerOwnership=missing. Combine with the level filter to find upgrades: level={min:5} plus viewerLevel={max:4} lists badges this account has above the caller

Show properties
maxinteger<int32>

Maximum value (inclusive)

mininteger<int32>

Minimum value (inclusive)

viewerOwnershipstring | null

Compare against the authenticated caller: 'owned' keeps badges the caller also has, 'missing' keeps badges only the listed account has. Level-agnostic — the caller owns a badge if they hold it at any level. Requires authentication

Allowed:ownedmissing
idIDSearch
Show properties
accountIdinteger<int32>

Account ID to search for

min 0 · min length 7
steamId64string

SteamID64 to search for

min length 17 · max length 17
orderV1BadgeOrder | null
Show properties
bystringrequired
default: "xp"
Allowed:xplevelscarcitynamecompletion_timeapp_nameapp_idtracked_holdersfirst_completionlast_completion
directionstringrequired
default: "desc"
Allowed:ascdesc
pageinteger<int32>required
min 0 · default: 1
searchstring | null
valueFilterBadgeValueFilter[] | nulldeprecated
Show properties
Array of BadgeValueFilter
typestringrequired
Allowed:levelscarcity
valuestringrequired
vanityVanitySearch
Show properties
typestringrequired

Which type of vanity to search for

Allowed:steaminternal
valuestringrequired

Vanity to search for

min length 2 · matches ^[a-zA-Z0-9-_]+$
Responses
200

OK

badgesV1AppBadge[] | nullrequired
Show properties
Array of V1AppBadge
accountInfoAccountBadgeInfo | null
Show properties
completionTimestring<date-time>required

The time the badge was completed

levelinteger<int32>required

The level of the badge

min 0
xpinteger<int32>required

The xp of the badge

min 0
appIdinteger<int32>required
min 0
appImagestringrequired
appNamestringrequired
badgeIdstringrequired
badgeImagestringrequired
baseLevelinteger<int32>required

The level this badge starts at

min 0
baseXpinteger<int32>required

The XP the badge gives per level

min 0
cardCountinteger<int32>required

Total trading cards Steam defines for this app (per side; foil and normal share the same count)

min 0
firstCompletionstring<date-time> | nullrequired
highestLevelinteger<int64>required
isEventbooleanrequired
isFoilbooleanrequired
isNmcbooleanrequired

Whether the cards needed for this badge are non-marketable on Steam (cannot be bought/sold)

isSalebooleanrequired
lastCompletionstring<date-time> | nullrequired
namestringrequired
noListingbooleanrequired

Whether at least one card for this badge is not currently listed on the market

priceinteger<int32>requireddeprecated
scarcityinteger<int64>required
min 0
steamIdinteger<int32>required
min 0
trackedHoldersinteger<int64>required
min 0
pagesinteger<int32>required

The number of pages

totalHitsinteger<int32>required

The total number of hits for all pages

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"
401

Unauthorized

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"
404

Not Found

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/account.listBadges' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "filter": [
    "foil"
  ],
  "filters": {
    "appIds": [
      0
    ],
    "hasHighestLevel": true,
    "isEvent": true,
    "isFoil": true,
    "isSale": true,
    "level": {
      "max": 0,
      "min": 0
    },
    "scarcity": {
      "max": 0,
      "min": 0
    },
    "viewerLevel": {
      "max": 0,
      "min": 0
    },
    "viewerOwnership": "owned"
  },
  "id": {
    "accountId": 0,
    "steamId64": "stringstringstrin"
  },
  "order": {
    "by": "xp",
    "direction": "asc"
  },
  "page": 1,
  "search": "string",
  "valueFilter": [
    {
      "type": "level",
      "value": "string"
    }
  ],
  "vanity": {
    "type": "steam",
    "value": "string"
  }
}'
Response
{
  "badges": [
    {
      "accountInfo": {
        "completionTime": "2023-01-01T00:00:00Z",
        "level": 123456,
        "xp": 123456
      },
      "appId": 0,
      "appImage": "string",
      "appName": "string",
      "badgeId": "string",
      "badgeImage": "string",
      "baseLevel": 0,
      "baseXp": 0,
      "cardCount": 0,
      "firstCompletion": "2019-08-24T14:15:22Z",
      "highestLevel": 0,
      "isEvent": true,
      "isFoil": true,
      "isNmc": true,
      "isSale": true,
      "lastCompletion": "2019-08-24T14:15:22Z",
      "name": "string",
      "noListing": true,
      "price": 0,
      "scarcity": 0,
      "steamId": 0,
      "trackedHolders": 0
    }
  ],
  "pages": 1,
  "totalHits": 1
}