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

Plan which sets to buy from which bots to reach a level

POST/v1/bot.plan
Authorization
AuthorizationBearer token · headerrequired
Request body
requiredapplication/json
excludeBotsinteger<int32>[] | null

Never buy from these bot IDs.

gamesstring

Limit to games you own, or to games you do not.

default: "all"
Allowed:allownednotOwned
includeOfflineboolean

Also buy from bots that report offline.

maxKeysinteger<int64>

TF2 key budget. 0 means no budget.

min 0
modestring

Which badges to craft.

default: "any"
Allowed:anynormalfoil
onlyBotsinteger<int32>[] | null

Buy only from these bot IDs.

skipCardAppsboolean

Leave out apps you already hold cards of.

targetLevelinteger<int64>required
min 1 · max 5000
Responses
200

OK

botsBotPlanBot[]required

Cheapest bot first.

Show properties
Array of BotPlanBot
appsBotPlanApp[]required
Show properties
Array of BotPlanApp
appIdinteger<int32>required
min 0
foilinteger<int32>required

Foil sets to buy (0 or 1).

min 0
normalinteger<int32>required

Normal sets to buy.

min 0
avatarUrlstringrequired
foilSetsinteger<int64>required
idinteger<int32>required
min 0
keysinteger<int64>required

TF2 keys to pay this bot.

namestringrequired
normalSetsinteger<int64>required
sellSetsPerKeynumber<float>required
spareSetsinteger<int64>required

Sets the last key would still buy.

steamIdstringrequired
completebooleanrequired

False when stock or the budget runs out before the target.

keysinteger<int64>required

TF2 keys in total.

reachedLevelinteger<int64>required
setsinteger<int64>required
startLevelinteger<int64>required
targetLevelinteger<int64>required
xpNeededinteger<int64>required
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"
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.plan' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "excludeBots": [
    0
  ],
  "games": "all",
  "includeOffline": true,
  "maxKeys": 0,
  "mode": "any",
  "onlyBots": [
    0
  ],
  "skipCardApps": true,
  "targetLevel": 1
}'
Response
{
  "bots": [
    {
      "apps": [
        {
          "appId": 0,
          "foil": 0,
          "normal": 0
        }
      ],
      "avatarUrl": "string",
      "foilSets": 0,
      "id": 0,
      "keys": 0,
      "name": "string",
      "normalSets": 0,
      "sellSetsPerKey": 0.1,
      "spareSets": 0,
      "steamId": "string"
    }
  ],
  "complete": true,
  "keys": 0,
  "reachedLevel": 0,
  "sets": 0,
  "startLevel": 0,
  "targetLevel": 0,
  "xpNeeded": 0
}