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_volumecounts 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 nobid_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.