# How to Find Underpriced Skinport Listings

> `GET /v1/prices/latest` exposes Skinport's current lowest ask, listing count, listing-price statistics, and rolling sale windows beside current asks from five other marketplaces.

The endpoint identifies item-level candidates. It does not return individual Skinport listing IDs or the exact float, stickers, and paint seed attached to the floor listing.

## Skinport fields for a deal screen

- `ask`: the lowest active Skinport listing in USD.
- `ask_volume`: the number of active listings.
- `max_ask`, `mean_ask`, and `median_ask`: statistics across active listing prices.
- `24h_history`, `7d_history`, `30d_history`, and `90d_history`: Skinport-supplied rolling sale windows with price statistics and `volume`.
- `updated_at` and `collected_at`: source and collection timestamps.

Skinport has no current bid. The other source objects in the snapshot can provide peer asks and, where supported, bids for a separate exit check.

## Finding item-level candidates

For each exact item or nested variant, require a positive, fresh Skinport `ask` and compare it with `median_ask`. Then compare the floor with a documented peer reference, such as the median current ask across available cash marketplaces.

Rank a candidate by the smaller of its internal Skinport discount and peer-market discount so one extreme reference cannot dominate. Keep `ask_volume`, source timestamps, and the peer-source count with the result.

Use the rolling sale windows to check whether recent Skinport activity exists, and optionally join `GET /v1/liquidity/items` for a sale-volume-based liquidity bucket and estimated sale time across BUFF, Steam, and CSFloat history.

## Applicable endpoints

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `GET /v1/prices/latest` | Current Skinport and peer-market item data | All plans |
| `GET /v1/liquidity/items` | Daily liquidity and estimated sale time | Scale, Enterprise |

## Candidate limits

- The lowest ask can be one unusual asset. Without its exact float, stickers, or paint seed, the discount remains a screening signal.
- `median_ask` describes active listings, not completed sales. Use a rolling sale window when the comparison needs recent sale context.
- A peer ask is another acquisition quote, not an executable exit. A true arbitrage screen needs a current destination bid and route costs.
- A rolling window is an aggregate, not a daily time series. Do not turn its one summary object into multiple historical points.

See [current Skinport fields](/resources/how-to-get-skinport-prices) and [cross-market arbitrage inputs](/resources/how-to-find-cs2-skin-arbitrage) for the two follow-up checks.
