How to Get Float Ranges for Every CS2 Item

Updated

API reference: GET /v1/schema · GET /v1/market/buff/latest

GET /v1/schema returns float_range.min and float_range.max for every wear-carrying CS2 item row. These are item-specific physical bounds, not generic exterior limits or marketplace price buckets.

Two Field-Tested skins can have different possible float ranges because the finish itself can cap the wear. Reconstructing bounds from the exterior suffix can therefore accept values the item cannot have.

Float fields in the item catalog#

Each wear-carrying schema record can include:

Field Meaning
float_range.min, float_range.max Physical float bounds for the item
wears Exterior names in which the finish exists
wear The exterior of this exact market row
market_hash_name Exact identifier shared with price endpoints
variants Supported Doppler, Gamma Doppler, or Case Hardened children

Fields that do not apply are omitted. Stickers, most containers, and other non-wear items have no float_range.

Variant rows can share physical bounds with their base item while carrying a different market_hash_name, image, paint index, and market price.

Read physical bounds or market ranges#

For physical bounds, fetch the schema and select the item by exact market_hash_name. Use the returned float_range directly. Do not derive it from wear, base_name, or a generic exterior table.

For float-aware pricing, use GET /v1/market/buff/latest. BUFF can divide the physical range into several float buckets, each with separate ask, average ask, bid, and active volumes. These commercial ranges vary by item, exterior, float cap, and variant.

Match an exact float to a BUFF bucket with an inclusive min and exclusive max. The BUFF float-range history guide explains why the exterior-wide floor can misprice a low-float input.

Applicable endpoints#

Endpoint Returns Plans
GET /v1/schema Physical float bounds and available wears All plans
GET /v1/market/buff/latest Current BUFF float-range price buckets All plans

Keep the two range types separate#

  • float_range says which floats are physically possible. It does not say which subranges receive a market premium.
  • BUFF bucket bounds are lower-inclusive and upper-exclusive. The schema's physical maximum should not be used as a substitute for returned BUFF bucket logic.
  • An absent float_range usually means the field does not apply to that item record. It should not be replaced with a default 0 to 1 range.
  • Use the schema generation ID or ETag when caching these bounds so newly published items and changed catalog records are picked up together.