How to Get CS2 Doppler Phase Price Data

Updated

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

cs2.sh prices Doppler Phase 1-4, Ruby, Sapphire, and Black Pearl separately per source under a structured variants object, with current quotes on all plans and OHLC history on Scale and Enterprise.

A parent Doppler price cannot represent every phase. Phase 2, Ruby, and Black Pearl each have separate supply, demand, and sale evidence.

Doppler variant identities and fields#

Request the base Doppler market_hash_name. Current-price results nest variants keyed by display name and include:

Variant Stable version
Phase 1-4 p1, p2, p3, p4
Gems ruby, sapphire, blackpearl

Every variant can carry per-source ask, bid, and available volume fields. BUFF and Youpin include bid_volume; CSFloat and C5Game do not; Skinport is ask-only. Source coverage is sparse, so a variant may be present on some marketplaces and absent on others.

GET /v1/schema also lists variant family, phase name, paint index, and variant images. It links each full variant row back to its base item.

Use current and historical phase data#

Fetch GET /v1/prices/latest and select the base item in the all-items snapshot. Traverse variants and use version as the stable identifier. Compare only source objects that exist for that exact phase.

For historical movement, send the same base name to POST /v1/prices/history. Each phase has its own ask and, where supported, bid OHLC series. 5m supports 14 days, 30m 90 days, 1h 365 days, and 1d longer ranges. Ask history begins December 24, 2025; CSFloat bid history begins July 18, 2026.

CSFloat's daily completed-sale archive adds phase sale price and count from 2022 where rows exist. Doppler phase sales can validate whether sparse listing floors are clearing.

Applicable endpoints#

Endpoint Returns Plans
GET /v1/prices/latest Current phase quotes per source All plans
POST /v1/prices/history Phase-level quote OHLC Scale, Enterprise
GET /v1/schema Variant identities and metadata All plans

Boundaries to preserve#

  • Steam has a parent Community Market item but no separate phase market rows. Do not copy its parent price into variants.
  • A source missing from one phase is unavailable, not a zero price or a reason to use another phase.
  • Current asks are listing floors. They do not account for an exact float, seed, or sticker set.
  • Use version for joins. Display labels are presentation values and can be localized or reformatted.

See current variant prices and history variants for the response shapes.