# How to Get Gamma Doppler Prices by Phase

> cs2.sh returns Gamma Doppler Phase 1-4 and Emerald as separate variants with per-source asks and bids, rather than collapsing them into the parent item.

Gamma Doppler uses the stable codes `p1`, `p2`, `p3`, `p4`, and `emerald`. Emerald is a distinct gem market and should stay separate from the numbered phases in every comparison.

## Per-phase current coverage

Fetch the base Gamma Doppler item and read `variants`. Each variant contains `display_name`, stable `version`, and source objects where that marketplace has data.

BUFF and Youpin can include ask, bid, listing count, and buy-order count. CSFloat and C5Game have no `bid_volume`. Skinport has no bid and adds rolling sale windows. Steam does not provide separate Community Market phase rows.

Current variant prices on CSFloat and Youpin generally refresh every ~10-15 minutes. All prices are normalized to USD.

## Compare Gamma Doppler prices

Use `GET /v1/prices/latest`, locate the base `market_hash_name` in the full `items` snapshot, and select each phase by `version`. Compare the same field across sources. For a current buyer, that field is usually `ask`; for an immediate seller, use `bid` only on sources that return it.

For historical comparisons, `POST /v1/prices/history` returns per-phase ask and supported bid OHLC. General history begins December 24, 2025, while CSFloat bid history begins July 18, 2026. Each interval preserves source-specific observations and does not blend marketplaces.

The schema can supply phase paint indexes and images, while [Gamma Doppler history](/resources/how-to-get-gamma-doppler-price-history) explains the OHLC structure.

## Applicable endpoints

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `GET /v1/prices/latest` | Current phase prices per source | All plans |
| `POST /v1/prices/history` | Phase quote OHLC | Scale, Enterprise |
| `GET /v1/schema` | Phase identities, paint indexes, and images | All plans |

## Comparison limits

- Source objects are sparse. A missing marketplace is unavailable for that phase, not a zero price.
- Do not copy the parent quote into a variant or infer Emerald from price.
- `ask` is a listing floor and can move because one seller changes a thin book.
- Marketplace quotes do not include a general fee-adjusted cash conversion field.
- Use `version` for joins and `display_name` for presentation.

The [variant object reference](/docs/api-reference/objects#variant) lists the current source shape.
