# How to Get CSFloat Gamma Doppler Prices

> `GET /v1/prices/latest` serves current CSFloat Gamma Doppler prices separately for Phase 1-4 and Emerald under the base item's `variants` object.

Gamma Doppler phases are distinct markets. The stable codes are `p1`, `p2`, `p3`, `p4`, and `emerald`. Keeping those identities attached prevents an Emerald quote or a parent quote from being mislabeled as a numbered phase.

## Current CSFloat fields

A covered Gamma Doppler variant can contain a CSFloat source object with:

- `ask` for the cheapest active phase listing.
- `bid` for the highest active phase buy order.
- `ask_volume` for the number of active listings.
- `updated_at` and `collected_at` for listing-source freshness.

CSFloat does not provide `bid_volume`. Bids refresh every ~10-30 minutes according to item liquidity. Variant listing prices on CSFloat generally refresh every ~10-15 minutes.

## Find the phase quote

Fetch `GET /v1/prices/latest` and locate the base Gamma Doppler `market_hash_name` in `items`. Read `variants`, select the desired stable `version`, and then read its `csfloat` object. The full snapshot is available on Developer, Scale, and Enterprise plans.

Use `display_name` for labels and `version` for matching. If the selected phase has no CSFloat object, leave it unavailable. The parent Gamma Doppler price and another phase do not describe that market.

For time series, [CSFloat Gamma Doppler history](/resources/how-to-get-csfloat-gamma-doppler-price-history) supplies phase OHLC. The [CSFloat sale archive](/resources/how-to-get-csfloat-gamma-doppler-sales-history) supplies daily completed-sale price and count.

## Applicable endpoints

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `GET /v1/prices/latest` | Current Gamma Doppler ask, bid, and listing count | All plans |
| `POST /v1/prices/history` | Phase ask and bid OHLC | Scale, Enterprise |
| `POST /v1/archive/csfloat` | Phase completed-sale aggregates where available | Scale, Enterprise |

## Keep these limits attached

- `ask_volume` is listing count, not sales or buy-order depth.
- A phase bid can be absent while its ask exists. Without `bid_volume`, the bid only identifies the top price.
- A bid above ask can reflect separately collected sides. Refresh that pair instead of treating it as a negative spread.
- Current orders do not prove execution. Sparse Emerald markets benefit from completed-sale volume context.

The [latest-price object reference](/docs/api-reference/prices-latest) lists all CSFloat fields.
