# How to Get CS2 Sale Volume and Supply Data

> **Listing count ≠ sale volume.** CSPriceAPI exposes active listing `count` on price endpoints and **completed sales** via `/v1/market-sales/search` — use both, never confuse them.

## Three different numbers

| Metric | What it measures | Endpoint |
|---|---|---|
| **Listing count** | Active seller listings right now | `count` on `/v1/prices/latest` |
| **Completed sales** | Trades that actually happened | `/v1/market-sales/search` |
| **Bulk sales export** | Last 24h sales dump | `/v1/market-sales/export` |

A skin can show `count: 500` listings and **zero** sales today — still liquid-looking but stale. Conversely, sales can spike while listings drop (inventory absorbed).

## Listing counts (liquidity proxy)

```bash
curl -s -X POST "https://api.cspriceapi.com/v1/prices/latest" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":["AK-47 | Redline (Field-Tested)"],"markets":"youpin,buff163,skinport,csfloat,market-csgo"}'
```

Use `count` to:

- Filter bots (`count >= 10`)
- Weight fair value confidence
- Spot fake arbs (1 listing at weird price)

**Market.CSGO** is notable for sales-count fields on listings where available — see [Market.CSGO API](/market-csgo-api).

## Completed sales search

```bash
curl -s "https://api.cspriceapi.com/v1/market-sales/search?market_hash_name=AK-47%20%7C%20Redline%20(Field-Tested)" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Use sales to:

- Confirm listing prices trade in reality
- Detect manipulation (low sales at inflated ask)
- Build volume dashboards

Product overview: [Sales Data](/sales-data).

## Bulk export (24h)

```bash
curl -s "https://api.cspriceapi.com/v1/market-sales/export" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

For ETL pipelines, analytics warehouses, and market-wide volume studies.

## YouPin as volume leader

YouPin898 drives the highest **transaction volume** in CS2. When measuring "market activity":

1. Start with YouPin + BUFF listing counts and sales.
2. Add Western markets for retail layer.
3. Report **per-market** — do not sum CNY and USD counts without conversion context.

## Worked example: misleading listing count

| Market | Ask | count |
|---|---:|---:|
| DMarket | $45 | 1 |
| CSFloat | $52 | 340 |

DMarket "cheapest" ask is one listing — not a liquid market. A volume-aware bot skips `count < 5`.

## Supply vs demand narrative

- **Rising listings + falling sales** → supply glut, bearish
- **Falling listings + rising sales** → absorption, bullish
- Requires time series — combine daily history + daily sales aggregates

## Related

- [Fair value](/resources/how-to-calculate-cs2-skin-fair-value)
- [Historical prices](/resources/how-to-get-historical-cs2-skin-prices)
- [Data coverage](/docs/data-coverage)
