Buy listings
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.
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/purchase" \ -H "Content-Type: application/json" \ -d '{ "items": [ { "listing_id": 1, "amount": 1, "max_price": 1 } ] }'{ "order_id": 1, "created_at": "2019-08-24T14:15:22Z", "items": [ { "order_item_id": 1, "app_id": 1, "market_hash_name": "string", "steam_asset_id": "string", "price": -9007199254740991, "amount": -9007199254740991 } ]}Deposit from Steam POST
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 `token`s 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.
Your trades GET
Your Steam trades, newest first, optionally filtered by `status`. `steam_offer_id` is the Steam trade offer id once the offer is sent. Item `value` is the market value in cents at trade time. `limit` accepts only `500` or `1000`, and the route allows one request per second — page in bulk rather than polling small pages.