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

List or claim a bot by signing in to Steam as it

Proves you run a bot with a Steam sign-in made as the bot, and gives you the bot and its push key. You stay signed in to Steamsets as yourself. A bot the directory already lists becomes yours as it is and stays listed; it takes your pushes once its listing fee is paid. A Steam account that is not listed becomes a new bot, pending review, and needs a name: without one the answer is 422 with an error at body.name, and the same sign-in can be sent again with the name.

POST/v1/bot.claim
Authorization
AuthorizationBearer token · headerrequired
Request body
requiredapplication/json
namestring

Listing name for a bot the directory does not list yet, e.g. "lvlupbot.com - legendary". Required for one; a listed bot keeps its name.

max length 128
openidLoginRequestBodyrequired

What Steam sent back after the owner signed in as the bot. Its return address must be /bots/claim on a Steamsets frontend.

Show properties
openid_assoc_handlestringrequired

The assoc handle of the login

openid_claimed_idstringrequired

The claimed id of the login

openid_identitystringrequired

The identity of the login

openid_modestringrequired

The mode of the login

openid_nsstringrequired

The namespace of the login

openid_op_endpointstringrequired

The endpoint of the login

openid_response_noncestringrequired

The response nonce of the login

openid_return_tostringrequired

The return to of the login

openid_sigstringrequired

The sig of the login

openid_signedstringrequired

The signed of the login

typestring

What a bot the directory does not list yet trades. A listed bot keeps its type.

default: "levelup"
Allowed:levelupfoilgemcryptoholidayswapbuyinggameother
Responses
200

OK

apiKeystring

The bot's push key. Shown once; store it now. Missing when the bot was already yours, or when the key could not be made; bot.rotateKey makes one.

botTradeBotrequired
Show properties
accountLeaderboardAccount | nullrequired

The bot's own Steam account. Holds only the SteamID and the listing's name when Steamsets has not parsed it.

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

The role slug

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
avatarUrlstringrequired
brandTradeBotBrand | nullrequired

The operator the bot belongs to. Null for none.

Show properties
idstringrequired

The brand's public id.

logoUrlstringrequired
namestringrequired
sponsoredbooleanrequired

The brand's paid placement is running.

websiteUrlstringrequired
cryptoTradeBotCrypto | nullrequired

Set prices in cryptocurrencies. Null when the bot takes none.

Show properties
pricesTradeBotCryptoPrice[]required

By coin, in ticker order.

Show properties
Array of TradeBotCryptoPrice
buystring | nullrequired
coinstringrequired

Lowercase ticker.

sellstring | nullrequired
gamesTradeBotGames | nullrequired

The Steam game market (keys or gifts). Null when the bot neither stocks nor prices games.

Show properties
pricesTradeBotGamePricesrequired
Show properties
cs2TradeBotRate | nullrequired

CS2 case keys per game.

Show properties
buynumber<double> | nullrequired

What the bot buys at. Null when it does not buy or the price is unknown.

sellnumber<double> | nullrequired

What the bot sells at. Null when it does not sell or the price is unknown.

gemsTradeBotRate | nullrequired

Gems per game.

hydraTradeBotRate | nullrequired

Operation Hydra keys per game.

tf2TradeBotRate | nullrequired

TF2 keys per game.

todTradeBotRate | nullrequired

Tour of Duty tickets per game.

stockTradeBotGameStockrequired
Show properties
copiesinteger<int32>required

Copies in stock across all games, keys and gifts together.

min 0
gamesinteger<int32>required

Distinct games in stock.

min 0
gamesForYouinteger<int64>

Distinct games in this bot's stock that the logged-in caller does not own. Missing when logged out or when the bot stocks no games.

gemsTradeBotGems | nullrequired

The gem market. Null when the bot does not trade gems.

Show properties
pricesTradeBotKeyPricesrequired

Gems per key.

Show properties
cs2TradeBotRate | nullrequired
hydraTradeBotRate | nullrequired
tf2TradeBotRate | nullrequired
todTradeBotRate | nullrequired
stockinteger<int64> | nullrequired

Gems the bot holds. Null when it does not say.

min 0
idstringrequired

The bot's public id.

keysTradeBotKeys | nullrequired

Keys and tickets the bot holds. Null when it does not report them.

Show properties
cs2integer<int32> | nullrequired
min 0
hydrainteger<int32> | nullrequired
min 0
tf2integer<int32> | nullrequired
min 0
todinteger<int32> | nullrequired
min 0
listingTradeBotListing

The review state. Only in the owner's and staff's routes.

Show properties
createdAtstring<date-time>required
listingFeePaidbooleanrequired

Staff confirmed the one-key listing fee. A bot nobody claimed pays none. A bot you claimed keeps its listing either way, and takes your pushes once the fee is paid.

ownerVerifiedbooleanrequired

The owner signed in to Steam as the bot (bot.claim), or staff set the owner. False for a claim made with only the bot's SteamID, which staff review.

statusstringrequired
Allowed:pendingapprovedrejecteddisabled
namestringrequired
ownerLeaderboardAccount | nullrequired

The Steam account that runs the bot. Null when no one has claimed it, and in the public routes while a claim is neither verified nor taken by staff.

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

countryLeaderboardCountry | null

The country of the account

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

rolesRole[] | nullrequired

The roles of the account

stateLeaderboardState | null

The state of the account

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

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
setsTradeBotSets | nullrequired

The card set market. Null when the bot neither stocks nor prices sets.

Show properties
limitsTradeBotSetLimitsrequired
Show properties
maxPerAppinteger<int32> | nullrequired

Most sets of one app sold to one user. Null for no limit.

