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 bucket is a UTC boundary, while open_time and close_time show actual listing observations.
  • A daily sale price averages 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.