Skip to content

Deposit Preview ​

POST /api/v1/merchant/deposit-preview

Returns the prices we currently pay for the items in a user's Steam inventory — a lightweight quote surface for building a deposit cart. No records are created, nothing is reserved, and the call has no side effects, so it is safe to call as often as your UI needs.

Compared to Get Inventory, the preview responds faster and does not start the 5-minute pricing snapshot: it is a display quote. To credit a deposit at exactly these prices, create it with from_preview.

Access on request

This endpoint is enabled per merchant account. Until we enable it for yours, the call answers 403 and from_preview on Create Deposit is ignored. Ask your account manager to turn it on.

Request ​

Headers ​

HeaderRequiredDescription
X-Api-Key✅Your merchant API key
Content-Type✅application/json

Body ​

ParameterTypeRequiredDescription
gamestring✅Game code: csgo, rust, dota2, tf2
partnerintegerunless itemsSteam trade partner ID
tokenstringunless itemsSteam trade token
itemsarrayunless partner+tokenQuote this exact list instead of the user's whole inventory. Up to 1000 entries. See Pricing a known cart
items[].asset_idstring✅Steam asset ID, returned unchanged as items[].id
items[].namestring✅Steam market_hash_name
items[].icon_urlstring✅Steam icon_url

Pricing a known cart (items) ​

If you already know which items the user holds, send them in items instead of the trade link and we quote exactly that list.

json
{
  "game": "csgo",
  "items": [
    {
      "asset_id": "38029384123",
      "name": "AK-47 | Redline (Field-Tested)",
      "icon_url": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpout6..."
    }
  ]
}

All three fields are required. asset_id is not used for pricing — we return it unchanged so you can match our prices back to your cart.

image_url, exterior, rarity and rarity_color are not returned in this mode — you get back id, name, price and, on phased items, phase. With a trade link the response is the full item card, same as Get Inventory.

Response ​

json
{
  "success": true,
  "message": "Deposit preview fetched successfully",
  "data": {
    "items": [
      {
        "id": "38029384123",
        "name": "AK-47 | Redline (Field-Tested)",
        "price": 12.45,
        "image_url": "https://community.cloudflare.steamstatic.com/economy/image/...",
        "exterior": "Field-Tested",
        "rarity": "Classified",
        "rarity_color": "#d32ce6"
      }
    ],
    "total": 47,
    "sum": 284.90,
    "game": "csgo",
    "max_items": 50
  }
}
FieldTypeDescription
itemsarrayItems we currently accept, with the price paid for each. Items we do not accept right now are omitted
items[].idstringSteam asset ID — pass these to Create Deposit as asset_ids
items[].phasestringDoppler phase, present on phased items
totalintegerNumber of quotable items
sumnumberTotal value of all quotable items
max_itemsintegerPer-deposit item limit — a deposit with more items is rejected with too_many_items

Price freshness ​

Preview prices are refreshed periodically (typically every ~10 minutes) and are stable in between. If the user takes long to decide, prices may update; a deposit created with from_preview is credited at the current prices — see Deposit at Preview Prices.

Preview coverage can differ from Get Inventory

The preview is a fast display quote. The set of quotable items and their prices can occasionally differ from a Get Inventory response for the same account — the deposit itself always settles the final amount.