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 ranges for Doppler, Gamma Doppler, and Case Hardened variants. OHLC is computed for ask, avg_ask, and bid; ask_volume and bid_volume are the last values observed in the interval. Data updates 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 |
bucket is the UTC interval start. open_time and close_time are the actual first and last observations inside it. updated_at is BUFF's last update time represented by the bucket; collected_at is the cs2.sh collection time represented by it.
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-07-20",
"end": "2026-07-23",
"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-07-26T18:54:21.429446677Z",
"currency": "USD",
"start": "2026-07-20T00:00:00Z",
"end": "2026-07-23T00:00:00Z",
"interval": "1h",
"items": {
"★ Bayonet | Fade (Factory New)": {
"market_hash_name": "★ Bayonet | Fade (Factory New)",
"buckets": [
{
"bucket_id": "base",
"bucket_type": "base",
"data": [
{
"bucket": "2026-07-20T00:00:00Z",
"updated_at": "2026-07-20T00:46:24Z",
"collected_at": "2026-07-20T00:50:57.483Z",
"open_ask": 371.36,
"high_ask": 371.57,
"low_ask": 371.36,
"close_ask": 371.57,
"open_avg_ask": 379.74,
"high_avg_ask": 379.96,
"low_avg_ask": 379.74,
"close_avg_ask": 379.96,
"open_bid": 359.57,
"high_bid": 359.78,
"low_bid": 359.57,
"close_bid": 359.78,
"ask_volume": 177,
"bid_volume": 23,
"open_time": "2026-07-20T00:00:53.231Z",
"close_time": "2026-07-20T00:50:57.483Z"
}
]
}
]
}
}
}Response fields
BUFFMarketFloatHistoryResponse fields:
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
start | string (date-time) | Yes | Effective start of the queried range, floored to the interval boundary. |
end | string (date-time) | Yes | Effective end of the queried range, ceiled to the interval boundary. Exclusive. |
interval | string | Yes | Allowed: 30m, 1h, 1d. OHLC bucket size. |
items | Record<string, BUFFMarketFloatHistoryItem> | Yes | Map of market_hash_name to per-item BUFF history. |
errors | ItemError[] | No | Per-item failures alongside successful results (partial success). |
Range history
| Field | Description |
|---|---|
items.<name>.buckets[] | The item's price ranges, with identity (bucket_id, bucket_type, float/fade) matching GET /v1/market/buff/latest. |
buckets[].data[] | OHLC points for the range. |
data[].bucket | UTC interval boundary. |
data[].open_time, close_time | The real first and last observation timestamps inside the bucket. |
data[].ask, avg_ask, bid | OHLC values. |
data[].ask_volume, bid_volume | Last-observed volumes in the bucket. |
items.<name>.variants | The same range history nested by variant display name. |
floatappears onfloatandfloat_faderanges;fadeonfadeandfloat_faderanges.
Full schemas: BUFFMarketFloatHistoryItem, BUFFMarketFloatHistoryBucket, BUFFMarketFloatHistoryPoint.
Errors
404 not_found means none of the requested valid items have BUFF range history. Partial results return 200 with errors[]; possible item codes are unknown_item, invalid_format, and not_in_cache. See Partial success and Request errors.