# GET /v1/market/buff/latest

BUFF float ranges and fade ranges for every item.

Returns current BUFF prices for every item, split into float ranges, fade ranges, and combined float/fade ranges. Data updates every 10 minutes.

Use `bucket_id` to match the same range between this snapshot and [BUFF range history](/docs/market-buff-history).

## Access

Available on all plans.

## Range types

Each item is split into `base`, `float`, `fade`, and `float_fade` buckets.

| `bucket_type` | Meaning |
| --- | --- |
| `base` | Aggregated across the entire item or variant. |
| `float` | Float range. `float.min` and `float.max` describe the range. |
| `fade` | Fade percentage range. `fade.min` and `fade.max` describe the range. |
| `float_fade` | Combined float range and fade range. |

Items with Doppler phases or Case Hardened tiers can include `variants`; see [Using the API](/docs/using-the-api#variants). Each variant has its own ranges in `buckets[]`.

## Range boundaries

Range boundaries are inclusive on `min`, exclusive on `max`. `bucket_id` is stable across latest and history.

Float ranges vary by item, exterior, and float cap. Fade ranges use fade percentage, not float. Always use the `float` and `fade` values returned on the bucket instead of assuming fixed ranges.

## Prices and volumes

| Field | Meaning |
| --- | --- |
| `ask` | Lowest listing price in the range, USD. |
| `avg_ask` | Average listing price in the range, USD. |
| `bid` | Highest buy order in the range, USD. |
| `ask_volume` | Listings currently in the range. |
| `bid_volume` | Active buy orders for the range. |

## Request

`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)
```

## Response

```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
            }
          ]
        }
      }
    }
  }
}
```

## Response fields

[BUFFMarketFloatLatestResponse](/docs/objects#buffmarketfloatlatestresponse) fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `response_time` | `string (date-time)` | Yes | When the response was generated. |
| `currency` | `string` | Yes | Currency code (always `USD`). |
| `items` | [`Record<string, BUFFMarketFloatItem>`](/docs/objects#buffmarketfloatitem) | Yes | Map of `market_hash_name` to per-item BUFF data. |

## Range data

| Field | Description |
| --- | --- |
| `items.<name>.buckets[]` | The item's price ranges: `base`, `float`, `fade`, and `float_fade` buckets. |
| `buckets[].bucket_id`, `bucket_type` | Range identity, stable across latest and history. |
| `buckets[].float` | Float range bounds. Present on `float` and `float_fade` ranges. |
| `buckets[].fade` | Fade range bounds. Present on `fade` and `float_fade` ranges. |
| `buckets[].ask`, `avg_ask`, `bid`, `ask_volume`, `bid_volume` | Prices and volumes in the range, with `updated_at` and `collected_at`. |
| `items.<name>.variants` | Per-variant ranges in the same shape. |

Full schemas: [BUFFMarketFloatItem](/docs/objects#buffmarketfloatitem), [BUFFMarketFloatLatestBucket](/docs/objects#buffmarketfloatlatestbucket), [BUFFMarketFloatRange](/docs/objects#buffmarketfloatrange), [BUFFMarketFloatVariant](/docs/objects#buffmarketfloatvariant).

### BUFFMarketFloatItem

BUFF market float/fade data for one item.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `market_hash_name` | `string` | Yes | Canonical base `market_hash_name`. |
| `buckets` | [BUFFMarketFloatLatestBucket[]](/docs/objects#buffmarketfloatlatestbucket) | No | Latest BUFF buckets for the base listing. |
| `variants` | [`Record<string, BUFFMarketFloatVariant>`](/docs/objects#buffmarketfloatvariant) | No | Per-variant BUFF data for items with Doppler / Gamma Doppler phases or Case Hardened tiers. Keyed by display name (e.g. `Phase 1`, `Ruby`, `Tier 1`). |

### BUFFMarketFloatLatestBucket

One latest BUFF float or fade range bucket, identified by `bucket_type`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `bucket_id` | `string` | Yes | Stable bucket identifier (e.g. `base`, `float:0.15:0.18`, `variant:p2\|float:0.00:0.01`). |
| `bucket_type` | `string` | Yes | Allowed: `base`, `float`, `fade`, `float_fade`. Bucket stratification. - `base`: aggregated across the entire item or variant. - `float`: float-range slice (see `float`). - `fade`: fade-percentage slice (see `fade`). - `float_fade`: combined float and fade slice. |
| `float` | [BUFFMarketFloatRange](/docs/objects#buffmarketfloatrange) | No | Numeric range for a `float` or `fade` bucket. `min` is inclusive, `max` is exclusive. |
| `fade` | [BUFFMarketFloatRange](/docs/objects#buffmarketfloatrange) | No | Numeric range for a `float` or `fade` bucket. `min` is inclusive, `max` is exclusive. |
| `updated_at` | `string (date-time)` | No | When BUFF last refreshed this bucket. |
| `collected_at` | `string (date-time)` | No | When cs2.sh fetched this bucket. |
| `ask` | `number` | No | Lowest ask price (USD) in this bucket. |
| `avg_ask` | `number` | No | Average ask price (USD) in the bucket. |
| `bid` | `number` | No | Highest buy-order price (USD) on BUFF. |
| `ask_volume` | `integer` | No | Number of items listed for sale in this bucket. |
| `bid_volume` | `integer` | No | Number of active buy orders against this bucket. |

### BUFFMarketFloatRange

Numeric range for a `float` or `fade` bucket. `min` is inclusive, `max` is exclusive.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `min` | `number` | No | Inclusive lower bound. |
| `max` | `number` | No | Exclusive upper bound. |

### BUFFMarketFloatVariant

BUFF latest data for a single variant of an item (Doppler / Gamma Doppler phase or Case Hardened tier).

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `market_hash_name` | `string` | Yes | Base item's `market_hash_name`. Full variant name lives in `name`. |
| `name` | `string` | Yes | The variant's full `market_hash_name`, e.g. `★ M9 Bayonet \| Doppler (Factory New) \| Phase 1`. |
| `display_name` | `string` | Yes | Human-readable variant label (e.g. `Phase 1`, `Ruby`, `Tier 1`). |
| `version` | `string` | Yes | Stable variant code. Switch on this in client code. |
| `buckets` | [BUFFMarketFloatLatestBucket[]](/docs/objects#buffmarketfloatlatestbucket) | Yes | Latest BUFF buckets for this variant. |

## Errors

`503 service_unavailable` means the BUFF range snapshot is not ready. See [Request errors](/docs/using-the-api#request-errors) for shared errors.
