Skip to main content
All TypeScript types used in API responses. These are the shapes you’ll work with when parsing responses and processing callbacks.

Trade

The main trade object returned by deposit/withdraw endpoints, trade history, and callbacks.

Item

Represents a skin item in inventory, market, or trade responses. Some fields are only present in certain contexts.

ItemOffer

The marketplace offer carried on an Item.offer:

Sticker

Charm

Doppler

Present on doppler-pattern CS2 skins (Glock-18 Gamma Doppler, AWP Asiimov, etc.).

Fade

Present on fade skins (Karambit Fade, AWP Fade).

Hardened

Present on Case Hardened skins.

Enums

TradeStatus

All trade and item statuses are lowercase in API requests, responses, and webhook payloads.
Both deposits and withdrawals emit active and pending. On withdrawals pending is the supplier sourcing step; on deposits it is the short window between creating the trade offer and the bot confirming it. holdEndDate carries the exact hold expiry, which can be later for accounts without Steam mobile auth set up.

TradeType

TradeSource

Indicates whether the trade originated from an end-user client flow or a merchant self-trade flow. Present on every trade in responses and callbacks.

DeliveryMode

Marketplace delivery type carried on Item.offer.delivery for listings.

RevertedBy

TradeFailureCode

Set on Item.error for failed withdraw items, and on the trade-level error only when an entire withdraw failed for one shared reason (mixed/partial failures omit Trade.error; read the per-item codes). A small, stable set; canceled and declined items carry no code, since the status itself is the reason.

TradeErrorCode

The type of the trade-level Trade.error, on deposits and withdrawals alike. It contains every TradeFailureCode plus outcomes that have no item-level equivalent. Unrecognised causes are reported as PURCHASE_FAILED.

GameId

The game query parameter accepts the numeric value as a string (e.g. "730").

Callback Payload

State-change callbacks deliver the trade object directly as the body:
The signature lives in the X-AssetPay-Signature header (format t=<iso>,id=<delivery-id>,s=<hex>, plus an optional ,s1=<hex> signed with your previous secret while an API secret rotation is in its grace window), HMAC-SHA256 over ${deliveryId}.${timestamp}.${rawBody}. See Callbacks for verification code and the withdrawal approval envelope.