How to Build a CS2 Skin Price Tracker
Updated
API reference: GET /v1/prices/latest · POST /v1/prices/history
cs2.sh provides current all-market snapshots plus continuously recorded OHLC history, so a CS2 skin price tracker can start with existing data and continue from fresh source observations.
A tracker should preserve the source and price type. The lowest ask across cash marketplaces, a Steam ask, and the highest current bid answer different valuation questions.
Data a tracker can retain
- Current price objects for BUFF, Youpin, CSFloat, Skinport, Steam, and C5Game, normalized to USD.
ask,bid, active-order volumes where supported,updated_at, andcollected_atfor each source.- Phase and tier prices under
variants, identified by fullname,display_name, and stableversion. - Native quote OHLC history since December 24, 2025 at
5m,30m,1h, and1dintervals; CSFloat bid history begins July 18, 2026.
Tracker data flow
Fetch GET /v1/prices/latest on a server and read the exact item or nested variant from its items map. Store the response response_time with the untouched source objects so future selection rules can be changed without losing the original evidence.
Use collected_at for source-age checks and updated_at for the marketplace's own update time. If a source or field is null, keep it missing rather than copying a prior quote into the new snapshot.
Before building a local history from zero, query POST /v1/prices/history for the available range. Use local observations only for additional application-specific state or for periods after the last returned bucket.
Applicable endpoints
| Endpoint | Returns | Plans |
|---|---|---|
GET /v1/prices/latest |
Current all-item prices across six sources | All plans |
POST /v1/prices/history |
OHLC history since December 24, 2025 | Scale, Enterprise |
Tracker caveats
- Current sources update on different cadences, generally ~5-10 minutes. One snapshot can contain source rows with different collection times.
ask_volumeis active listing count, not sale volume. A tracker measuring turnover needs an archive series.- Variant prices must remain separate from their base item. A Phase 2 observation should never become a generic Doppler observation.
- A local polling schedule faster than the source cadence creates duplicate observations, not greater market resolution.
Use the OHLC chart guide when the tracker needs historical visualization.