Deposit from Steam
Moves items from your Steam inventory into your backpack without listing them: we send you a trade offer, and the items land in your backpack once you accept. items holds tokens from GET /public/v1/steam-inventory with how many of each to deposit. Nothing goes on the market and no price is involved, so listing limits and price checks do not apply — use POST /public/v1/list later to sell any of it. The same trade caps as POST /public/v1/sell apply: one request becomes one trade offer per game, a game's offer may carry at most 500 copies in total, counting amount, otherwise the call fails with DEPOSIT_ITEM_LIMIT, and at most 15 trades may be in flight at once, past which it fails with ACTIVE_TRADE_LIMIT. Each response deposit_id matches the deposit_id on GET /public/v1/trades rows, which is where you watch for the offer and its status.
Authorization
apiKey API key generated from your account settings on the website. Send as Authorization: Bearer csd_....
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/public/v1/deposit" \ -H "Content-Type: application/json" \ -d '{ "items": [ { "token": "string", "amount": 1 } ] }'{ "deposit_ids": [ 1 ]}Your backpack GET
Your on-site items, paginated. Each row's `id` is the backpack item id, the value you pass to withdraw. `trade_locked_until` is set while Steam's trade hold applies. Optional `app_id` and `search` filters.
Buy listings POST
Buys the listings named in the request in a single atomic call. Nothing is bought unless every line succeeds. `max_price` is a ceiling in cents, not an exact match: a listing that got cheaper between your quote and this call still fills, one that got more expensive fails with `LISTING_PRICE_CHANGED`. Set it high to opt out. This does not read or modify your cart, so a bot and a browser session on the same account never interfere with each other. Private listings are not in any feed and are bought by passing the `private_token` from the share link on that line. Without it the line comes back as `LISTING_NOT_FOUND`, the same as an id that does not exist.