Skip to content

Items API (Deprecated API Backward Compatibility) ​

Drop-in replacement for the deprecated Items API. Uses the same request/response format for easy migration.

Base path: /api/Items

INFO

This is the compatibility layer. If you're building a new integration, consider using the native Items API instead.

Get All Items On Sale ​

GET /api/Items/GetAllItemsOnSale ​

Also supports HEAD requests (returns headers only).

Returns all items currently for sale in deprecated API format.

Query Parameters ​

ParameterTypeRequiredDescription
appidnumberNoGame ID. Valid: 730, 570, 252490, 440
inspect_in_game_passwordstringNoPassword to include inspect links

Response Headers ​

HeaderDescription
X-Last-UpdateISO timestamp of last inventory update
X-RateLimit-RemainingRemaining requests in window

Rate Limit ​

60 requests per minute per user.

Cache ​

10 seconds per appid

bash
curl -X GET "https://market.vpsbot.io/api/Items/GetAllItemsOnSale?appid=730" \
  -H "x-api-key: YOUR_API_KEY"
js
const { data } = await client.get('/api/Items/GetAllItemsOnSale', {
  params: { appid: 730 }
});

Example Response ​

json
{
  "success": true,
  "last_update": "2024-01-15T10:00:00.000Z",
  "msg": null,
  "data": [
    {
      "item_id": "abc123",
      "assetid": "30000000001",
      "appid": "730",
      "instanceid": "302028390",
      "classid": "310776560",
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "phase": null,
      "float_value": 0.2531,
      "paintindex_value": 282,
      "paintseed_value": 412,
      "rarity_color": "#D2D2D2",
      "price": 1245,
      "img": "https://steamcdn-a.akamaihd.net/...",
      "stickers": [
        {
          "market_hash_name": "Sticker | Natus Vincere",
          "img": "https://steamcdn-a.akamaihd.net/...",
          "slot": 0,
          "wear": null
        }
      ],
      "inspect_in_game": null,
      "account_steamid": null
    }
  ]
}

Search Items ​

POST /api/Items/SearchItems ​

Search items by names or item IDs in deprecated API format.

Request Body ​

FieldTypeRequiredDescription
appidnumberNoGame ID filter
phasestringNoDoppler phase (e.g., "Phase 1")
namesstring[]NoMarket hash names (max 10)
item_idsstring[]NoInternal item IDs (max 25)

WARNING

At least one of names or item_ids must be provided. Max 10 names and 25 item IDs.

Rate Limit ​

150 requests per minute per user.

bash
curl -X POST "https://market.vpsbot.io/api/Items/SearchItems" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "appid": 730,
    "names": ["AK-47 | Redline (Field-Tested)"]
  }'
js
const { data } = await client.post('/api/Items/SearchItems', {
  appid: 730,
  names: ['AK-47 | Redline (Field-Tested)']
});

Example Response ​

json
{
  "success": true,
  "msg": null,
  "data": [
    {
      "item_id": "abc123",
      "assetid": "30000000001",
      "appid": "730",
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "price": 1245,
      "float_value": 0.2531,
      "stickers": []
    }
  ]
}

Get Removed From Sale ​

GET /api/Items/GetRemovedFromSaleLastTime ​

Returns asset IDs of items removed from sale in the last 10 seconds.

Cache ​

10 seconds

TIP

Use this endpoint to keep your local inventory cache in sync by removing items that are no longer available.

bash
curl -X GET "https://market.vpsbot.io/api/Items/GetRemovedFromSaleLastTime" \
  -H "x-api-key: YOUR_API_KEY"
js
const { data } = await client.get(
  '/api/Items/GetRemovedFromSaleLastTime'
);

Example Response ​

json
[
  "30000000001",
  "30000000042",
  "30000000099"
]

INFO

This endpoint returns a raw array, not wrapped in the standard { success, data } envelope.


Buy Item ​

POST /api/Items/Buy ​

