# Data Coverage

High-frequency CS2 price history, variant items, total supply, sale volume, source fields, freshness, and historical coverage.

This page covers all provided data, refresh rates, and historical coverage for cs2.sh API endpoints.

## Marketplaces & data

cs2.sh supports BUFF, Youpin, CSFloat, Skinport, Steam, and C5Game.

`ask` is the current lowest sell listing. `bid` is the current highest generic buy order.
`ask_volume` and `bid_volume` are the number of active listings or buy orders.

| Marketplace | Current data | Historical data | Additional data |
| --- | --- | --- | --- |
| BUFF | `ask`, `bid`, `ask_volume`, `bid_volume` | OHLC through `prices/history`; archive bid/ask prices from 2023 | Float ranges through `market/buff/latest` and `market/buff/history` |
| Youpin | `ask`, `bid`, `ask_volume`, `bid_volume` | OHLC through `prices/history`; archive bid/ask prices from 2023 | Sale price history through `archive/youpin` |
| CSFloat | `ask`, `bid`, `ask_volume` | OHLC through `prices/history`; sale price and sale volume history from 2022 | Sale price and sale volume through `archive/csfloat` |
| Skinport | `ask`, `ask_volume` | OHLC through `prices/history` | `max_ask`, `mean_ask`, `median_ask`, and rolling 24h/7d/30d/90d sale statistics |
| Steam | `ask`, `bid`, `ask_volume`, `bid_volume` | OHLC through `prices/history`; median sale price and sale volume history from 2013 | Full bid/ask orderbooks through `market/steam/latest` and `market/steam/history` |
| C5Game | `ask`, `bid`, `ask_volume` | OHLC through `prices/history`; archive bid/ask prices from 2023 | - |
| Aggregate | `hourly_volume`, `total_supply` | Archive data from `archive/history` from 2023 | `archive/history` provides historical approximate sale volume and item supply |

BUFF, Youpin, CSFloat, Skinport, and C5Game support current Doppler and Gamma Doppler prices. Current Case Hardened prices are supported on BUFF, Skinport, and C5Game. The Youpin archive can also return mapped Case Hardened variants.

Steam doesn't support *any* variants since the Steam Community Market doesn't distinguish between individual phases and their base item.

### Archive data

cs2.sh's archive endpoints provide several different types of historical data:

- `archive/history` for hourly and daily bid/ask prices, `ask_volume`, `bid_volume`, approximate sale volume, and item supply.
- `archive/csfloat` for CSFloat daily average sale prices and sale volume.
- `archive/steam` for Steam Community Market median sale prices and sale volume.
- `archive/youpin` for Youpin sale prices.

## Refresh rates

| Endpoint | Refresh rate |
| --- | --- |
| `GET /v1/prices/latest` | Most prices update every ~5 minutes, depending on the marketplace |
| `POST /v1/prices/latest` | Same data as `GET /v1/prices/latest` |
| `POST /v1/prices/history` | Updates continuously using the same data as `prices/latest` |
| `GET /v1/liquidity/items` | Daily |
| `GET /v1/market/buff/latest` | Every 10 minutes |
| `POST /v1/market/buff/history` | Every 10 minutes |
| `GET /v1/market/steam/latest` | Every ~3-10 minutes, depending on item liquidity |
| `POST /v1/market/steam/history` | Same data as `GET /v1/market/steam/latest` |
| `GET /v1/schema` | Automatically updated when Counter-Strike 2 game files update |

The refresh rate is approximate, so individual items may update less or more frequently when the marketplace has new/no data, or depending on item liquidity.

### Archive refresh rates

| Endpoint | Refresh rate |
| --- | --- |
| `POST /v1/archive/history` | ~1-2x per day |
| `POST /v1/archive/csfloat` | ~1-2x per day |
| `POST /v1/archive/steam` | ~1-4x per day |
| `POST /v1/archive/youpin` | ~1-2x per day |

### Variant refresh rates

Variant prices typically have a slightly different refresh rate from regular item prices.

| Marketplace | Variant refresh rate |
| --- | --- |
| BUFF | Every ~3-5 minutes |
| Youpin | Every ~5-15 minutes |
| CSFloat asks | Every ~10-15 minutes |
| CSFloat bids | Every ~10-15 minutes |
| Skinport | Every ~5 minutes |
| Steam | N/A (not supported) |
| C5Game | Every ~5 minutes |

BUFF float and fade ranges, including ranges for variants, update every 10 minutes.

## Historical coverage

| Endpoint | Historical coverage | Intervals |
| --- | --- | --- |
| `POST /v1/prices/history` | Since December 24, 2025 | `5m`, `30m`, `1h`, `1d` |
| `POST /v1/market/buff/history` | Since May 19, 2026 | `30m`, `1h`, `1d` |
| `POST /v1/market/steam/history` | Since June 9, 2026 | `1h`, `1d` |
| `POST /v1/archive/history` | Since 2023 | `1h`, `1d` |
| `POST /v1/archive/csfloat` | Since 2022 | `1d` |
| `POST /v1/archive/steam` | Daily since April 26, 2013; hourly since May 9, 2026 | `1h`, `1d` |
| `POST /v1/archive/youpin` | 12h since November 12, 2025; 4h since June 27, 2026; 1h since July 20, 2026 | `1h`, `4h`, `12h` |

The continuous history endpoints have interval-specific request limits. This determines the maximum request range you can query in a single request, though you can still combine several requests. For example, if you wanted 30m `prices/history` data for 180 days, you'd have to combine 2 requests since the maximum request range is 90 days.

| Endpoint | Interval | Maximum request range |
| --- | --- | --- |
| `prices/history` | `5m` | 14 days |
| `prices/history` | `30m` | 90 days |
| `prices/history` | `1h` | 365 days |
| `prices/history` | `1d` | Unlimited |
| `market/buff/history` | `30m` | 90 days |
| `market/buff/history` | `1h` | 365 days |
| `market/buff/history` | `1d` | Unlimited |
| `market/steam/history` | `1h` | 90 days |
| `market/steam/history` | `1d` | Unlimited |

## Endpoint types

cs2.sh provides three distinct types of price-data endpoints:

- Snapshot
- Historical time-series
- Archive

Snapshot endpoints provide the current, latest prices available at the given request time. Every marketplace price object has a distinct `updated_at` and `collected_at` so you can check data freshness.

`updated_at` is when the marketplace last updated the price. `collected_at` is when cs2.sh collected it.

Historical time-series endpoints *aggregate* the snapshot data to construct price history. For example, the `prices/history` endpoint uses the same data as `prices/latest`, but collects the OHLC (open, high, low, and close within a given time period) for a set interval. If you were to request the 1h interval for `prices/history`, each separate bucket would contain the OHLC for that given hour's data. This allows `prices/history` to provide a continuously growing time-series at 5m/30m/1h/1d intervals.

- `prices/history` and `market/buff/history` are OHLC aggregations.
- `market/steam/history` is sampled history. Each bucket contains the latest full Steam orderbook snapshot collected within that interval. If you were to query the 1h interval, each bucket would contain the last orderbook collected during that hour.

Archive endpoints are reserved for longer-term historical data, with up to 13 years of history. These endpoints typically update ~1-2x per day, with `archive/steam` updating more frequently.

Archive data does not always have the same meaning as snapshot data. Depending on the endpoint, it may represent listing prices, sale prices, sale volume, item supply, or marketplace-provided samples.
