Skip to main content
The market endpoints return items currently available for purchase. This is what you show users when they want to withdraw (buy) skins.

Fetching Market Items

Response:

Query Parameters

Sandbox Mode

When you pass development=true (or development=1), the market returns the same live listings but stamps every item so you can build your UI against the complete item shape without needing expensive skins in the pool:
  • offer.delivery is forced to "instant"
  • previewToken is set to a fixed placeholder inspect token
  • botInfo is populated with a synthetic holding bot
This lets you exercise instant delivery, preview tokens, and bot attribution against cheap live listings. It only changes the shape of the response; it does not create or reserve any real items. On /secure/market, the source filter is ignored in sandbox mode so all suppliers are returned uniformly.

Search Suggestions

For building an autocomplete search box, use the suggestions endpoint:
This returns a lightweight list of matching item names, faster than a full market search.

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), the offer.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 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
In both cases, the final delivery to the user is via a Steam trade offer they must accept. Pass the item’s 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:
  1. Polling: Refetch market data periodically (every 30-60 seconds is reasonable)
  2. WebSocket: Subscribe to the market event for real-time item and price changes on the internal source, pushed already priced for your account (see Market Updates)
When a user clicks “Buy”, always validate that the price hasn’t changed since they last loaded the page. If it has, show them the updated price before proceeding.

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:
This returns a compact list of market hash names with their current prices. See the API Reference for the full response format.