# How to Build a CS2 Skin Price Chart

> `POST /v1/prices/history` returns the ask and bid OHLC, timestamps, and sample counts needed to build a CS2 skin price chart for each marketplace.

Choose the market concept before choosing the visual. `close_ask` charts the last observed listing floor in a bucket, while `close_bid` charts the last observed highest buy order. Neither is a completed-sale price.

## OHLC data available for charting

Each returned item contains chronological `data[]` buckets. The top-level `bucket` is the aligned UTC interval start. Every source object carries its own `open_time`, `close_time`, and `sample_count`, along with ask OHLC and bid OHLC where the source supports bids.

| Interval | Maximum requested range |
| --- | --- |
| `5m` | 14 days |
| `30m` | 90 days |
| `1h` | 365 days |
| `1d` | Unlimited |

History begins December 24, 2025. Variants have independent histories nested under `variants`, so a Doppler phase or Case Hardened tier can be charted separately from the base item.

## Designing the chart series

Request the exact `market_hash_name`, selected sources, date bounds, and interval. Draw one line or candle series per source and price side. Use `bucket` for the shared x-axis, but expose `open_time`, `close_time`, and `sample_count` in tooltips so the reader can see the actual observation window.

Leave a gap when a source object is absent. Connecting across it implies continuous observation that did not occur. Keep Steam labeled as wallet pricing when it appears beside cash marketplaces, and keep completed-sale archive data in a separate series with its own definition.

## Applicable endpoint

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `POST /v1/prices/history` | Per-source OHLC history for up to 100 items | Scale, Enterprise |

## Chart caveats

- Volume fields are last-observed active order counts within each OHLC bucket. They are not completed-sale volume.
- `bucket` and `close_time` are different. Plotting the boundary is appropriate for alignment, but freshness labels should use the actual observation time.
- CSFloat bid history starts July 18, 2026. Earlier CSFloat buckets can have ask data without a bid series.
- Skinport is ask-only; CSFloat and C5Game have no bid-volume series.

Keep listing asks, bids, and completed-sale statistics in separately labeled chart series.
