Skip to content

Items API

Browse, search, and purchase items on the marketplace.

Base path: /api/items

List All Items

GET /api/items

Returns all items currently for sale. Results are cached for 60 seconds per game_id.

Query Parameters

ParameterTypeRequiredDescription
game_idnumberNoGame ID filter. Default: 730

Headers

HeaderDescription
x-api-keyAPI key for authentication
x-inspect-passwordIf provided, sensitive fields (inspect, bot_id) are included

Rate Limit

4 requests per minute per user. Response includes X-RateLimit-Limit and X-RateLimit-Remaining headers.

Cache

60 seconds per game_id

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

Example Response

json
{
  "success": true,
  "data": [
    {
      "market_id": "abc123",
      "asset_id": "30000000001",
      "game_id": 730,
      "instanceid": "302028390",
      "classid": "310776560",
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "phase": null,
      "float": 0.2531,
      "paint_index": 282,
      "paint_seed": 412,
      "rarity_color": "#D2D2D2",
      "price": 1245,
      "icon_url": "https://steamcdn-a.akamaihd.net/...",
      "stickers": [],
      "inspect": null,
      "bot_id": null
    }
  ]
}

Get Item by Asset ID

GET /api/items/:asset_id

Returns a single item by its Steam asset ID.

Path Parameters

ParameterTypeRequiredDescription
asset_idstringYesSteam asset ID

Headers

HeaderDescription
x-api-keyAPI key for authentication
x-inspect-passwordIf provided, sensitive fields are included
bash
curl -X GET "https://market.vpsbot.io/api/items/30000000001" \
  -H "x-api-key: YOUR_API_KEY"
js
const { data } = await client.get('/items/30000000001');

Example Response

json
{
  "success": true,
  "data": {
    "market_id": "abc123",
    "asset_id": "30000000001",
    "game_id": 730,
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "phase": null,
    "float": 0.2531,
    "price": 1245,
    "icon_url": "https://steamcdn-a.akamaihd.net/...",
    "stickers": []
  }
}

Search Items

POST /api/items/search

Search items by market hash names or market IDs. At least one search parameter is required.

Request Body

FieldTypeRequiredDescription
market_idsstring[]NoArray of internal market IDs
market_hash_namesstring[]NoArray of Steam market hash names
phasesstring[]NoFilter by Doppler phases

WARNING

At least one of market_ids or market_hash_names must be provided.

Rate Limit

150 requests per minute per user.

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

Example Response

json
{
  "success": true,
  "data": [
    {
      "market_id": "abc123",
      "asset_id": "30000000001",
      "game_id": 730,
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "phase": null,
      "float": 0.2531,
      "price": 1245,
      "icon_url": "https://steamcdn-a.akamaihd.net/...",
      "stickers": []
    }
  ]
}

Buy Item by Asset ID

POST /api/items/buy

Purchase a specific item by its asset ID. Deducts the price from your balance and initiates a Steam trade.

Request Body

FieldTypeRequiredDescription
asset_idstringYesSteam asset ID to purchase
game_idnumberYesGame ID (e.g., 730)
trade_urlstringYesYour Steam trade offer URL
pricenumberYesExpected price (must match current price)
custom_idstring | nullNoYour custom reference ID for this trade
bash
curl -X POST "https://market.vpsbot.io/api/items/buy" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "asset_id": "30000000001",
    "game_id": 730,
    "trade_url": "https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY",
    "price": 1245,
    "custom_id": "order-001"
  }'
js
const { data } = await client.post('/items/buy', {
  asset_id: '30000000001',
  game_id: 730,
  trade_url: 'https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY',
  price: 1245,
  custom_id: 'order-001'
});

Example Response

json
{
  "success": true,
  "data": {
    "trade_id": "uuid-trade-id",
    "custom_id": "order-001",
    "trade_url": "https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY",
    "asset_id": "30000000001",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "phase": null,
    "price": 1245,
    "status": "created"
  }
}

Buy Item by Name

