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, or1dOHLC 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_askis a listing floor, not a completed sale. Thinask_volumecan let one listing move the bucket.bucketis the UTC boundary;open_timeandclose_timeare the real observation window.- No BUFF float-range history exists before May 19, 2026.
The BUFF range reference defines all bucket types and fields.