interface Item {
// Identity
id: string; // Encoded item ID
appid: number; // Game app ID (730 or 252490)
// Description — omitted on bare withdraw items where AssetPay has no Steam-side
// metadata yet (you supplied only itemId + price). Always present for inventory,
// market, and post-completion trade items.
name?: string; // Display name (e.g. "AK-47 | Redline")
marketHashName?: string; // Full market name (e.g. "AK-47 | Redline (Field-Tested)")
type?: string; // Item type (e.g. "Rifle", "Knife")
iconUrl?: string; // Steam image hash (use with Steam CDN base URL)
// Trade state
tradable: boolean; // Whether the item can be traded
amount?: number; // Stack count for Rust items
// Pricing
marketPrice?: number; // Market reference price (USD)
offer?: ItemOffer; // See ItemOffer below
// Cosmetic attributes
exterior?: string; // "Factory New", "Minimal Wear", etc.
rarity?: string; // "Consumer Grade", "Covert", etc.
color?: string; // Rarity color hex (e.g. "#EB4B4B")
wear?: string; // Float value as string
paintSeed?: number; // Paint seed number
previewToken?: string; // Steam inspect/preview token (CS2). Present on inventory and
// autoseller-pool (self-owned) items; absent on third-party
// marketplace listings.
doppler?: Doppler; // Doppler phase details
fade?: Fade; // Fade percentage details
hardened?: Hardened; // Case Hardened pattern details
// Applied items
stickers?: Sticker[]; // Applied stickers
charm?: Charm; // Applied charm (CS2 only)
// Market-specific
botInfo?: { // Holding bot identity — present on autoseller-pool market items
name: string;
avatar?: string;
steamId?: string;
joined?: Date;
};
// Withdrawal-specific (only set on items belonging to a withdraw trade)
status?: TradeStatus; // Per-item purchase status, mirrors Trade.status
error?: TradeFailureCode; // Failure code — present only on failed withdraw items
}