> ## Documentation Index
> Fetch the complete documentation index at: https://api.csboard.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/prices — список minAsk цен CS2 по группам товаров

> Получите пагинированный снимок minAsk цен, сгруппированный по market hash name, износу и фазе Doppler, с минимальной ценой продажи и количеством листингов в каждой строке.

Эндпоинт prices возвращает сгруппированный снимок цен маркетплейса CSBoard. Каждая строка представляет уникальную комбинацию `market_hash_name`, `wear` и `doppler_phase` и содержит самую дешёвую текущую цену продажи и количество выставленных копий. Это удобно для построения таблиц сравнения цен, систем оповещений или оценки портфеля — вы можете получить цены тысяч предметов, не запрашивая отдельные листинги.

**Требуется аутентификация.** Отправьте ключ как `Authorization: Bearer csb_pub_...`.

## Query-параметры

<ParamField query="search" type="string">
  Полнотекстовое совпадение по `market_hash_name`, например `AK-47 | Redline`.
</ParamField>

<ParamField query="category" type="string">
  Фильтр по категории товара, например `Rifle`, `Knife`, `Gloves`.
</ParamField>

<ParamField query="wear" type="string">
  Фильтр по диапазону износа. Одно из: `Factory New`, `Minimal Wear`, `Field-Tested`, `Well-Worn`, `Battle-Scarred`.
</ParamField>

<ParamField query="rarity" type="string">
  Фильтр по уровню редкости, например `Classified`, `Covert`.
</ParamField>

<ParamField query="min_price" type="number">
  Минимальный `min_price_usd` в USD (включительно).
</ParamField>

<ParamField query="max_price" type="number">
  Максимальный `min_price_usd` в USD (включительно).
</ParamField>

<ParamField query="cursor" type="string">
  Keyset-курсор пагинации. Передайте значение `next_cursor` из предыдущего ответа.
</ParamField>

<ParamField query="limit" type="integer" default="100">
  Количество строк на странице. Минимум `1`, максимум `500`.
</ParamField>

## Поля ответа

<ResponseField name="items" type="PriceRow[]" required>
  Массив строк с ценами для этой страницы.

  <Expandable title="PriceRow object">
    <ResponseField name="market_hash_name" type="string" required>
      Steam market hash name, например `AK-47 | Redline (Field-Tested)`.
    </ResponseField>

    <ResponseField name="wear" type="string | null">
      Диапазон износа для этой группы цен. `null` для предметов без диапазона износа.
    </ResponseField>

    <ResponseField name="doppler_phase" type="string | null">
      Фаза Doppler или Gamma Doppler для этой группы цен, например `"Phase 2"`, `"Ruby"`. `null` для предметов, не относящихся к Doppler.
    </ResponseField>

    <ResponseField name="min_price_usd" type="number" required>
      Самая дешёвая текущая цена продажи в USD среди всех листингов в этой группе.
    </ResponseField>

    <ResponseField name="qty" type="integer" required>
      Количество листингов, доступных в этой группе сейчас.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="next_cursor" type="string | null" required>
  Keyset-курсор для следующей страницы. Передайте как `cursor` в следующем запросе. `null` на последней странице.
</ResponseField>

## Пример запроса

```bash theme={null}
curl "https://csboard.com/v1/prices?category=Rifle&wear=Field-Tested&limit=50" \
  -H "Authorization: Bearer csb_pub_..."
```

## Пример ответа

```json theme={null}
{
  "items": [
    {
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "wear": "Field-Tested",
      "doppler_phase": null,
      "min_price_usd": 11.92,
      "qty": 73
    }
  ],
  "next_cursor": null
}
```

## Коды ошибок

| HTTP-статус | Код                   | Значение                                                                                    |
| ----------- | --------------------- | ------------------------------------------------------------------------------------------- |
| 401         | `unauthorized`        | Отсутствует или некорректный API-ключ.                                                      |
| 429         | `rate_limit_exceeded` | Более 30 запросов/мин. Перед повтором подождите время, указанное в заголовке `Retry-After`. |

