How to Get CSFloat Doppler Prices by Phase

Updated

API reference: GET /v1/prices/latest

GET /v1/prices/latest returns current CSFloat Doppler asks and highest bids separately for Phase 1-4, Ruby, Sapphire, and Black Pearl under the base item's variants object.

Doppler phases have materially different markets. The parent Doppler quote is not a safe fallback for a missing phase because it discards the phase premium.

Current CSFloat phase coverage#

Each variant contains a human label in display_name and a stable version code. Doppler uses p1 through p4 plus ruby, sapphire, and blackpearl. The CSFloat object can carry:

Field Meaning
ask Cheapest active listing for that phase
bid Highest active buy order for that phase
ask_volume Active listing count
updated_at, collected_at Listing update and collection times

CSFloat does not expose bid_volume. Phase bids are available for most covered items and refresh every ~10-30 minutes based on liquidity. Variant listing prices generally refresh every ~10-15 minutes.

Read phase prices from the snapshot#

Fetch GET /v1/prices/latest, select the base market_hash_name in the items map, and open variants. Select the desired variant by version, then read its csfloat object. The response is a full-market snapshot and is available on all plans.

Use the stable version value for joins and sorting. The display name remains useful for UI labels. If CSFloat does not appear on a phase, preserve that missing source rather than taking item.csfloat from the parent.

For trends, CSFloat Doppler listing history exposes per-phase OHLC. For actual sales, CSFloat Doppler sales history uses the daily completed-sale archive.

Applicable endpoints#

Endpoint Returns Plans
GET /v1/prices/latest Current per-phase CSFloat ask, bid, and listing count All plans
POST /v1/prices/history Per-phase quote OHLC Scale, Enterprise
POST /v1/archive/csfloat Per-phase completed-sale data where available Scale, Enterprise

Limits to preserve#

  • A phase ask is a listing floor. It does not price a specific float, seed, or sticker configuration.
  • A bid can be missing even when an ask is present. Without bid_volume, the quote cannot describe buy-order depth.
  • A crossed phase pair, where bid exceeds ask, can result from separate collection passes. Refresh it before calculating a spread.
  • Variant source objects are sparse. Missing coverage must remain missing instead of inheriting the parent quote.

See the variant response fields for the complete object shape.