POST /v1/market/buff/history
Returns OHLC history for BUFF float ranges and fade ranges. Data begins on May 19, 2026.
Each range from GET /v1/market/buff/latest has its own time series, including per-variant ranges for Doppler phases and Case Hardened tiers. OHLC is computed for ask, avg_ask, and bid; ask_volume and bid_volume are last-observed. Since data for this endpoint is also surfaced in v1/market/buff/latest, prices update every 10 minutes. Max 100 items per request.
Access
Requires a Scale or Enterprise API key.
Supported intervals
| Interval | Max range |
|---|---|
30m | 90 days |
1h | 365 days |
1d | Unlimited |
Supported sources
| Source | Fields |
|---|---|
buff | ask, avg_ask, bid (OHLC); ask_volume, bid_volume (last-observed) |
bucket is the UTC interval boundary. open_time and close_time are the first and last observation timestamps inside the bucket.
Request
curl -X POST https://api.cs2.sh/v1/market/buff/history \
-H "Authorization: Bearer <<YOUR_API_KEY>>" \
-H "Accept-Encoding: gzip" --compressed \
-H "Content-Type: application/json" \
-d '{
"items": [
"★ Bayonet | Fade (Factory New)",
"AK-47 | Case Hardened (Field-Tested)"
],
"start": "2026-05-12",
"end": "2026-05-19",
"interval": "1h"
}'Parameters
| Field | Type | Required | Description |
|---|---|---|---|
items | string[] | Yes | List of market_hash_name values (max 100) |
start | string | Yes | Start date/time as YYYY-MM-DD or RFC3339 |
end | string | No | End date/time as YYYY-MM-DD or RFC3339. Defaults to now. |
interval | string | No | Default: 30m. Allowed: 30m, 1h, 1d. |
Response
{
"response_time": "2026-05-19T18:42:11.014Z",
"currency": "USD",
"start": "2026-05-12T00:00:00Z",
"end": "2026-05-19T00:00:00Z",
"interval": "1h",
"items": {
"★ Bayonet | Fade (Factory New)": {
"market_hash_name": "★ Bayonet | Fade (Factory New)",
"buckets": [
{
"bucket_id": "fade:99:100",
"bucket_type": "fade",
"fade": {
"min": 99,
"max": 100
},
"data": [
{
"bucket": "2026-05-19T18:00:00Z",
"updated_at": "2026-05-19T18:36:34Z",
"collected_at": "2026-05-19T18:40:53.334Z",
"open_ask": 472.06,
"high_ask": 484.41,
"low_ask": 471.32,
"close_ask": 477.65,
"open_avg_ask": 528.72,
"high_avg_ask": 533.04,
"low_avg_ask": 525.18,
"close_avg_ask": 531.09,
"open_bid": 369.85,
"high_bid": 377.94,
"low_bid": 369.85,
"close_bid": 377.94,
"ask_volume": 27,
"bid_volume": 7,
"open_time": "2026-05-19T18:01:12Z",
"close_time": "2026-05-19T18:56:18Z"
}
]
}
]
}
}
}Returns a BUFFMarketFloatHistoryResponse object. See Objects for the full shape.
Response fields
Each item holds ranges in buckets[]; each entry carries range identity (bucket_id, bucket_type, float/fade, matching GET /v1/market/buff/latest) and a data[] array of OHLC points. Each point carries OHLC of ask, avg_ask, and bid, last-observed ask_volume/bid_volume, and the real observation window (open_time/close_time).
| Field | Appears on |
|---|---|
bucket_id, bucket_type, data | All returned ranges |
float | float and float_fade ranges |
fade | fade and float_fade ranges |
bucket, updated_at, collected_at, open_time, close_time | All history points |
Full schemas: BUFFMarketFloatHistoryItem, BUFFMarketFloatHistoryBucket, BUFFMarketFloatHistoryPoint.
Errors
| Status | When |
|---|---|
400 validation_error | The request body or query failed validation (e.g. bad JSON, missing items/start, over 100 items, or a bad interval or date range). |
401 / 403 | Missing key, invalid key, or plan access. |
429 | Rate-limited. |
5xx | Server-side issue. |
When some items resolve and others don't, the request still returns 200 with the resolved items plus an errors[] array – each entry is an ItemError with a code of unknown_item, invalid_format, or not_in_cache.