# How to Get Skinport Doppler Prices by Phase

> `GET /v1/prices/latest` returns Skinport Doppler asks and listing counts separately for each phase, plus nullable rolling 24h, 7d, 30d, and 90d sale summaries.

Skinport combines current listings and recent completed-sale statistics in one source object. They remain different measurements even when displayed together.

## Data available for each phase

Doppler variants use `p1` through `p4` plus `ruby`, `sapphire`, and `blackpearl`. A Skinport variant object can contain:

- `ask` and `ask_volume` for the current listing floor and active listing count.
- `max_ask`, `mean_ask`, and `median_ask` for the current listing set.
- `24h_history`, `7d_history`, `30d_history`, and `90d_history` rolling sale windows.
- Within a sale window: last `price`, `max_price`, `mean_price`, `median_price`, and sale `volume`.

Skinport does not return `bid` or `bid_volume`.

## Read current phase listings and sales

Fetch `GET /v1/prices/latest` and locate the base Doppler name in the full `items` snapshot. Select the phase by `version` under `variants` and read its `skinport` object.

Use `ask` when the question is the cheapest current listing. Use a rolling window's `median_price` and `volume` when the question is recent sale context. A null window means Skinport has no recent sale summary for that phase and period.

For fixed historical listing buckets, use [Skinport Doppler price history](/resources/how-to-get-skinport-doppler-price-history). It returns ask OHLC rather than a sequence of rolling sale windows.

## Applicable endpoints

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `GET /v1/prices/latest` | Current phase listing and rolling sale fields | All plans |
| `POST /v1/prices/history` | Phase ask OHLC | Scale, Enterprise |

## Window and coverage caveats

- The four sale windows overlap. Adding their `volume` values double-counts sales.
- A current `ask` can exist when every sale window is null. That means there is a listing quote without recent sale coverage.
- `ask_volume` counts listings, while window `volume` counts completed sales.
- Source coverage is sparse by phase. Preserve a missing Skinport phase rather than copying the parent ask.
- A window is a moving summary at request time, not a historical point.

The [Skinport source fields](/docs/api-reference/prices-latest#latest-price-source-data) define every listing and window statistic.
