# GET /v1/prices/latest

所有受支持市场中全部饰品的当前价格。

返回 BUFF、Youpin、CSFloat、Skinport、Steam 和 C5Game 中每件已跟踪饰品的最新价格。

大多数价格约每 5 分钟更新一次，具体取决于市场。每个来源对象都有自己的 `updated_at` 和 `collected_at` 时间戳。

## 访问

适用于所有套餐。

## 支持的来源

| 来源 | 字段 |
| --- | --- |
| `buff` | `ask`, `bid`, `ask_volume`, `bid_volume` |
| `youpin` | `ask`, `bid`, `ask_volume`, `bid_volume` |
| `csfloat` | `ask`, `bid`, `ask_volume` |
| `skinport` | `ask`, `ask_volume`, `max_ask`, `mean_ask`, `median_ask`, `24h_history`, `7d_history`, `30d_history`, `90d_history` |
| `steam` | `ask`, `bid`, `ask_volume`, `bid_volume` |
| `c5game` | `ask`, `bid`, `ask_volume` |

具有 Doppler、Gamma Doppler 或 Case Hardened 价格的饰品可以包含 `variants`；见[变体](/zh-cn/docs/using-the-api#变体)。

## 请求

`GET https://api.cs2.sh/v1/prices/latest`

**curl**

```bash
curl https://api.cs2.sh/v1/prices/latest \
  -H "Authorization: Bearer <<YOUR_API_KEY>>" \
  -H "Accept-Encoding: gzip" --compressed
```

**Python**

```python
import requests

headers = {
    "Authorization": "Bearer <<YOUR_API_KEY>>",
    "Accept-Encoding": "gzip",
}

response = requests.get(
    "https://api.cs2.sh/v1/prices/latest",
    headers=headers,
)

response.raise_for_status()
data = response.json()
```

**Node**

```javascript
const headers = {
  "Authorization": "Bearer <<YOUR_API_KEY>>",
  "Accept-Encoding": "gzip",
};

const response = await fetch("https://api.cs2.sh/v1/prices/latest", { headers });

if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
```

**Go**

```go
package main

import (
    "compress/gzip"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("GET", "https://api.cs2.sh/v1/prices/latest", nil)
    req.Header.Set("Authorization", "Bearer <<YOUR_API_KEY>>")
    req.Header.Set("Accept-Encoding", "gzip")

    resp, err := http.DefaultClient.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    if resp.StatusCode < 200 || resp.StatusCode >= 300 {
        body, _ := io.ReadAll(resp.Body)
        panic(fmt.Sprintf("HTTP %d: %s", resp.StatusCode, body))
    }

    var reader io.Reader = resp.Body
    if resp.Header.Get("Content-Encoding") == "gzip" {
        gz, err := gzip.NewReader(resp.Body)
        if err != nil { panic(err) }
        defer gz.Close()
        reader = gz
    }

    var data any
    if err := json.NewDecoder(reader).Decode(&data); err != nil { panic(err) }
    fmt.Printf("%#v\n", data)
}
```

**R**

```r
library(httr2)

resp <- request("https://api.cs2.sh/v1/prices/latest") |>
  req_headers(
    Authorization = "Bearer <<YOUR_API_KEY>>",
    `Accept-Encoding` = "gzip"
  ) |>
  req_perform()

data <- resp_body_json(resp)
```

## 响应

```json
{
  "response_time": "2026-07-26T18:54:04.041256216Z",
  "currency": "USD",
  "items": {
    "USP-S | Printstream (Factory New)": {
      "market_hash_name": "USP-S | Printstream (Factory New)",
      "buff": {
        "updated_at": "2026-07-26T18:50:53Z",
        "collected_at": "2026-07-26T18:53:10.67Z",
        "ask": 109.72,
        "ask_volume": 463,
        "bid": 106.17,
        "bid_volume": 41
      },
      "youpin": {
        "updated_at": "2026-07-26T18:52:35.85Z",
        "collected_at": "2026-07-26T18:52:41.584Z",
        "ask": 108.24,
        "ask_volume": 507,
        "bid": 107.06,
        "bid_volume": 63
      },
      "csfloat": {
        "updated_at": "2026-07-26T18:53:05.094Z",
        "collected_at": "2026-07-26T18:53:05.134Z",
        "ask": 107.99,
        "ask_volume": 227,
        "bid": 105
      },
      "skinport": {
        "updated_at": "2026-07-26T18:53:09.397Z",
        "collected_at": "2026-07-26T18:53:15.672Z",
        "ask": 115.95,
        "ask_volume": 39,
        "max_ask": 575.78,
        "mean_ask": 181.61,
        "median_ask": 156.61,
        "24h_history": {
          "price": 113.78,
          "max_price": 116.48,
          "mean_price": 115.13,
          "median_price": 115.13,
          "volume": 2
        },
        "7d_history": {
          "price": 102.41,
          "max_price": 147.72,
          "mean_price": 118.31,
          "median_price": 113.79,
          "volume": 7
        },
        "30d_history": {
          "price": 102.41,
          "max_price": 147.72,
          "mean_price": 119.16,
          "median_price": 118.57,
          "volume": 44
        },
        "90d_history": {
          "price": 96.72,
          "max_price": 210.73,
          "mean_price": 123.13,
          "median_price": 119.33,
          "volume": 149
        }
      },
      "steam": {
        "updated_at": "2026-07-26T18:52:21.42Z",
        "collected_at": "2026-07-26T18:52:54.624Z",
        "ask": 169.14,
        "ask_volume": 70,
        "bid": 155.05,
        "bid_volume": 2951
      },
      "c5game": {
        "updated_at": "2026-07-26T18:49:05.186Z",
        "collected_at": "2026-07-26T18:49:07.9Z",
        "ask": 113.56,
        "ask_volume": 141,
        "bid": 221.65
      }
    }
  }
}
```

## 响应字段

[LatestPricesGetResponse](/zh-cn/docs/objects#latestpricesgetresponse) 字段:

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `response_time` | `string (date-time)` | 是 | 响应生成时间 |
| `currency` | `string` | 是 | 货币代码（始终为 `USD`） |
| `items` | [`Record<string, Item>`](/zh-cn/docs/objects#item) | 是 | `market_hash_name` 到饰品价格数据的映射。 |

## 饰品数据

| 字段 | 描述 |
| --- | --- |
| `items.<name>.<source>` | 该市场上最新的 `ask`/`bid` 价格与成交量，附带 `updated_at` 和 `collected_at`。 |
| `items.<name>.variants` | Doppler 和 Case Hardened 变体的相同来源结构。 |

- 基础饰品的来源对象是密集的：一旦任一来源对该饰品有数据，`buff`、`youpin`、`csfloat`、`skinport`、`steam` 和 `c5game` 即会出现。
- 不可用的来源字段为 `null`。
- 变体来源对象是稀疏的，仅在该来源有变体数据时出现。

完整结构：[Item](/zh-cn/docs/objects#item)、[Variant](/zh-cn/docs/objects#variant)、[SkinportPriceWindow](/zh-cn/docs/objects#skinportpricewindow)，以及 [最新价格来源数据](/zh-cn/docs/objects#最新价格来源数据) 下的各来源类型。

### Item

一个饰品在所有来源上的价格数据。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `market_hash_name` | `string` | 是 | Steam 市场哈希名称（规范饰品标识符）。 |
| `buff` | [BUFFSourceData](/zh-cn/docs/objects#buffsourcedata) | 是 | 来自 BUFF 的价格数据。 |
| `youpin` | [YoupinSourceData](/zh-cn/docs/objects#youpinsourcedata) | 是 | 来自 Youpin898 的价格数据。 |
| `csfloat` | [CsfloatSourceData](/zh-cn/docs/objects#csfloatsourcedata) | 是 | 来自 CSFloat 的当前挂单与求购单价格。 |
| `skinport` | [SkinportSourceData](/zh-cn/docs/objects#skinportsourcedata) | 是 | 来自 Skinport 的价格数据，包括 Skinport 提供的滚动历史窗口。 |
| `c5game` | [C5GameSourceData](/zh-cn/docs/objects#c5gamesourcedata) | 是 | 来自 C5Game 的价格数据。Ask 和 bid 来自独立采集流程，因此同一饰品的时间戳可能不同。 |
| `steam` | [SteamSourceData](/zh-cn/docs/objects#steamsourcedata) | 是 | 来自 Steam 社区市场的价格数据。 |
| `variants` | [`Record<string, Variant>`](/zh-cn/docs/objects#variant) | 否 | 带有 Doppler / Gamma Doppler 相位或 Case Hardened 分层的饰品的逐变体价格数据。按显示名称作为键。 |

### Variant

饰品的一个变体（Doppler / Gamma Doppler 相位或 Case Hardened 分层）。`youpin` 在每个 Doppler 与 Gamma Doppler 相位上提供 `ask`、`bid` 与 `bid_volume`，大多数饰品还提供 `ask_volume`。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `market_hash_name` | `string` | 是 | 基础饰品 `market_hash_name`。完整变体名称见：`name`。 |
| `name` | `string` | 是 | 变体的完整 `market_hash_name`，例如 `★ Karambit \| Doppler (Factory New) \| Phase 1`。 |
| `display_name` | `string` | 是 | 人类可读的变体标签（例如 `Phase 1`、`Ruby`、`Tier 1`、`Blue Gem`）。 |
| `version` | `string` | 是 | 允许值: `p1`, `p2`, `p3`, `p4`, `ruby`, `sapphire`, `blackpearl`, `emerald`, `t1`, `t2`, `t3`, `t4`, `singleblue`. 稳定变体代码。客户端代码应基于此切换。 |
| `buff` | [BUFFSourceData](/zh-cn/docs/objects#buffsourcedata) | 否 | 来自 BUFF 的价格数据。 |
| `youpin` | [YoupinSourceData](/zh-cn/docs/objects#youpinsourcedata) | 否 | 来自 Youpin898 的价格数据。 |
| `csfloat` | [CsfloatSourceData](/zh-cn/docs/objects#csfloatsourcedata) | 否 | 来自 CSFloat 的当前挂单与求购单价格。 |
| `skinport` | [SkinportSourceData](/zh-cn/docs/objects#skinportsourcedata) | 否 | 来自 Skinport 的价格数据，包括 Skinport 提供的滚动历史窗口。 |
| `c5game` | [C5GameSourceData](/zh-cn/docs/objects#c5gamesourcedata) | 否 | 来自 C5Game 的价格数据。Ask 和 bid 来自独立采集流程，因此同一饰品的时间戳可能不同。 |
| `steam` | [SteamSourceData](/zh-cn/docs/objects#steamsourcedata) | 否 | 来自 Steam 社区市场的价格数据。 |

## 最新价格来源数据

### BUFFSourceData

来自 BUFF 的价格数据。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `updated_at` | `string (date-time) \| null` | 是 | BUFF 上次更新此价格的时间 |
| `collected_at` | `string (date-time) \| null` | 是 | cs2.sh 拉取此数据的时间 |
| `ask` | `number \| null` | 是 | 最低 ask 价格（USD） |
| `ask_volume` | `integer \| null` | 是 | 在售饰品数量 |
| `bid` | `number \| null` | 是 | 最高求购单价格（USD） |
| `bid_volume` | `integer \| null` | 是 | 活跃求购单数量 |

### YoupinSourceData

来自 Youpin898 的价格数据。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `updated_at` | `string (date-time) \| null` | 是 | Youpin 上次更新此价格的时间 |
| `collected_at` | `string (date-time) \| null` | 是 | cs2.sh 拉取此数据的时间 |
| `ask` | `number \| null` | 是 | 最低 ask 价格（USD） |
| `ask_volume` | `integer \| null` | 是 | 在售饰品数量 |
| `bid` | `number \| null` | 是 | 最高求购单价格（USD） |
| `bid_volume` | `integer \| null` | 是 | 活跃求购单数量 |

### CsfloatSourceData

来自 CSFloat 的当前挂单与求购单价格。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `updated_at` | `string (date-time) \| null` | 是 | CSFloat 上次更新此价格的时间 |
| `collected_at` | `string (date-time) \| null` | 是 | cs2.sh 拉取此数据的时间 |
| `ask` | `number \| null` | 是 | 最低 ask 价格（USD） |
| `ask_volume` | `integer \| null` | 是 | 在售饰品数量 |
| `bid` | `number \| null` | 是 | 最高求购单价格（USD） |

### SkinportSourceData

来自 Skinport 的价格数据，包括 Skinport 提供的滚动历史窗口。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `updated_at` | `string (date-time) \| null` | 是 | Skinport 上次更新此价格的时间 |
| `collected_at` | `string (date-time) \| null` | 是 | cs2.sh 拉取此数据的时间 |
| `ask` | `number \| null` | 是 | 最低 ask 价格（USD） |
| `ask_volume` | `integer \| null` | 是 | 在售饰品数量 |
| `max_ask` | `number \| null` | 是 | 最高挂单价（USD） |
| `mean_ask` | `number \| null` | 是 | 平均挂单价（USD） |
| `median_ask` | `number \| null` | 是 | 挂单价中位数（USD） |
| `24h_history` | [SkinportPriceWindow](/zh-cn/docs/objects#skinportpricewindow) \| `null` | 是 | - |
| `7d_history` | [SkinportPriceWindow](/zh-cn/docs/objects#skinportpricewindow) \| `null` | 是 | - |
| `30d_history` | [SkinportPriceWindow](/zh-cn/docs/objects#skinportpricewindow) \| `null` | 是 | - |
| `90d_history` | [SkinportPriceWindow](/zh-cn/docs/objects#skinportpricewindow) \| `null` | 是 | - |

### SteamSourceData

来自 Steam 社区市场的价格数据。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `updated_at` | `string (date-time) \| null` | 是 | 上游价格上次更新的时间 |
| `collected_at` | `string (date-time) \| null` | 是 | cs2.sh 拉取此数据的时间 |
| `ask` | `number \| null` | 是 | 最低 ask 价格（USD） |
| `ask_volume` | `integer \| null` | 是 | 在售饰品数量 |
| `bid` | `number \| null` | 是 | 最高求购单价格（USD） |
| `bid_volume` | `integer \| null` | 是 | 活跃求购单数量 |

### C5GameSourceData

来自 C5Game 的价格数据。Ask 和 bid 来自独立采集流程，因此同一饰品的时间戳可能不同。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `updated_at` | `string (date-time) \| null` | 是 | C5Game 上次更新此价格的时间 |
| `collected_at` | `string (date-time) \| null` | 是 | cs2.sh 拉取此数据的时间 |
| `ask` | `number \| null` | 是 | 最低 ask 价格（USD） |
| `ask_volume` | `integer \| null` | 是 | 在售饰品数量 |
| `bid` | `number \| null` | 是 | 最高求购单价格（USD） |

### SkinportPriceWindow

Skinport 提供的滚动价格窗口。当 Skinport 最近没有该饰品成交时，对象为 `null`。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `price` | `number` | 是 | 窗口内最近成交价（USD） |
| `max_price` | `number` | 是 | 窗口内最高成交价（USD） |
| `mean_price` | `number` | 是 | 窗口内平均成交价（USD） |
| `median_price` | `number` | 是 | 窗口内成交价中位数（USD） |
| `volume` | `integer` | 是 | 窗口内成交次数 |

## 错误

`503 service_unavailable` 表示最新快照尚未就绪。所有端点共有的错误见[请求错误](/zh-cn/docs/using-the-api#请求错误)。

## POST /v1/prices/latest

返回与 GET /v1/prices/latest 相同的最新价格数据，但仅包含最多 100 个指定饰品。

大多数价格约每 5 分钟更新一次，具体取决于市场。具有 Doppler、Gamma Doppler 或 Case Hardened 价格的饰品可以包含 `variants`。

### 请求

`POST https://api.cs2.sh/v1/prices/latest`

**curl**

```bash
curl -X POST https://api.cs2.sh/v1/prices/latest \
  -H "Authorization: Bearer <<YOUR_API_KEY>>" \
  -H "Accept-Encoding: gzip" --compressed \
  -H "Content-Type: application/json" \
  -d '{
  "items": [
    "USP-S | Printstream (Factory New)",
    "★ Karambit | Doppler (Factory New)"
  ]
}'
```

**Python**

```python
import requests

headers = {
    "Authorization": "Bearer <<YOUR_API_KEY>>",
    "Accept-Encoding": "gzip",
    "Content-Type": "application/json",
}

payload = {
    "items": ["USP-S | Printstream (Factory New)", "★ Karambit | Doppler (Factory New)"],
}

response = requests.post(
    "https://api.cs2.sh/v1/prices/latest",
    headers=headers,
    json=payload,
)

response.raise_for_status()
data = response.json()
```

**Node**

```javascript
const headers = {
  "Authorization": "Bearer <<YOUR_API_KEY>>",
  "Accept-Encoding": "gzip",
  "Content-Type": "application/json",
};

const response = await fetch("https://api.cs2.sh/v1/prices/latest", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "items": [
      "USP-S | Printstream (Factory New)",
      "★ Karambit | Doppler (Factory New)"
    ]
  }),
});

if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
```

**Go**

```go
package main

import (
    "bytes"
    "compress/gzip"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    payload := map[string]any{
        "items": []any{
            "USP-S | Printstream (Factory New)",
            "★ Karambit | Doppler (Factory New)",
        },
    }
    body, _ := json.Marshal(payload)
    req, _ := http.NewRequest("POST", "https://api.cs2.sh/v1/prices/latest", bytes.NewReader(body))
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Authorization", "Bearer <<YOUR_API_KEY>>")
    req.Header.Set("Accept-Encoding", "gzip")

    resp, err := http.DefaultClient.Do(req)
    if err != nil { panic(err) }
    defer resp.Body.Close()

    if resp.StatusCode < 200 || resp.StatusCode >= 300 {
        body, _ := io.ReadAll(resp.Body)
        panic(fmt.Sprintf("HTTP %d: %s", resp.StatusCode, body))
    }

    var reader io.Reader = resp.Body
    if resp.Header.Get("Content-Encoding") == "gzip" {
        gz, err := gzip.NewReader(resp.Body)
        if err != nil { panic(err) }
        defer gz.Close()
        reader = gz
    }

    var data any
    if err := json.NewDecoder(reader).Decode(&data); err != nil { panic(err) }
    fmt.Printf("%#v\n", data)
}
```

**R**

```r
library(httr2)

payload <- list(
  items = list(
    "USP-S | Printstream (Factory New)",
    "★ Karambit | Doppler (Factory New)"
  )
)

resp <- request("https://api.cs2.sh/v1/prices/latest") |>
  req_headers(
    Authorization = "Bearer <<YOUR_API_KEY>>",
    `Accept-Encoding` = "gzip"
  ) |>
  req_body_json(payload) |>
  req_perform()

data <- resp_body_json(resp)
```

### 参数

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `items` | `string[]` | 是 | `market_hash_name` 值列表（最多 100 个） |

### 响应

```json
{
  "response_time": "2026-08-16T02:40:27.537385456Z",
  "currency": "USD",
  "items": {
    "USP-S | Printstream (Factory New)": {
      "market_hash_name": "USP-S | Printstream (Factory New)",
      "buff": {
        "updated_at": "2026-08-16T02:36:51Z",
        "collected_at": "2026-08-16T02:39:08.389Z",
        "ask": 98.72,
        "ask_volume": 509,
        "bid": 97.61,
        "bid_volume": 38
      },
      "youpin": {
        "updated_at": "2026-08-16T02:34:11.218Z",
        "collected_at": "2026-08-16T02:34:19.719Z",
        "ask": 101.61,
        "ask_volume": 540,
        "bid": 99.39,
        "bid_volume": 64
      },
      "csfloat": {
        "updated_at": "2026-08-16T02:39:06.114Z",
        "collected_at": "2026-08-16T02:39:06.156Z",
        "ask": 98.84,
        "ask_volume": 244,
        "bid": 97
      },
      "skinport": {
        "updated_at": "2026-08-16T02:39:10.489Z",
        "collected_at": "2026-08-16T02:39:17.102Z",
        "ask": 106.28,
        "ask_volume": 62,
        "max_ask": 586,
        "mean_ask": 165.9,
        "median_ask": 141.66,
        "24h_history": {
          "price": 106.08,
          "max_price": 106.08,
          "mean_price": 106.08,
          "median_price": 106.08,
          "volume": 1
        },
        "7d_history": {
          "price": 103.44,
          "max_price": 163.45,
          "mean_price": 112.27,
          "median_price": 106.42,
          "volume": 10
        },
        "30d_history": {
          "price": 103.44,
          "max_price": 190.96,
          "mean_price": 118.68,
          "median_price": 115.8,
          "volume": 34
        },
        "90d_history": {
          "price": 98.44,
          "max_price": 214.47,
          "mean_price": 120.23,
          "median_price": 118.11,
          "volume": 139
        }
      },
      "steam": {
        "updated_at": "2026-08-16T02:38:15.395Z",
        "collected_at": "2026-08-16T02:38:15.765Z",
        "ask": 154.58,
        "ask_volume": 64,
        "bid": 148.73,
        "bid_volume": 2847
      },
      "c5game": {
        "updated_at": "2026-08-16T02:39:16.373Z",
        "collected_at": "2026-08-16T02:39:17.181Z",
        "ask": 103.25,
        "ask_volume": 231,
        "bid": 203.82
      }
    },
    "★ Karambit | Doppler (Factory New)": {
      "market_hash_name": "★ Karambit | Doppler (Factory New)",
      "buff": {
        "updated_at": "2026-08-16T02:36:29Z",
        "collected_at": "2026-08-16T02:39:08.389Z",
        "ask": 1320.24,
        "ask_volume": 1592,
        "bid": 1265.35,
        "bid_volume": 73
      },
      "youpin": {
        "updated_at": "2026-08-16T02:39:15.117Z",
        "collected_at": "2026-08-16T02:39:30.793Z",
        "ask": 1275.36,
        "ask_volume": 1654,
        "bid": 1257.94,
        "bid_volume": 24
      },
      "csfloat": {
        "updated_at": "2026-08-16T02:39:06.114Z",
        "collected_at": "2026-08-16T02:39:06.156Z",
        "ask": 1262,
        "ask_volume": 958,
        "bid": null
      },
      "skinport": {
        "updated_at": null,
        "collected_at": null,
        "ask": null,
        "ask_volume": null,
        "max_ask": null,
        "mean_ask": null,
        "median_ask": null,
        "24h_history": null,
        "7d_history": null,
        "30d_history": null,
        "90d_history": null
      },
      "steam": {
        "updated_at": "2026-08-16T02:38:51.747Z",
        "collected_at": "2026-08-16T02:38:52.055Z",
        "ask": 1932.57,
        "ask_volume": 1,
        "bid": 1790.09,
        "bid_volume": 6564
      },
      "c5game": {
        "updated_at": "2026-08-16T02:39:00.4Z",
        "collected_at": "2026-08-16T02:39:01.15Z",
        "ask": 1304.49,
        "ask_volume": 315,
        "bid": 1253.49
      },
      "variants": {
        "Phase 2": {
          "market_hash_name": "★ Karambit | Doppler (Factory New)",
          "name": "★ Karambit | Doppler (Factory New) | Phase 2",
          "display_name": "Phase 2",
          "version": "p2",
          "buff": {
            "updated_at": "2026-08-16T02:36:29Z",
            "collected_at": "2026-08-16T02:39:08.389Z",
            "ask": 1876.52,
            "ask_volume": null,
            "bid": 1802.35,
            "bid_volume": null
          },
          "youpin": {
            "updated_at": "2026-08-16T02:38:00.447Z",
            "collected_at": "2026-08-16T02:38:27.248Z",
            "ask": 1824.06,
            "ask_volume": 445,
            "bid": 1794.93,
            "bid_volume": 39
          },
          "csfloat": {
            "updated_at": "2026-08-16T02:33:30.519Z",
            "collected_at": "2026-08-16T02:33:30.541Z",
            "ask": 1851.86,
            "ask_volume": null,
            "bid": 1800
          },
          "c5game": {
            "updated_at": "2026-08-16T02:35:44.486Z",
            "collected_at": "2026-08-16T02:36:52.69Z",
            "ask": 1868.55,
            "ask_volume": 67,
            "bid": 1794.93
          }
        },
        "Ruby": {
          "market_hash_name": "★ Karambit | Doppler (Factory New)",
          "name": "★ Karambit | Doppler (Factory New) | Ruby",
          "display_name": "Ruby",
          "version": "ruby",
          "buff": {
            "updated_at": "2026-08-16T02:36:29Z",
            "collected_at": "2026-08-16T02:39:08.389Z",
            "ask": 7713.76,
            "ask_volume": null,
            "bid": 7053.64,
            "bid_volume": null
          },
          "youpin": {
            "updated_at": "2026-08-16T02:38:00.447Z",
            "collected_at": "2026-08-16T02:38:27.248Z",
            "ask": 7680.03,
            "ask_volume": 69,
            "bid": 7250.93,
            "bid_volume": 36
          },
          "csfloat": {
            "updated_at": "2026-08-16T02:37:08.797Z",
            "collected_at": "2026-08-16T02:37:37.562Z",
            "ask": 7723,
            "ask_volume": null,
            "bid": 7220
          },
          "c5game": {
            "updated_at": "2026-08-16T02:35:45.934Z",
            "collected_at": "2026-08-16T02:36:52.69Z",
            "ask": 8156.36,
            "ask_volume": 12,
            "bid": 6230.34
          }
        }
      }
    }
  }
}
```

### 响应字段

[LatestPricesPostResponse](/zh-cn/docs/objects#latestpricespostresponse) 字段:

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `response_time` | `string (date-time)` | 是 | 响应生成时间 |
| `currency` | `string` | 是 | 货币代码（始终为 `USD`） |
| `items` | [`Record<string, Item>`](/zh-cn/docs/objects#item) | 是 | `market_hash_name` 到饰品价格数据的映射，过滤到请求的饰品。 |
| `errors` | [ItemError[]](/zh-cn/docs/objects#itemerror) | 否 | 与成功结果一起返回的逐饰品失败（部分成功）。 |

### 错误

`404 not_found` 表示请求中的有效饰品均不在最新快照中。`503 service_unavailable` 表示快照尚未就绪。

如果只有部分饰品失败，端点仍返回 `200`，其中包含成功的饰品，并为每个失败项返回一条 `errors[]`。饰品错误代码包括 `unknown_item`、`invalid_format` 和 `not_in_cache`。见[部分成功](/zh-cn/docs/using-the-api#部分成功)和[请求错误](/zh-cn/docs/using-the-api#请求错误)。
