GET /secure/inventory
Returns the Steam inventory for the account identified by the suppliedtradeUrl. There is no client-authentication step on this path — the merchant API key authenticates the call, and the Steam account is derived per-request from the trade URL.
Authentication: Merchant API Key (api-key header)
Scope: CORE_ACCESS
Request
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
tradeUrl | string | Required | The Steam trade URL of the account whose inventory you want |
game | string | 730 | "730" (CS2) or "252490" (Rust) |
refresh | boolean | false | Force-refresh upstream cache |
search | string | — | Filter by item name (max 100 chars) |
sort | string | — | relevance, priceAsc, priceDesc, nameAsc, or nameDesc |
minPrice | number | — | Minimum offer price in USD |
maxPrice | number | — | Maximum offer price in USD |
page | number | 1 | Page number |
limit | number | 50 | Items per page (use -1 to disable pagination) |
Response
Same shape asGET /client/inventory. Each item carries the offer block with the price AssetPay will pay if you call /secure/sell with that itemId.
collateral is always 0 for self-trade callers — instant credit isn’t applicable when the merchant is trading with itself. See the Instant Credit guide for the client-flow behavior.
Rate Limits
| Merchant Status | Limit |
|---|---|
| Verified | 10,000 requests / min |
| Unverified | 100 requests / min |
Errors
| Code | Key | When |
|---|---|---|
| 3 | INVENTORY_FETCH_FAILED | Couldn’t load the Steam inventory (private or banned) |
| 7 | USER_NOT_TRADEABLE | Steam returned 403 — inventory private or account can’t trade |
| 13 | INVALID_TRADEURL | The supplied tradeUrl is malformed |
| 31 | STEAM_UNAVAILABLE | Steam temporarily couldn’t serve the request; retry shortly |
| 33 | STEAM_RATE_LIMITED | Steam is rate-limiting inventory reads; retry shortly |
| 1010 | NO_BOTS_AVAILABLE | No Steam bots online; retry shortly |
| 1011 | FLEET_DEGRADED | Steam fleet degraded; retry shortly |