# How to Get Steam Community Market Prices for CS2 Items

> Pull live Steam Community Market list prices for CS2 skins via `GET /v1/prices/latest?markets=steam` — same JSON schema as YouPin, BUFF163 and Skinport, with `doppler_phase` where applicable. Steam prices are a **reference**, not withdrawable cash.

## What CSPriceAPI provides for Steam

| | |
|---|---|
| **Endpoint** | `GET /v1/steam` (optional `?market_hash_name=…`) |
| **Currency** | USD (Steam Wallet) |
| **Refresh** | ~5 min live snapshots |
| **Markets in one key** | 13 marketplaces — compare Steam vs YouPin in one request |
| **Doppler phases** | Per-phase rows when Steam listings distinguish variants |
| **Buy-side data** | See [YouPin buy orders](/resources/how-to-get-youpin-prices) for cash exit pricing |

CSPriceAPI is an **independent aggregator**, not an official Valve API. Steam has no public market API for third-party developers.

## Quick start

All items on Steam (filter in your app if needed):

```bash
curl -s "https://api.cspriceapi.com/v1/prices/latest?markets=steam" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Specific skins (max 100 per POST):

```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":"steam,youpin,buff163"}'
```

Single lookup:

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

## Response fields (typical row)

```json
{
  "market": "steam",
  "currency": "USD",
  "updated_at": "2026-08-28T12:00:00Z",
  "items": [
    {
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "price": 42.50,
      "count": 1240,
      "change_24h": -0.8,
      "doppler_phase": null
    }
  ]
}
```

| Field | Meaning |
|---|---|
| `price` | Lowest **listing** ask on Steam Community Market (not a completed sale) |
| `count` | Active listings — liquidity proxy, not sales volume |
| `change_24h` / `change_7d` | Movement vs prior snapshot — useful for alerts |
| `doppler_phase` | Set for Doppler/Gamma rows — never merge phases |

## Reading Steam data correctly

**Listing ≠ sale.** Steam `price` is what sellers ask right now. A skin can sit listed for weeks without selling. Confirm with [market sales search](/sales-data) when sizing a trade.

**Steam Wallet ≠ cash.** Valve takes ~15% on sales and funds stay in Steam Wallet. A $150 Steam listing does **not** equal $150 bank cash. For cash valuation, weight [YouPin898](/resources/how-to-get-youpin-prices) or [BUFF163](/resources/how-to-get-buff-prices) (CNY) and Western markets (EUR/USD).

**Steam is slow to react.** Skinport and YouPin often move first on meta shifts (tournament stickers, case drops). Steam lags — good for reference, risky as sole arb target.

**Null is missing, not zero.** If an item returns no row, it may have zero listings — do not substitute `0` in portfolio math.

## Cross-market context (why traders still pull Steam)

International traders use this pattern daily:

1. **YouPin898** sets the global wholesale reference (CNY).
2. **BUFF163** tracks YouPin closely — gaps = CN arbitrage.
3. **Skinport / CSFloat** = Western cash venues (EUR/USD).
4. **Steam** = visibility and wallet-only liquidity.

Compare all four in one call:

```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":["★ Karambit | Doppler (Factory New)"],"markets":"steam,youpin,buff163,skinport,csfloat"}'
```

Match rows by `(market_hash_name, doppler_phase)`. A Karambit Doppler **Ruby** on CSFloat is not comparable to Phase 4 on Steam.

## No-code alternatives

- [Browse Skins](/apps/browseskins) — Steam column beside 12 other markets
- [Chrome extension](/extension) — overlay comparison while browsing Steam listings (where supported)
- [Price Comparison](/apps/pricecomparison) — ROI math with fee inputs

## Worked example: Steam premium vs YouPin reference

Suppose POST returns:

| Market | Price | Currency |
|---|---:|---|
| YouPin (lowest ask) | ¥2,800 | CNY |
| Steam (lowest ask) | $520 | USD |

At ¥7.2 / USD, YouPin ≈ $389 cash-equivalent listing. Steam shows ~34% **above** the CN reference — common on liquid skins (Steam convenience premium). That gap is not free profit: you cannot withdraw Steam Wallet to bank at par.

**Decision:** A bot should not auto-buy on Skinport because Steam is higher unless it models wallet value separately.

## History & sales

Daily Steam-oriented history (where available):

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

Recent completed sales (cross-check listing asks):

```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"
```

## Related

- [Steam API landing page](/steam-api)
- [Value a CS2 inventory](/resources/how-to-value-cs2-inventory)
- [Calculate fair value](/resources/how-to-calculate-cs2-skin-fair-value)
- [Historical prices](/resources/how-to-get-historical-cs2-skin-prices)
