Your account
Account snapshot: CS Deals user id, linked steam_id, display name, and balance in cents.
Authorization
apiKey API key generated from your account settings on the website. Send as Authorization: Bearer csd_....
In: header
Response Body
application/json
curl -X GET "https://example.com/public/v1/user"{ "id": 1, "steam_id": "string", "name": "string", "balance": -9007199254740991}Balance history GET
Every movement of your balance, newest first, optionally filtered by `action` (`DEPOSIT`, `WITHDRAWAL`, `WITHDRAWAL_REFUND`, `INSTANT_SELL_PAYOUT`, `PURCHASE`, `SALE`, `BALANCE_ADJUSTMENT`). `amount` is signed in cents, negative when money left the account; `balance` is the resulting balance after that movement, so a page of rows reconciles without adding anything up yourself. `message` is a human-readable note such as the order or withdrawal it belongs to.
Book snapshot GET
Every active listing in one response, plus `seq` (an `int64`), the sequence number of the last WebSocket event published before the snapshot was taken. Use it to seed a local book: buffer WebSocket events, load the snapshot, drop events with `seq <=` the snapshot's, apply the rest. Optional `app_id` filter, worth passing since it cuts a large payload down to the game you trade. Rows are deliberately lean: price/amount state only, no per-game item fields; item detail comes from `GET /public/v1/listings` or the `listing.created` events. Snapshots are cached for 10 seconds and carry an `ETag`, so a repeat call within that window is free; the cached `seq` is the one the snapshot is valid at, which is all the sync protocol needs. Heavily rate-limited: it exists for (re)synchronization, not polling. If you want item prices rather than individual live listings, use `GET /public/v1/prices/all` instead, which is far cheaper for both of us.