# Fetch user's Steam inventory

`POST /v2/merchant/steam-inventory`

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `api` | query | string | required | Your [WAXPEER API](https://waxpeer.com/profile/user) |

## Request body

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `merchant` | string | required | Your merchant name |
| `game` | enum | required | Game type |
| `steam_id` | string | required | Steam ID (17 digits) |
| `trade_url_token` | string | required | Trade URL token (8 characters) |

```json
{
  "merchant": "mymerchant",
  "game": "csgo",
  "steam_id": "76561198000000000",
  "trade_url_token": "abcdefgh"
}
```

## Example (curl)

```bash
curl -X POST 'https://api.waxpeer.com/v2/merchant/steam-inventory?api=%7B%7BAPI_KEY%7D%7D' \
  -H 'Content-Type: application/json' \
  -d '{
  "merchant": "mymerchant",
  "game": "csgo",
  "steam_id": "76561198000000000",
  "trade_url_token": "abcdefgh"
}'
```

## Example response

```json
{
  "status": "success",
  "items": [
    {
      "item_id": "141414145",
      "icon_url": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17PLfYQJD_9W7m5a0mvLwOq7c2DMBupQn2eqVotqkiwHiqhdlMmigJtOWJwE5Zw3X8wS-yea8jcDo7c7XiSw0g89L9us",
      "name": "AWP | Asiimov (Field-tested)",
      "type": "Sniper Rifle",
      "steam_price": {
        "name": "AWP | Asiimov (Field-tested)",
        "average": 1222,
        "current": 1234,
        "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17PLfYQJD_9W7m5a0mvLwOq7c2DMBupQn2eqVotqkiwHiqhdlMmigJtOWJwE5Zw3X8wS-yea8jcDo7c7XiSw0g89L9us",
        "lowest_price": 1212,
        "rarity_color": "#b0c3d9",
        "rarity": "Covert"
      },
      "limit": 3,
      "instant_price": 1000
    }
  ]
}
```

## Responses

- `200` **Please open the schema to see the response structure, fields and their descriptions**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `status` | string | required |  |
| `items` | array<object> | required | List of inventory items |
| `items.item_id` | string | optional | Steam item_id (asset id) from user inventory |
| `items.icon_url` | string | optional | Item icon URL. If not starts with http, then could be used by adding https://community.akamai.steamstatic.com/economy/image/:icon_url |
| `items.name` | string | optional | Steam item name |
| `items.type` | string | optional | Steam item type |
| `items.steam_price` | object | optional |  |
| `items.steam_price.name` | string | optional | Steam item name |
| `items.steam_price.average` | number | optional | Average Steam price (1000 = 1$) |
| `items.steam_price.current` | number | optional | Latest Steam price (1000 = 1$) |
| `items.steam_price.img` | string | optional | Steam item icon URL. If not starts with http, then could be used by adding https://community.akamai.steamstatic.com/economy/image/:icon_url |
| `items.steam_price.lowest_price` | number | optional | Lowest price listed on Waxpeer market (1000 = 1$) |
| `items.steam_price.rarity_color` | string | optional | Rarity color of an item |
| `items.steam_price.rarity` | string | optional | Rarity type of an item |
| `items.limit` | number | optional | Number of items that we can accept. Should be greater than 0 for the item to be deposited |
| `items.instant_price` | number | optional | Price of an item. Should greater than 0 for the item to be deposited (1000 = 1$) |


## Notes for agents

- Auth is the query parameter `api`, not an Authorization header.
- See [/statuses.md](/statuses.md) for numeric trade status plus `escrow_status` / `release_date`.
- Prefer GET /v2/search-items-by-name over v1.
- Prefer GET /v2/get-items-list over v1 (cursor keyset pagination without the 5000 row cap). Pass next_cursor only while has_more is true.
- Prefer POST /v2/my-history over v1 (faster on long histories, ordered by trade id). On buy rows, price is the amount you paid.
- Trade-locked listings are omitted unless you pass include_hold=1. They then include unlock_at and send_until (RFC 3339 UTC).
- Buy a trade-locked listing only by exact item_id with allow_trade_locked (query 1 on GET /v1/buy-one-p2p, body true on POST /v1/buy). GET /v1/buy-one-p2p-name never sells hold items.
- CSV snapshot: GET /v1/prices/snapshot?format=csv (gzip). include_hold appends unlock_at,send_until. compact and whitemarket are JSON-only.
- Do not use GET /v1/ready-to-transfer-p2p; use the [trade websocket](/websocket.md).
