# How to Get Case Hardened Tier and Blue Gem Price Data

> cs2.sh prices Case Hardened Tier 1 through Tier 4 and supported Blue Gem
> variants separately under `variants`. BUFF data also splits each tier into
> float ranges with its own ask, average ask, bid, and active volumes.

This is tier-level market data. A tier groups multiple paint seeds, so it can
support a market reference without appraising one exact pattern, play side,
sticker craft, or individual float.

## Case Hardened variant coverage

On `GET /v1/prices/latest`, supported Case Hardened markets use stable
`version` codes:

| Version | Variant |
| --- | --- |
| `t1` | Tier 1 |
| `t2` | Tier 2 |
| `t3` | Tier 3 |
| `t4` | Tier 4 |
| `singleblue` | A separately supported Blue Gem class |

Each variant has `display_name`, its full `name`, and sparse per-source pricing.
Read only source objects returned for that tier instead of assuming the base
item's marketplace coverage carries into every variant. Field capabilities
still differ by returned source: Skinport is ask-only, C5Game has no
`bid_volume`, and BUFF can include both sides.

`GET /v1/market/buff/latest` adds the BUFF bucket model. Every tier has a
tier-wide `base` bucket and can have narrower `float` buckets. Each carries
`ask`, `avg_ask`, `bid`, `ask_volume`, and `bid_volume`, refreshed every 10
minutes.

`GET /v1/schema` identifies Case Hardened children with
`family: case_hardened`, a variant `name`, `paint_index`, image, and full
variant `market_hash_name`. Variant rows link back to their base item.

## Query a tier before a float range

Fetch the current-price snapshot, select the base Case Hardened item by exact
`market_hash_name`, and choose the tier by stable `version`. Read each returned
source independently instead of using the generic parent price for the tier.

For a BUFF float-aware price, select the tier first, then find the `float`
bucket whose lower-inclusive, upper-exclusive bounds contain the item's float.
The bucket identifier combines both identities, such as
`variant:t1|float:0.15:0.18`.

Compare that tier-and-float ask with the tier's `base` bucket to isolate a
float premium. Compare it with the parent item's `base` bucket to measure the
combined tier and float premium. The
[BUFF range reference](/docs/api-reference/market-buff-latest) defines the
bucket fields.

## Applicable endpoints

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `GET /v1/prices/latest` | Current per-source Case Hardened variant prices | All plans |
| `GET /v1/market/buff/latest` | BUFF tier and tier-specific float buckets | All plans |
| `GET /v1/schema` | Tier identities, paint indexes, links, and images | All plans |

## Limits of tier pricing

- A tier ask is the cheapest listing across all seeds in that tier. It does
  not identify which seed produced the floor.
- `singleblue` should be used only when that separate variant is returned. Do
  not infer it from Tier 1 or a display label.
- `avg_ask` and `ask_volume` help show whether one floor listing represents a
  dispersed tier book, but they still describe active listings rather than
  completed sales.
- An exact-seed appraisal also depends on pattern placement, float, stickers,
  and comparable sales that these endpoints do not encode.
