POST /client/trading/deposit
Initiates a deposit (sell) trade. The user’s items are sent via Steam trade offer and the value is credited to your merchant balance. Authentication: Client Token (Authorization header)
Request
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
items | array | Yes | Items to deposit (min 1, max 250) |
items[].itemId | string | Yes | Item ID from inventory (5–256 chars) |
items[].price | number | Yes | Offer price in USD. Must equal the current offer price returned by /client/inventory, validated server-side. |
items[].amount | number | No | Quantity for stackable Rust items (default: 1, max: 10000) |
game | string | No | "730" or "252490". Defaults to "730". |
externalId | string | No | Your unique tracking ID (max 128 chars). Must be unique per trade. |
isInstant | boolean | No | Request instant credit during hold period (default: true) |
Response
Rate Limits
Per-merchant tier throttle (shared across all clients of the same merchant):| Merchant Status | Limit |
|---|---|
| Verified | 500 requests / min |
| Unverified | 5 requests / min |
| Constraint | Limit | Error key |
|---|---|---|
| Concurrent active deposits | 5 | TOO_MANY_ACTIVE_TRADES (HTTP 429) |
| Deposits initiated in any rolling 5-minute window | 10 | RATE_LIMITED (HTTP 429) |
initiated or active). The per-client guard runs before pricing/inventory fetches, so rate-limited requests bail cheap.
Errors
| Code | Key | When |
|---|---|---|
| 1 | EXTERNAL_ID_EXISTS | The externalId is already in use |
| 2 | MISSING_ITEMS | Empty items array |
| 3 | INVENTORY_FETCH_FAILED | Couldn’t load user’s inventory |
| 4 | NO_OFFER_FOUND | No valid offer for this item |
| 6 | TOO_MANY_ACTIVE_TRADES | Client has 5+ active deposits (see Rate Limits) |
| 7 | USER_NOT_TRADEABLE | User’s Steam account can’t trade |
| 8 | TOO_MANY_ITEMS | Too many items in one request |
| 9 | ITEMS_UNAVAILABLE | Items not found in inventory |
| 10 | ITEMS_NOT_ACCEPTED | Items not accepted for deposit |
| 11 | PRICE_CHANGED | Offer price has changed since fetch |
| 13 | INVALID_TRADEURL | User’s trade URL is invalid |
| 17 | INSUFFICIENT_ITEM_AMOUNT | Requested amount exceeds available quantity |
| 18 | EXCEEDS_MAX_AMOUNT | Requested amount exceeds the per-item maximum |
| 19 | DEPOSIT_IN_PROGRESS | Another deposit is already processing for this user |
| 1005 | RATE_LIMITED | Client exceeded 10 deposits / 5 min (see Rate Limits) |
| 1010 | NO_BOTS_AVAILABLE | No Steam bots online; retry shortly |
| 1011 | FLEET_DEGRADED | Steam fleet degraded; retry shortly |
| 1622 | INSTANT_DEPOSITS_DISABLED | Instant deposits temporarily disabled (request without isInstant: true) |