Your Steam inventory
What is currently in your Steam inventory for one game, ready to be sold here. Each row carries a token: an opaque, signed handle for that item which you hand to POST /public/v1/sell. Tokens are tied to your account and expire after 30 minutes, so fetch, decide and sell in one pass rather than storing them. amount is how many copies that row's token covers, and tradable is false while Steam is holding the item. One row is one Steam stack, so a commodity you hold several stacks of comes back as several rows, each with its own token and steam_asset_id. To sell more than one stack of the same item, send them as separate entries in the same items array. This reads live from Steam, so it is heavily rate-limited.
Authorization
apiKey API key generated from your account settings on the website. Send as Authorization: Bearer csd_....
In: header
Query Parameters
^[1-9]\d*$Response Body
application/json
curl -X GET "https://example.com/public/v1/steam-inventory?app_id=string"{ "items": [ { "token": "string", "app_id": 1, "steam_asset_id": "string", "market_hash_name": "string", "amount": -9007199254740991, "commodity": true, "tradable": true, "market_price": -9007199254740991, "recommended_price": -9007199254740991, "icon_url": "string" } ]}Sell from Steam POST
Lists items straight from your Steam inventory: we send you a trade offer for them, and they go on the market at your price once you accept. `items` holds `token`s from `GET /public/v1/steam-inventory` with how many of each to sell, and `price` is per copy in cents. Items of the same type can share a listing; different types need their own group. The 50 groups and 50 entries per group are structural caps on the body, not the trade size: one request becomes one trade offer per game, and a game's offer may carry at most 500 copies in total, counting `amount`, otherwise the call fails with `DEPOSIT_ITEM_LIMIT`. You may also have at most 15 trades in flight at once, past which it fails with `ACTIVE_TRADE_LIMIT`. This is the v1 `ISales/ListItems` flow with the Steam half intact. 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. Items already on site are listed with `POST /public/v1/list` instead, no trade offer needed.
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.