Purchase a specific item by asset ID in deprecated API format.

Request Body ​

FieldTypeRequiredDescription
item_idstringYesInternal listing ID
assetidstringYesSteam asset ID
trade_urlstringYesSteam trade offer URL
pricenumberYesExpected price (1$ = 1000)
commentstring | nullNoUnique comment for tracking
bash
curl -X POST "https://market.vpsbot.io/api/Items/Buy" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "item_id": "abc123",
    "assetid": "30000000001",
    "trade_url": "https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY",
    "price": 1245,
    "comment": "order-001"
  }'
js
const { data } = await client.post('/api/Items/Buy', {
  item_id: 'abc123',
  assetid: '30000000001',
  trade_url: 'https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY',
  price: 1245,
  comment: 'order-001'
});

Example Response ​

json
{
  "trade_id": "uuid-trade-id",
  "status": "created",
  "assetid": "30000000001",
  "price": 1245,
  "comment": "order-001"
}

Buy Item by Name ​

POST /api/Items/BuyByName ​

Purchase the cheapest available item by market hash name in deprecated API format.

Request Body ​

FieldTypeRequiredDescription
market_hash_namestringYesSteam market hash name
appidnumberYesGame ID
phasestringNoDoppler phase filter
trade_urlstringYesSteam trade offer URL
max_pricenumberYesMaximum price (1$ = 1000)
commentstring | nullNoUnique comment for tracking
bash
curl -X POST "https://market.vpsbot.io/api/Items/BuyByName" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "appid": 730,
    "trade_url": "https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY",
    "max_price": 1500,
    "comment": "order-002"
  }'
js
const { data } = await client.post('/api/Items/BuyByName', {
  market_hash_name: 'AK-47 | Redline (Field-Tested)',
  appid: 730,
  trade_url: 'https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY',
  max_price: 1500,
  comment: 'order-002'
});

Example Response ​

json
{
  "trade_id": "uuid-trade-id",
  "status": "created",
  "assetid": "30000000001",
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "price": 1245,
  "comment": "order-002"
}

Check Can Buy ​

POST /api/Items/CheckCanBuy ​

Check if an item can be purchased.

Request Body ​

FieldTypeRequiredDescription
trade_urlstringYesSteam trade offer URL
item_idstringNoInternal listing ID
assetidstringNoSteam asset ID
bash
curl -X POST "https://market.vpsbot.io/api/Items/CheckCanBuy" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "trade_url": "https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY",
    "assetid": "30000000001"
  }'
js
const { data } = await client.post('/api/Items/CheckCanBuy', {
  trade_url: 'https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY',
  assetid: '30000000001'
});

Example Response ​

json
{
  "can_buy": true,
  "account_steamid": "76561198...",
  "reason": null
}

Deprecated API Item Object Schema ​

FieldTypeDescription
item_idstringInternal listing ID
assetidstringSteam asset ID
appidstringGame ID as string
instanceidstringSteam instance ID
classidstringSteam class ID
market_hash_namestringSteam market hash name
phasestring | nullDoppler phase
float_valuenumber | nullFloat value (wear)
paintindex_valuenumberPaint index
paintseed_valuenumberPaint seed
rarity_colorstring | nullHex rarity color
pricenumberPrice (1$ = 1000)
imgstringSteam CDN icon URL
stickersarraySticker array with market_hash_name, img, slot, wear
inspect_in_gamestring | nullInspect link (requires password)
account_steamidstringBot Steam ID (requires password)

instant_delivery ​

GetAllItemsOnSale, SearchItems and CheckCanBuy responses carry an explicit instant_delivery: true|false on every item: false means the Steam offer can take minutes up to ~1 hour instead of seconds. Everything else — buying, statuses, refunds — is unchanged.

GetAllItemsOnSale also accepts instant_delivery=true|false as a query filter (omit for the mixed catalog).

Need help? Contact our support team