# Fetch all dopplers phases by filters

`GET /v1/prices/dopplers`

A hold listing is created while the item is still under a Steam trade lock. You can buy it now, and it is delivered after the lock expires. Hold listings are omitted unless you pass include_hold=1 or true. Each hold listing then includes unlock_at (when the lock ends; delivery starts after that) and send_until (delivery deadline; if the item is not sent by then the trade fails and you are refunded in full). Both are RFC 3339 UTC. Regular listings omit both fields. A listing is trade-locked when unlock_at is present.

Prices are integers. `1000` = `1 USD`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `phase` | query | enum | optional | Doppler phase. Will return all if set to 'any'. For multiple phases pass it like this phase=Emerald&phase=Ruby |
| `exterior` | query | enum | optional | Item exterior. Will return all if not set. For multiple exteriors pass it like this exterior=FN&exterior=MW |
| `weapon` | query | enum | optional | Weapon type. Will return all if not set. For multiple weapons pass it like this weapon=Bayonet&weapon=Karambit |
| `minified` | query | enum | optional | Will return additional data about items if set to 0 (steam_price, img, weapon, float, paint_index) |
| `min_price` | query | number | optional | Minimum item price |
| `max_price` | query | number | optional | Maximum item price |
| `search` | query | string | optional | Search by part of the hash name ex: 'bayonet'. |
| `single` | query | enum | optional | Will select only one item if set to 1 |
| `include_hold` | query | string | optional | 1 / true: also return trade-locked listings. Without this parameter the response is unchanged. |

## Example (curl)

```bash
curl -X GET 'https://api.waxpeer.com/v1/prices/dopplers?phase=any&exterior=FN&weapon=Bayonet&minified=1&single=1'
```

## Example response

```json
{
  "success": false,
  "items": [
    {
      "name": "★ Butterfly Knife | Doppler (Factory New)",
      "item_id": "27253164358",
      "price": "1380000",
      "phase": "Phase 3",
      "steam_price": "1453040",
      "img": "https://steamcommunity-a.akamaihd.net/economy/image/class/730/5070448210/200fx125f",
      "weapon": "Butterfly Knife",
      "paint_index": 420,
      "float": 0.0460052728652954,
      "unlock_at": "2026-08-04T12:00:00Z",
      "send_until": "2026-08-05T12:00:00Z"
    }
  ],
  "msg": "Wrong input"
}
```

## Responses

- `200` successful operation

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `success` | boolean | optional |  |
| `items` | array<object> | optional |  |
| `items.name` | string | optional | Item hash name |
| `items.item_id` | string | optional | Item id |
| `items.price` | number | optional | Item price (1000 = 1$) |
| `items.phase` | string | optional | Doppler phase |
| `items.steam_price` | number | optional | Item price on Steam (1000 = 1$) |
| `items.img` | string | optional | Item image |
| `items.weapon` | string | optional | Item weapon |
| `items.paint_index` | number | optional | Item paint index |
| `items.float` | number | optional | Item float |
| `items.unlock_at` | string | optional | When the Steam trade lock ends. Delivery starts after this. RFC 3339 UTC. Present only on a trade-locked listing returned with include_hold. Regular listings omit this field. |
| `items.send_until` | string | optional | Delivery deadline. If the item is not delivered by then, the trade fails and you are refunded in full. RFC 3339 UTC. Present only on a trade-locked listing. Regular listings omit this field. |
| `msg` | string | optional | Error message if success is false |


## 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).