min 0
pricesTradeBotSetPricesrequired
Show properties
cs2TradeBotRate | nullrequired

Sets per CS2 case key.

gemsTradeBotRate | nullrequired

Gems per set.

hydraTradeBotRate | nullrequired

Sets per Operation Hydra key.

tf2TradeBotRate | nullrequired

Sets per TF2 key.

todTradeBotRate | nullrequired

Sets per Tour of Duty ticket.

stockTradeBotSetStockrequired
Show properties
appsinteger<int32>required

Distinct apps with stock.

min 0
foilinteger<int32>required

Complete foil sets.

min 0
maxLevelinteger<int64>required

Highest Steam level reachable from level 0 with this bot alone.

normalinteger<int32>required

Complete normal sets.

min 0
setsForYouinteger<int64>

Sets this bot alone can sell the logged-in caller, given the badges they have crafted. Missing when logged out or when the bot does not sell sets.

sourcestringrequired

push: the bot reports its own data. scrape: we count its stock from its inventory.

Allowed:pushscrape
statusTradeBotStatusrequired
Show properties
onlinebooleanrequired
stalebooleanrequired

The bot has not reported for over an hour.

updatedAtstring<date-time> | nullrequired

When the bot last reported or was scraped. Null when never.

typestringrequired

What the bot trades, in the categories other directories use.

Allowed:levelupfoilgemcryptoholidayswapbuyinggameother
listingFeeTradeBotListingFeerequired

Send this for the bot to take your pushes. A bot the directory already listed stays listed until then.

Show properties
keysinteger<int64>required

TF2 keys to send before the bot is reviewed.

tradeUrlstringrequired

Trade offer URL to send the fee to. Empty when not configured.

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

Conflict

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/bot.claim' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "openid": {
    "openid_assoc_handle": "123456",
    "openid_claimed_id": "76561198842603734",
    "openid_identity": "https://steamsets.com/api/v1/openid/login",
    "openid_mode": "checkid_setup",
    "openid_ns": "http://specs.openid.net/auth/2.0",
    "openid_op_endpoint": "https://steamsets.com/api/v1/openid/login",
    "openid_response_nonce": "123456",
    "openid_return_to": "https://example.com",
    "openid_sig": "123456",
    "openid_signed": "123456"
  },
  "type": "levelup"
}'
Response
{
  "apiKey": "string",
  "bot": {
    "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": "donator"
        }
      ],
      "state": {
        "name": "Baden-Wurttemberg"
      },
      "steamId": "76561198842603734",
      "steamSetsScore": 0,
      "steamSetsVanity": "steamsets",
      "steamVanity": "steamsets",
      "supporter": {
        "active": true,
        "months": 3
      },
      "themeColor": "#FF5733",
      "vacBans": 0,
      "xp": 123456
    },
    "avatarUrl": "string",
    "brand": {
      "id": "bbr_5n7dZq1rFJx3WmPa",
      "logoUrl": "string",
      "name": "string",
      "sponsored": true,
      "websiteUrl": "string"
    },
    "crypto": {
      "prices": [
        {
          "buy": "string",
          "coin": "btc",
          "sell": "0.0000038"
        }
      ]
    },
    "games": {
      "prices": {
        "cs2": {
          "buy": 0,
          "sell": 0
        },
        "gems": {
          "buy": 0,
          "sell": 0
        },
        "hydra": {
          "buy": 0,
          "sell": 0
        },
        "tf2": {
          "buy": 0,
          "sell": 0
        },
        "tod": {
          "buy": 0,
          "sell": 0
        }
      },
      "stock": {
        "copies": 0,
        "games": 0
      }
    },
    "gamesForYou": 0,
    "gems": {
      "prices": {
        "cs2": {
          "buy": 0,
          "sell": 0
        },
        "hydra": {
          "buy": 0,
          "sell": 0
        },
        "tf2": {
          "buy": 0,
          "sell": 0
        },
        "tod": {
          "buy": 0,
          "sell": 0
        }
      },
      "stock": 0
    },
    "id": "bot_3cVFAKxh8Q2ZqkTq",
    "keys": {
      "cs2": 0,
      "hydra": 0,
      "tf2": 0,
      "tod": 0
    },
    "listing": {
      "createdAt": "2019-08-24T14:15:22Z",
      "listingFeePaid": true,
      "ownerVerified": true,
      "status": "pending"
    },
    "name": "lvlupbot.com - legendary",
    "owner": {
      "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": "donator"
        }
      ],
      "state": {
        "name": "Baden-Wurttemberg"
      },
      "steamId": "76561198842603734",
      "steamSetsScore": 0,
      "steamSetsVanity": "steamsets",
      "steamVanity": "steamsets",
      "supporter": {
        "active": true,
        "months": 3
      },
      "themeColor": "#FF5733",
      "vacBans": 0,
      "xp": 123456
    },
    "sets": {
      "limits": {
        "maxPerApp": 0
      },
      "prices": {
        "cs2": {
          "buy": 0,
          "sell": 0
        },
        "gems": {
          "buy": 0,
          "sell": 0
        },
        "hydra": {
          "buy": 0,
          "sell": 0
        },
        "tf2": {
          "buy": 0,
          "sell": 0
        },
        "tod": {
          "buy": 0,
          "sell": 0
        }
      },
      "stock": {
        "apps": 0,
        "foil": 0,
        "maxLevel": 0,
        "normal": 0
      }
    },
    "setsForYou": 0,
    "source": "push",
    "status": {
      "online": true,
      "stale": true,
      "updatedAt": "2019-08-24T14:15:22Z"
    },
    "type": "levelup"
  },
  "listingFee": {
    "keys": 0,
    "tradeUrl": "string"
  }
}