# How to Get C5Game Gamma Doppler Prices

> `GET /v1/prices/latest` returns separate C5Game quotes for Gamma Doppler
> Phase 1 through Phase 4 and Emerald. Each returned variant can include an ask,
> bid, active listing count, and source timestamps.

C5Game's ask and bid collection passes are independent. Phase 3 can have a
current ask while its bid is absent, and an out-of-step pair can cross. Price
each side according to the data actually returned.

## C5Game Gamma Doppler coverage

The base item has a `variants` object. Each entry includes:

- `display_name`, such as `Phase 2` or `Emerald`.
- A stable `version`: `p1`, `p2`, `p3`, `p4`, or `emerald`.
- The full variant `name`.
- Sparse per-source objects, including `c5game` when that phase is covered.

The C5Game object contains `ask`, `bid`, `ask_volume`, `updated_at`, and
`collected_at`. There is no C5Game `bid_volume`.

Current price collection refreshes every ~5-10 minutes, depending on the
source. Prices are normalized to USD.

## Use a valid phase quote

Fetch the full current-price snapshot and locate the base Gamma Doppler using
its exact `market_hash_name`. Select the phase by `version` and read its
`c5game` object.

Use a positive ask as the current listing floor. Use a bid with that ask only
when the bid is positive and no higher than the ask. If a source object or bid
is absent, report that phase as uncovered on that side.

Keep Emerald under `emerald`; it should not inherit or enter an average of
Phase 1 through Phase 4. The
[variant price data guide](/resources/how-to-get-gamma-doppler-price-data)
explains the same variant structure across sources.

## Applicable endpoint

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `GET /v1/prices/latest` | Current C5Game Phase 1-4 and Emerald source objects | All plans |

## Quote-quality boundaries

- A bid above the phase ask is an invalid combined quote, not an arbitrage
  opportunity. Preserve the ask and reject the bid for spread calculations.
- `ask_volume` counts all active listings for the phase. It does not measure
  completed sales or top-level executable quantity.
- `collected_at` is the freshness timestamp for cs2.sh collection, while
  `updated_at` is the marketplace's own update time.
- Check [C5Game Gamma Doppler history](/resources/how-to-get-c5game-gamma-doppler-price-history)
  when a current bid gap or crossed pair could change a valuation.