POST /api/items/buy-by-name

Purchase the cheapest available item matching the given market hash name. Useful when you don't care about a specific listing.

Request Body

FieldTypeRequiredDescription
market_hash_namestringYesSteam market hash name
game_idnumberYesGame ID (e.g., 730)
phasestring | nullNoDoppler phase filter
trade_urlstringYesYour Steam trade offer URL
max_pricenumberYesMaximum price you're willing to pay
custom_idstring | nullNoYour custom reference ID
bash
curl -X POST "https://market.vpsbot.io/api/items/buy-by-name" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "game_id": 730,
    "phase": null,
    "trade_url": "https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY",
    "max_price": 1500,
    "custom_id": "order-002"
  }'
js
const { data } = await client.post('/items/buy-by-name', {
  market_hash_name: 'AK-47 | Redline (Field-Tested)',
  game_id: 730,
  phase: null,
  trade_url: 'https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY',
  max_price: 1500,
  custom_id: 'order-002'
});

Example Response

json
{
  "success": true,
  "data": {
    "trade_id": "uuid-trade-id",
    "custom_id": "order-002",
    "trade_url": "https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=YYYYY",
    "asset_id": "30000000001",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "phase": null,
    "price": 1245,
    "status": "created"
  }
}

Recently Sold Items

GET /api/items/recently-sold

Returns asset IDs of items sold in the last 10 seconds. Useful for filtering out unavailable items from your local cache.

Cache

10 seconds

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

Example Response

json
{
  "success": true,
  "data": [
    "30000000001",
    "30000000042",
    "30000000099"
  ]
}

Check Availability

POST /api/items/check-availability

Check if an item can be purchased before attempting to buy.

Request Body

FieldTypeRequiredDescription
asset_idstringNoSteam asset ID
market_idstringNoInternal market ID
bash
curl -X POST "https://market.vpsbot.io/api/items/check-availability" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"asset_id": "30000000001"}'
js
const { data } = await client.post('/items/check-availability', {
  asset_id: '30000000001'
});

Example Response

json
{
  "success": true,
  "data": {
    "can_buy": true,
    "bot_id": "76561198...",
    "reason": null
  }
}

Get Item Availability

GET /api/items/:asset_id/availability

Check whether a specific item is available and not banned.

Path Parameters

ParameterTypeRequiredDescription
asset_idstringYesSteam asset ID
bash
curl -X GET "https://market.vpsbot.io/api/items/30000000001/availability" \
  -H "x-api-key: YOUR_API_KEY"
js
const { data } = await client.get('/items/30000000001/availability');

Example Response

json
{
  "success": true,
  "data": {
    "asset_id": "30000000001",
    "available": true,
    "banned": false,
    "reason": null
  }
}

Item Object Schema

FieldTypeDescription
market_idstring | nullInternal market listing ID
asset_idstringSteam asset ID
game_idnumberGame ID (730, 570, 252490, 440)
instanceidstringSteam instance ID
classidstringSteam class ID
market_hash_namestringSteam market hash name
phasestring | nullDoppler phase (e.g., "Phase 1")
floatnumber | nullFloat value (wear)
paint_indexnumber | nullPaint index
paint_seednumber | nullPaint seed
rarity_colorstring | nullHex color code for rarity
pricenumber | nullPrice (1$ = 1000)
icon_urlstringSteam CDN icon URL
stickersobjectSticker data
inspectstring | nullInspect link (requires x-inspect-password)
bot_idstringBot Steam ID (requires x-inspect-password)

Trade Status Values

StatusDescription
createdTrade has been created
waiting_sellerWaiting for seller to send trade
waiting_seller_sdaWaiting for seller mobile confirmation
waiting_buyerTrade sent, waiting for buyer to accept
completedTrade completed successfully
accepted_buyer_and_waiting_verificationBuyer accepted, verifying
checking_who_did_rollbackInvestigating trade rollback
errorTrade failed (see error fields)

Need help? Contact our support team