Fetching Market Items
marketPrice equals offer.price. Pool rows (those carrying botInfo) omit marketPrice. Rust rows carry neither marketPrice nor offer.delivery (outside sandbox mode).
Query Parameters
Sandbox Mode
When you passdevelopment=true (or development=1), the market returns live listings but stamps every item so you can build your UI against the complete item shape without needing expensive skins in the pool:
- CS2 supplier listings are limited to those that deliver instantly
offer.deliveryis forced to"instant"(an item with no offer gets{ "price": 0, "delivery": "instant" })previewTokenis set to a fixed placeholder inspect tokenbotInfois populated with a synthetic holding botassetIdis replaced with a synthetic ID
/secure/market, the source filter is ignored in sandbox mode, so you get the same default sources as a request without source; a source that is only returned when requested explicitly is never included.
Search Suggestions
For building an autocomplete search box, use the suggestions endpoint:id, marketHashName and iconUrl, plus rarity, rarityColor and itemType when known. Pass a suggestion’s id as itemId to the item listings endpoint below. See the API Reference for the full shape.
Item Listings
To get all available listings for a specific item type:
* Provide either
itemId or marketHashName.
This returns individual listings with different float values, stickers, and prices for the same item type. Useful when you want to let users pick a specific skin rather than just the cheapest one. Use phase and the floatMin/floatMax range to narrow to a specific Doppler phase or wear band.
Pricing in Market Items
For market items (withdrawals), theoffer.price is what it costs to buy this item. This is the amount that gets deducted from the merchant’s wallet balance.
The delivery field (CS2 only) indicates how the item will be sourced:
"standard": the bot sources the item from a marketplace supplier when the purchase is approved, then sends a Steam trade offer to the user"instant": the item is already pre-positioned on the bot and the trade offer is sent immediately
id and offer.price when initiating the withdrawal. AssetPay routes the purchase to the correct marketplace supplier internally.
Keeping Prices Updated
Market prices change frequently. You have two options to keep your UI current:- Polling: Refetch market data periodically (every 30-60 seconds is reasonable)
- WebSocket: Subscribe to the
marketevent for real-time item and price changes, pushed already priced for your account. Covers both CS2 and Rust on one connection (see Market Updates)
Fetching Bulk Prices
If you need pricing data without item details (for example, to update prices in your own database), use the/secure/prices endpoint with your API key: