# GET /v1/market/buff/latest

覆盖全部饰品的 BUFF 磨损区间与渐变区间。

返回每件饰品当前的 BUFF 价格，并按磨损区间、渐变区间以及两者组合的区间拆分。数据每 10 分钟更新一次。

使用 `bucket_id` 在此快照和 [BUFF 区间历史](/zh-cn/docs/market-buff-history)之间匹配同一个区间。

## 访问

适用于所有套餐。

## 区间类型

每件饰品被划分为 `base`、`float`、`fade` 和 `float_fade` 分桶。

| `bucket_type` | 含义 |
| --- | --- |
| `base` | 对整件饰品或变体的聚合。 |
| `float` | 磨损区间。`float.min` 与 `float.max` 描述该区间。 |
| `fade` | 渐变百分比区间。`fade.min` 与 `fade.max` 描述该区间。 |
| `float_fade` | 磨损区间与渐变区间的组合。 |

具备 Doppler 相位或 Case Hardened 分层的饰品可包含 `variants`，详见[使用 API](/zh-cn/docs/using-the-api#变体)。每个变体在 `buckets[]` 中拥有自己的区间。

## 区间边界

边界 `min` 为闭区间，`max` 为开区间。`bucket_id` 在 latest 与 history 之间保持稳定。

磨损区间会随饰品、外观和磨损上限而变化。渐变区间使用渐变百分比，而不是磨损值。请始终使用响应中返回的 `float` 和 `fade` 边界，不要假设固定区间。

## 价格与成交量

| 字段 | 含义 |
| --- | --- |
| `ask` | 区间内的最低挂单价，美元。 |
| `avg_ask` | 区间内的平均挂单价，美元。 |
| `bid` | 区间内的最高求购订单，美元。 |
| `ask_volume` | 当前处于该区间的挂单数。 |
| `bid_volume` | 该区间的活跃求购订单数。 |

## 请求

`GET https://api.cs2.sh/v1/market/buff/latest`

**curl**

```bash
curl https://api.cs2.sh/v1/market/buff/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/market/buff/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/market/buff/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/market/buff/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/market/buff/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:14.833093145Z",
  "currency": "USD",
  "items": {
    "AK-47 | Case Hardened (Field-Tested)": {
      "market_hash_name": "AK-47 | Case Hardened (Field-Tested)",
      "buckets": [
        {
          "bucket_id": "base",
          "bucket_type": "base",
          "updated_at": "2026-07-26T18:46:12Z",
          "collected_at": "2026-07-26T18:50:54.164Z",
          "ask": 213.23,
          "avg_ask": 216.98,
          "bid": 203.78,
          "ask_volume": 982,
          "bid_volume": 31
        },
        {
          "bucket_id": "float:0.15:0.18",
          "bucket_type": "float",
          "float": {
            "min": 0.15,
            "max": 0.18
          },
          "updated_at": "2026-07-26T18:46:12Z",
          "collected_at": "2026-07-26T18:50:54.164Z",
          "ask": 218.55,
          "avg_ask": 231.47,
          "bid": 203.78,
          "ask_volume": 219,
          "bid_volume": 10
        }
      ],
      "variants": {
        "Tier 1": {
          "market_hash_name": "AK-47 | Case Hardened (Field-Tested)",
          "name": "AK-47 | Case Hardened (Field-Tested) | Tier 1",
          "display_name": "Tier 1",
          "version": "t1",
          "buckets": [
            {
              "bucket_id": "variant:t1",
              "bucket_type": "base",
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 1328.96,
              "avg_ask": 2218.76,
              "bid": 1077.98,
              "ask_volume": 78,
              "bid_volume": 13
            },
            {
              "bucket_id": "variant:t1|float:0.15:0.18",
              "bucket_type": "float",
              "float": {
                "min": 0.15,
                "max": 0.18
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 2584.21,
              "avg_ask": 12532.95,
              "bid": 1077.98,
              "ask_volume": 12,
              "bid_volume": 15
            },
            {
              "bucket_id": "variant:t1|float:0.18:0.21",
              "bucket_type": "float",
              "float": {
                "min": 0.18,
                "max": 0.21
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 1609.44,
              "avg_ask": 14470.85,
              "bid": 1079.46,
              "ask_volume": 11,
              "bid_volume": 23
            },
            {
              "bucket_id": "variant:t1|float:0.21:0.24",
              "bucket_type": "float",
              "float": {
                "min": 0.21,
                "max": 0.24
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 2215.04,
              "avg_ask": 33480.73,
              "bid": 1079.46,
              "ask_volume": 9,
              "bid_volume": 23
            },
            {
              "bucket_id": "variant:t1|float:0.24:0.27",
              "bucket_type": "float",
              "float": {
                "min": 0.24,
                "max": 0.27
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 2953.23,
              "avg_ask": 19841.46,
              "bid": 1079.46,
              "ask_volume": 7,
              "bid_volume": 23
            },
            {
              "bucket_id": "variant:t1|float:0.27:0.38",
              "bucket_type": "float",
              "float": {
                "min": 0.27,
                "max": 0.38
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 1328.96,
              "avg_ask": 3056.22,
              "bid": 1079.46,
              "ask_volume": 39,
              "bid_volume": 16
            }
          ]
        },
        "Tier 2": {
          "market_hash_name": "AK-47 | Case Hardened (Field-Tested)",
          "name": "AK-47 | Case Hardened (Field-Tested) | Tier 2",
          "display_name": "Tier 2",
          "version": "t2",
          "buckets": [
            {
              "bucket_id": "variant:t2",
              "bucket_type": "base",
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 389.77,
              "avg_ask": 398.86,
              "bid": 366.22,
              "ask_volume": 235,
              "bid_volume": 14
            },
            {
              "bucket_id": "variant:t2|float:0.15:0.18",
              "bucket_type": "float",
              "float": {
                "min": 0.15,
                "max": 0.18
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 443.01,
              "avg_ask": 521.14,
              "bid": 366.22,
              "ask_volume": 49,
              "bid_volume": 16
            },
            {
              "bucket_id": "variant:t2|float:0.18:0.21",
              "bucket_type": "float",
              "float": {
                "min": 0.18,
                "max": 0.21
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 407.57,
              "avg_ask": 515.91,
              "bid": 366.22,
              "ask_volume": 38,
              "bid_volume": 17
            },
            {
              "bucket_id": "variant:t2|float:0.21:0.24",
              "bucket_type": "float",
              "float": {
                "min": 0.21,
                "max": 0.24
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 394.28,
              "avg_ask": 672.67,
              "bid": 366.22,
              "ask_volume": 18,
              "bid_volume": 16
            },
            {
              "bucket_id": "variant:t2|float:0.24:0.27",
              "bucket_type": "float",
              "float": {
                "min": 0.24,
                "max": 0.27
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 389.77,
              "avg_ask": 449.59,
              "bid": 366.22,
              "ask_volume": 32,
              "bid_volume": 15
            },
            {
              "bucket_id": "variant:t2|float:0.27:0.38",
              "bucket_type": "float",
              "float": {
                "min": 0.27,
                "max": 0.38
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 389.85,
              "avg_ask": 408.05,
              "bid": 366.22,
              "ask_volume": 98,
              "bid_volume": 15
            }
          ]
        },
        "Tier 3": {
          "market_hash_name": "AK-47 | Case Hardened (Field-Tested)",
          "name": "AK-47 | Case Hardened (Field-Tested) | Tier 3",
          "display_name": "Tier 3",
          "version": "t3",
          "buckets": [
            {
              "bucket_id": "variant:t3",
              "bucket_type": "base",
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 216.26,
              "avg_ask": 235.87,
              "bid": 203.78,
              "ask_volume": 295,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t3|float:0.15:0.18",
              "bucket_type": "float",
              "float": {
                "min": 0.15,
                "max": 0.18
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 221.36,
              "avg_ask": 252.9,
              "bid": 203.78,
              "ask_volume": 65,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t3|float:0.18:0.21",
              "bucket_type": "float",
              "float": {
                "min": 0.18,
                "max": 0.21
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 236.12,
              "avg_ask": 300.55,
              "bid": 203.78,
              "ask_volume": 41,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t3|float:0.21:0.24",
              "bucket_type": "float",
              "float": {
                "min": 0.21,
                "max": 0.24
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 233.02,
              "avg_ask": 276.7,
              "bid": 203.78,
              "ask_volume": 41,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t3|float:0.24:0.27",
              "bucket_type": "float",
              "float": {
                "min": 0.24,
                "max": 0.27
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 248.08,
              "avg_ask": 288.19,
              "bid": 203.78,
              "ask_volume": 38,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t3|float:0.27:0.38",
              "bucket_type": "float",
              "float": {
                "min": 0.27,
                "max": 0.38
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 216.26,
              "avg_ask": 246.05,
              "bid": 203.78,
              "ask_volume": 110,
              "bid_volume": 10
            }
          ]
        },
        "Tier 4": {
          "market_hash_name": "AK-47 | Case Hardened (Field-Tested)",
          "name": "AK-47 | Case Hardened (Field-Tested) | Tier 4",
          "display_name": "Tier 4",
          "version": "t4",
          "buckets": [
            {
              "bucket_id": "variant:t4",
              "bucket_type": "base",
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 213.23,
              "avg_ask": 217.52,
              "bid": 203.78,
              "ask_volume": 362,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t4|float:0.15:0.18",
              "bucket_type": "float",
              "float": {
                "min": 0.15,
                "max": 0.18
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 218.55,
              "avg_ask": 233.7,
              "bid": 203.78,
              "ask_volume": 91,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t4|float:0.18:0.21",
              "bucket_type": "float",
              "float": {
                "min": 0.18,
                "max": 0.21
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 221.5,
              "avg_ask": 234.11,
              "bid": 203.78,
              "ask_volume": 59,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t4|float:0.21:0.24",
              "bucket_type": "float",
              "float": {
                "min": 0.21,
                "max": 0.24
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 213.23,
              "avg_ask": 240.46,
              "bid": 203.78,
              "ask_volume": 41,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t4|float:0.24:0.27",
              "bucket_type": "float",
              "float": {
                "min": 0.24,
                "max": 0.27
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 216.52,
              "avg_ask": 267.28,
              "bid": 203.78,
              "ask_volume": 33,
              "bid_volume": 10
            },
            {
              "bucket_id": "variant:t4|float:0.27:0.38",
              "bucket_type": "float",
              "float": {
                "min": 0.27,
                "max": 0.38
              },
              "updated_at": "2026-07-26T18:46:12Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 213.38,
              "avg_ask": 220.17,
              "bid": 203.78,
              "ask_volume": 138,
              "bid_volume": 10
            }
          ]
        }
      }
    },
    "★ M9 Bayonet | Doppler (Factory New)": {
      "market_hash_name": "★ M9 Bayonet | Doppler (Factory New)",
      "variants": {
        "Phase 2": {
          "market_hash_name": "★ M9 Bayonet | Doppler (Factory New)",
          "name": "★ M9 Bayonet | Doppler (Factory New) | Phase 2",
          "display_name": "Phase 2",
          "version": "p2",
          "buckets": [
            {
              "bucket_id": "variant:p2",
              "bucket_type": "base",
              "updated_at": "2026-07-26T18:46:27Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 1321.49,
              "avg_ask": 1327.42,
              "bid": 1281.77,
              "ask_volume": 261,
              "bid_volume": 22
            },
            {
              "bucket_id": "variant:p2|float:0.00:0.01",
              "bucket_type": "float",
              "float": {
                "min": 0,
                "max": 0.01
              },
              "updated_at": "2026-07-26T18:46:27Z",
              "collected_at": "2026-07-26T18:50:54.164Z",
              "ask": 1336.26,
              "avg_ask": 1365.19,
              "bid": 1284.72,
              "ask_volume": 60,
              "bid_volume": 25
            }
          ]
        }
      }
    }
  }
}
```

## 响应字段

[BUFFMarketFloatLatestResponse](/zh-cn/docs/objects#buffmarketfloatlatestresponse) 字段:

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

## 区间数据

| 字段 | 描述 |
| --- | --- |
| `items.<name>.buckets[]` | 该饰品的价格区间：`base`、`float`、`fade` 和 `float_fade` 分桶。 |
| `buckets[].bucket_id`、`bucket_type` | 区间标识，在 latest 与 history 之间保持稳定。 |
| `buckets[].float` | 磨损区间边界。出现在 `float` 和 `float_fade` 区间上。 |
| `buckets[].fade` | 渐变区间边界。出现在 `fade` 和 `float_fade` 区间上。 |
| `buckets[].ask`、`avg_ask`、`bid`、`ask_volume`、`bid_volume` | 该区间内的价格和成交量，附带 `updated_at` 和 `collected_at`。 |
| `items.<name>.variants` | 逐变体的相同结构区间。 |

完整结构：[BUFFMarketFloatItem](/zh-cn/docs/objects#buffmarketfloatitem)、[BUFFMarketFloatLatestBucket](/zh-cn/docs/objects#buffmarketfloatlatestbucket)、[BUFFMarketFloatRange](/zh-cn/docs/objects#buffmarketfloatrange)、[BUFFMarketFloatVariant](/zh-cn/docs/objects#buffmarketfloatvariant)。

### BUFFMarketFloatItem

单件饰品的 BUFF 市场磨损/渐变数据。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `market_hash_name` | `string` | 是 | 规范化的基础 `market_hash_name`。 |
| `buckets` | [BUFFMarketFloatLatestBucket[]](/zh-cn/docs/objects#buffmarketfloatlatestbucket) | 否 | 基础饰品挂单的最新 BUFF 区间。 |
| `variants` | [`Record<string, BUFFMarketFloatVariant>`](/zh-cn/docs/objects#buffmarketfloatvariant) | 否 | 带有 Doppler / Gamma Doppler 相位或 Case Hardened 分层的饰品的逐变体 BUFF 数据。按显示名称作为键（例如 `Phase 1`、`Ruby`、`Tier 1`）。 |

### BUFFMarketFloatLatestBucket

一个由 `bucket_type` 标识的最新 BUFF 磨损或渐变范围区间。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `bucket_id` | `string` | 是 | 稳定的区间标识（例如 `base`、`float:0.15:0.18`、`variant:p2\|float:0.00:0.01`）。 |
| `bucket_type` | `string` | 是 | 允许值: `base`, `float`, `fade`, `float_fade`. 区间分层。 - `base`：对整件饰品或变体的聚合。 - `float`：按磨损区间切分（见 `float`）。 - `fade`：按渐变百分比切分（见 `fade`）。 - `float_fade`：磨损与渐变组合切分。 |
| `float` | [BUFFMarketFloatRange](/zh-cn/docs/objects#buffmarketfloatrange) | 否 | `float` 或 `fade` 区间的数值范围。`min` 含，`max` 不含。 |
| `fade` | [BUFFMarketFloatRange](/zh-cn/docs/objects#buffmarketfloatrange) | 否 | `float` 或 `fade` 区间的数值范围。`min` 含，`max` 不含。 |
| `updated_at` | `string (date-time)` | 否 | BUFF 上次刷新该区间的时间。 |
| `collected_at` | `string (date-time)` | 否 | cs2.sh 拉取该区间的时间。 |
| `ask` | `number` | 否 | 该区间内最低挂单价（USD）。 |
| `avg_ask` | `number` | 否 | 该区间内平均挂单价（USD）。 |
| `bid` | `number` | 否 | BUFF 上的最高求购单价格（USD）。 |
| `ask_volume` | `integer` | 否 | 该区间内在售饰品数量。 |
| `bid_volume` | `integer` | 否 | 针对该区间的活跃求购单数量。 |

### BUFFMarketFloatRange

`float` 或 `fade` 区间的数值范围。`min` 含，`max` 不含。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `min` | `number` | 否 | 下界（含）。 |
| `max` | `number` | 否 | 上界（不含）。 |

### BUFFMarketFloatVariant

单个饰品变体（Doppler / Gamma Doppler 相位或 Case Hardened 分层）的 BUFF 最新数据。

| 字段 | 类型 | 必需 | 描述 |
| --- | --- | --- | --- |
| `market_hash_name` | `string` | 是 | 基础饰品的 `market_hash_name`。完整变体名称见 `name`。 |
| `name` | `string` | 是 | 该变体的完整 `market_hash_name`，例如 `★ M9 Bayonet \| Doppler (Factory New) \| Phase 1`。 |
| `display_name` | `string` | 是 | 人类可读的变体标签（例如 `Phase 1`、`Ruby`、`Tier 1`）。 |
| `version` | `string` | 是 | 稳定的变体代码。客户端代码应基于该字段分支。 |
| `buckets` | [BUFFMarketFloatLatestBucket[]](/zh-cn/docs/objects#buffmarketfloatlatestbucket) | 是 | 该变体的最新 BUFF 区间。 |

## 错误

`503 service_unavailable` 表示 BUFF 区间快照尚未就绪。共有错误见[请求错误](/zh-cn/docs/using-the-api#请求错误)。
