How to Compare CSFloat Listings With Completed Sales
Updated
API reference: POST /v1/prices/history · POST /v1/archive/csfloat
cs2.sh provides both CSFloat listing-price OHLC and daily completed-sale history, so the closing listing floor can be compared with the realized daily average without conflating their fields.
A listing ask is an active seller's requested price. A completed-sale price records items that actually cleared. The two can differ because sales occur throughout the day and because sold items can carry float, seed, or sticker premiums.
The two CSFloat series
| Series | Fields | Coverage |
|---|---|---|
| Listing and bid OHLC | open_ask through close_ask, bid OHLC, ask_volume, sample_count |
Since December 24, 2025; bids since July 18, 2026 |
| Completed sales | Daily average price and sale volume |
Since 2022 |
Listing OHLC updates continuously. The completed-sale archive updates once or twice per day. Both use USD, but the listing ask_volume counts active listings while archive volume counts sales.
Align listings with sales
Request csfloat at 1d on POST /v1/prices/history and request the same exact market_hash_name and UTC date range on POST /v1/archive/csfloat. Match the history bucket date with the archive date.
Use close_ask as the final observed listing floor for the day and keep ask_volume beside it. Compare that with archive price and volume. Label both values explicitly; a sale average above the floor does not imply an error because the sale set can contain premium items.
For per-phase comparisons, join the matching version inside each endpoint's variants object. Do not align a variant sale row with the parent listing series.
Applicable endpoints
| Endpoint | Returns | Plans |
|---|---|---|
POST /v1/prices/history |
Daily CSFloat listing and bid OHLC | Scale, Enterprise |
POST /v1/archive/csfloat |
Daily completed-sale average and count | Scale, Enterprise |
GET /v1/prices/latest |
Current CSFloat listing and bid | All plans |
Comparison limits
- The history
bucketis a UTC boundary, whileopen_timeandclose_timeshow actual listing observations. - A daily sale
priceaverages all represented transactions. It cannot be reduced to an ordinary-float price from this aggregate. - Missing days in either series should remain unpaired, not become zero or a carried-forward value.
- Bid history starts later than ask history. A comparison before July 18, 2026 can still use asks and sales without bids.
Read CSFloat sales history for archive semantics and listing history for OHLC semantics.