<Warning>
  Эндпоинт prices возвращает **индикативный сгруппированный снимок**. Данные периодически материализуются и могут отставать от живого маркетплейса. Для авторитетной цены продажи конкретного предмета в реальном времени перед оформлением заказа используйте `GET /v1/listings`.
</Warning>


## OpenAPI

````yaml GET /prices
openapi: 3.1.0
info:
  title: CSBoard API
  version: 1.0.0
  description: >-
    Market data over the CSBoard marketplace — live listings, floats, stickers,
    minAsk prices, FX rates — plus opt-in buying straight from your balance.
    Free to read, key-gated, built for automation.
  contact:
    name: CSBoard
    url: https://csboard.com/docs
servers:
  - url: https://csboard.com/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Status
    description: Liveness and freshness probes.
  - name: Market data
    description: Read the live catalog, prices, and FX rates.
  - name: Trading
    description: Buy listings from your CSBoard balance. Opt-in, key-gated.
  - name: Account
    description: Your balance, settled funds, and trading status.
paths:
  /prices:
    get:
      tags:
        - Market data
      summary: minAsk price list
      description: >-
        The minAsk price list — one row per market hash name (+ wear + Doppler
        phase), with the cheapest current ask and how many are listed.
        Indicative grouped snapshot; can lag the live listing price.
      operationId: listPrices
      parameters:
        - name: search
          in: query
          description: Full-text match on market hash name.
          schema:
            type: string
        - name: category
          in: query
          description: e.g. Rifle, Knife, Gloves.
          schema:
            type: string
        - name: wear
          in: query
          description: Item wear bucket.
          schema:
            type: string
            enum:
              - Factory New
              - Minimal Wear
              - Field-Tested
              - Well-Worn
              - Battle-Scarred
        - name: rarity
          in: query
          description: e.g. Classified, Covert.
          schema:
            type: string
        - name: min_price
          in: query
          description: Minimum price in USD.
          schema:
            type: number
        - name: max_price
          in: query
          description: Maximum price in USD.
          schema:
            type: number
        - name: cursor
          in: query
          description: Keyset cursor from next_cursor.
          schema:
            type: string
        - name: limit
          in: query
          description: 1–500. Default 100.
          schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 100
      responses:
        '200':
          description: A page of price rows.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PriceRow'
                  next_cursor:
                    type:
                      - string
                      - 'null'
                required:
                  - items
                  - next_cursor
              example:
                items:
                  - market_hash_name: AK-47 | Redline (Field-Tested)
                    wear: Field-Tested
                    doppler_phase: null
                    min_price_usd: 11.92
                    qty: 73
                next_cursor: null
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    PriceRow:
      type: object
      properties:
        market_hash_name:
          type: string
        wear:
          type:
            - string
            - 'null'
        doppler_phase:
          type:
            - string
            - 'null'
        min_price_usd:
          type: number
          description: Cheapest current ask in USD.
        qty:
          type: integer
          description: How many are listed at or above this group.
      required:
        - market_hash_name
        - min_price_usd
        - qty
    Error:
      type: object
      description: >-
        All errors return { code, detail }. Some carry extra fields (e.g.
        price_moved adds current_total_usd, insufficient_balance adds
        required_usd/current_usd).
      properties:
        code:
          type: string
          description: >-
            Machine-readable error code, e.g. rate_limit_exceeded,
            trading_not_enabled, price_moved.
        detail:
          type: string
          description: Human-readable explanation.
      required:
        - code
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: unauthorized
            message: Missing or invalid API key.
    RateLimited:
      description: Rate limit exceeded. Includes a Retry-After header.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: rate_limit_exceeded
            message: Too many requests.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Send your key as a Bearer token on every request: `Authorization: Bearer
        csb_pub_...`. Generate keys in your CSBoard profile.

````