Sell from Steam
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 tokens 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. 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.
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/sell" \ -H "Content-Type: application/json" \ -d '{ "listings": [ { "items": [ { "token": "string", "amount": 1 } ], "price": 1 } ] }'{ "deposit_ids": [ 1 ]}Your listings GET
Your own listings, newest first, filterable by `app_id` and `status` (`ACTIVE`, `DISABLED`, `FILLED`). `available_amount` is how many more copies of a commodity listing you still hold in your backpack. Rows are lean: item detail for a listing is in `GET /public/v1/listings`.
Your Steam inventory GET
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 stack holds, and `tradable` is false while Steam is holding the item. This reads live from Steam, so it is heavily rate-limited.