How to Get Doppler Float-Range Price History

Updated

API reference: GET /v1/market/buff/latest · POST /v1/market/buff/history

cs2.sh exposes BUFF Doppler and Gamma Doppler float-range prices by phase, with current buckets and 30m, 1h, or 1d OHLC history from May 19, 2026.

A phase-wide listing floor can misprice a low-float knife because it includes every float in that phase. BUFF's bucket model isolates the range that contains the exact float before comparing it with the phase base.

The phase and float bucket model#

GET /v1/market/buff/latest nests each phase under variants. Every phase contains buckets[] split into base, float, fade, and float_fade where those range types apply.

A float bucket includes float.min and float.max. Bounds are lower-inclusive and upper-exclusive, so a value belongs where min <= float < max. bucket_id is stable across latest and history. A phase float ID combines the variant version with the range, while the phase base bucket covers the whole phase.

Each latest bucket can contain ask, avg_ask, bid, ask_volume, and bid_volume. BUFF prices update every 10 minutes.

Resolve and query the correct bucket#

Start with the base Doppler market_hash_name on GET /v1/market/buff/latest. Select the phase by stable version, then find the one float bucket whose bounds contain the exact float. Also retain that phase's base bucket for a phase-wide comparison.

Send the base item to POST /v1/market/buff/history and match both series by their stable bucket_id. Each history point contains ask, average-ask, and bid OHLC plus last-observed volumes. Compare close_ask values only at timestamps where both buckets have observations.

The history endpoint supports 30m for up to 90 days, 1h for 365 days, and 1d without a range cap. It requires Scale or Enterprise access.

Applicable endpoints#

Endpoint Returns Plans
GET /v1/market/buff/latest Current phase base and float buckets All plans
POST /v1/market/buff/history Per-bucket OHLC since May 19, 2026 Scale, Enterprise

Details that change the comparison#

  • Bucket boundaries vary by item, exterior, and float cap. Discover them from the snapshot instead of constructing IDs from common ranges.
  • Compare a phase float bucket with that same phase's base. Comparing with the parent Doppler base mixes phase and float premiums.
  • close_ask is a listing floor, not a completed sale. Thin ask_volume can let one listing move the bucket.
  • bucket is the UTC boundary; open_time and close_time are the real observation window.
  • No BUFF float-range history exists before May 19, 2026.

The BUFF range reference defines all bucket types and fields.