Skip to main content
The inventory endpoint returns a user’s tradeable Steam items along with live offer prices. This is what you show users when they want to deposit (sell) items.

Fetching Inventory

Response:

Query Parameters

Understanding the Response

Pricing Fields

Each item can have two price fields, and they mean different things:
  • marketPrice is the market reference price in USD. This is not what the user gets paid. Use it to show market value context in your UI. It reflects live multi-marketplace data (order books, liquidity and realized sales aggregated by cs2.sh) run through AssetPay’s fair-value model. On Rust items there is no separate market quote: marketPrice is the deposit offer price rounded up.
  • offer.price is the actual amount in USD the user will receive for depositing this item. This is the number that matters for your balance calculations.

The offer.accepted Field

Every inventory item carries an offer object. Items where offer.accepted is true have a valid offer and can be deposited. Items with no quote, or whose stock is already full, come back with offer.price of 0 and offer.accepted: false and can’t be deposited right now. Pass acceptedOnly=true to leave them out of the response.

Collateral

The collateral field in the response tells you how much instant credit is available for this user if you’re using instant deposits. See the Deposits guide for details.

Caching Behavior

Inventory results are cached for 15 minutes on our side. The updatedAt field tells you when the cache was last refreshed. Use refresh=true only when:
  • Loading the inventory for the first time in a session
  • The user explicitly asks to refresh
Don’t refresh on every page load. It puts unnecessary load on Steam’s API and can lead to rate limiting.

Rust Items

Rust items work the same way, but they can be stackable. When an item has an amount field greater than 1, the user holds several units in one Steam asset. A stacked asset is capped at offer.maxAmount: 1, so each deposit takes one unit from it. A single (unstacked) Rust item carries offer.maxAmount only when its offer has a stock limit. CS2 items don’t carry offer.maxAmount.

Filtering and Sorting

You can combine query parameters to build a search UI:
The count field in the response reflects the total matching items (not just the current page), so you can build pagination controls.