Appearance
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
| Parameter | Type | Required | Description |
|---|---|---|---|
game_id | number | No | Game ID filter. Default: 730 |
Headers
| Header | Description |
|---|---|
x-api-key | API key for authentication |
x-inspect-password | If 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
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_id | string | Yes | Steam asset ID |
Headers
| Header | Description |
|---|---|
x-api-key | API key for authentication |
x-inspect-password | If 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
| Field | Type | Required | Description |
|---|---|---|---|
market_ids | string[] | No | Array of internal market IDs |
market_hash_names | string[] | No | Array of Steam market hash names |
phases | string[] | No | Filter 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
| Field | Type | Required | Description |
|---|---|---|---|
asset_id | string | Yes | Steam asset ID to purchase |
game_id | number | Yes | Game ID (e.g., 730) |
trade_url | string | Yes | Your Steam trade offer URL |
price | number | Yes | Expected price (must match current price) |
custom_id | string | null | No | Your 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
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Steam market hash name |
game_id | number | Yes | Game ID (e.g., 730) |
phase | string | null | No | Doppler phase filter |
trade_url | string | Yes | Your Steam trade offer URL |
max_price | number | Yes | Maximum price you're willing to pay |
custom_id | string | null | No | Your 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
| Field | Type | Required | Description |
|---|---|---|---|
asset_id | string | No | Steam asset ID |
market_id | string | No | Internal 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
| Parameter | Type | Required | Description |
|---|---|---|---|
asset_id | string | Yes | Steam 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
| Field | Type | Description |
|---|---|---|
market_id | string | null | Internal market listing ID |
asset_id | string | Steam asset ID |
game_id | number | Game ID (730, 570, 252490, 440) |
instanceid | string | Steam instance ID |
classid | string | Steam class ID |
market_hash_name | string | Steam market hash name |
phase | string | null | Doppler phase (e.g., "Phase 1") |
float | number | null | Float value (wear) |
paint_index | number | null | Paint index |
paint_seed | number | null | Paint seed |
rarity_color | string | null | Hex color code for rarity |
price | number | null | Price (1$ = 1000) |
icon_url | string | Steam CDN icon URL |
stickers | object | Sticker data |
inspect | string | null | Inspect link (requires x-inspect-password) |
bot_id | string | Bot Steam ID (requires x-inspect-password) |
Trade Status Values
| Status | Description |
|---|---|
created | Trade has been created |
waiting_seller | Waiting for seller to send trade |
waiting_seller_sda | Waiting for seller mobile confirmation |
waiting_buyer | Trade sent, waiting for buyer to accept |
completed | Trade completed successfully |
accepted_buyer_and_waiting_verification | Buyer accepted, verifying |
checking_who_did_rollback | Investigating trade rollback |
error | Trade failed (see error fields) |