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, and collected_at for each source.
  • Phase and tier prices under variants, identified by full name, display_name, and stable version.
  • Native quote OHLC history since December 24, 2025 at 5m, 30m, 1h, and 1d intervals; 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_volume is 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.