How to Compare CS2 Skin Prices Across Marketplaces

Updated

API reference: GET /v1/prices/latest · POST /v1/prices/history

cs2.sh returns current CS2 prices from BUFF, Youpin, CSFloat, Skinport, Steam, and C5Game in one USD-normalized snapshot, keyed by exact market_hash_name.

A marketplace comparison should keep the price type and source attached to every number. The lowest ask is the cheapest observed listing, while the highest bid is the best observed buy order. Neither field is a completed-sale price.

Current data for a six-market comparison#

Source Current fields
BUFF ask, bid, ask_volume, bid_volume
Youpin ask, bid, ask_volume, bid_volume
CSFloat ask, bid, ask_volume
Skinport ask, ask_volume, listing statistics, and 24h/7d/30d/90d sale windows
Steam ask, bid, ask_volume, bid_volume
C5Game ask, bid, ask_volume

Prices are normalized to USD. Live sources generally refresh every ~5-10 minutes, while CSFloat bids refresh every ~10-30 minutes according to item liquidity. Each source object carries updated_at and collected_at; use collected_at to enforce a consumer-side freshness limit.

Doppler, Gamma Doppler, and Case Hardened prices appear under variants. Each variant has a display_name, full name, and stable version code, so Phase 2 or Tier 1 can be compared across sources without falling back to the base item.

How to compare the prices#

Read the item from GET /v1/prices/latest, then build separate comparisons for asks and bids. Exclude null values and retain the source, collected_at, and available volume beside each quote. Keep Steam wallet prices labeled separately when the analysis is intended to compare cash marketplaces.

For movement over time, request the same exact item and selected sources from POST /v1/prices/history. It returns separate ask and bid OHLC candles, with bucket, actual open_time and close_time, and sample_count. See the price-history reference for interval limits.

Applicable endpoints#

Endpoint Returns Plans
GET /v1/prices/latest All tracked items across all six sources All plans
POST /v1/prices/history Per-source quote OHLC since December 24, 2025; CSFloat bids since July 18, 2026 Scale, Enterprise

Comparison limits that change the result#

  • ask_volume counts active listings. It does not measure completed sales or quantity available at the single lowest ask.
  • Skinport has no current bid; CSFloat and C5Game have no bid_volume. A lowest-ask ranking and an executable-exit ranking will therefore have different source coverage.
  • C5Game asks and bids come from independent collection passes. Treat a bid above its ask as a crossed, stale pair instead of a negative spread opportunity.
  • Marketplace fees, deposits, withdrawals, and trade restrictions are outside the response. Apply those costs after comparing the normalized gross quotes.

Keep current quotes and completed-sale archive values labeled as separate price types when combining them.