POST /v1/market/steam/history
Returns full-depth Steam orderbook snapshots over time, the same shape as GET /v1/market/steam/latest. Data begins on June 9, 2026. Max 100 items per request.
Data for this endpoint updates every 10 minutes.
Access
Requires a Scale or Enterprise API key.
Supported intervals
| Interval | Max range |
|---|---|
1h | 90 days |
1d | Unlimited |
Supported sources
| Source | Fields |
|---|---|
steam | top (best ask/bid and total order counts), depth (full columnar bid/ask ladders) |
Request
curl -X POST https://api.cs2.sh/v1/market/steam/history \
-H "Authorization: Bearer <<YOUR_API_KEY>>" \
-H "Accept-Encoding: gzip" --compressed \
-H "Content-Type: application/json" \
-d '{
"items": [
"AK-47 | Redline (Field-Tested)"
],
"start": "2026-06-01",
"end": "2026-06-02",
"interval": "1h"
}'Parameters
| Field | Type | Required | Description |
|---|---|---|---|
items | string[] | Yes | List of regular market_hash_name values (max 100). Variants are not supported. |
start | string | Yes | Start date/time as YYYY-MM-DD or RFC3339, inclusive. |
end | string | No | End date/time as YYYY-MM-DD or RFC3339, exclusive. Defaults to now. |
interval | string | Yes | Allowed: 1h, 1d. Bucket interval. 1h is limited to 90 days; 1d is unlimited. |
Response
{
"response_time": "2026-06-14T12:00:00Z",
"currency": "USD",
"start": "2026-06-01T00:00:00Z",
"end": "2026-06-02T00:00:00Z",
"interval": "1h",
"items": {
"AK-47 | Redline (Field-Tested)": {
"count": 1,
"data": [
{
"bucket": "2026-06-01T00:00:00Z",
"updated_at": "2026-06-01T00:51:00Z",
"collected_at": "2026-06-01T00:51:05Z",
"top": {
"ask": 41.32,
"ask_volume": 1120,
"bid": 41.24,
"bid_volume": 53678
},
"depth": {
"ask_levels": 1,
"bid_levels": 1,
"asks": {
"prices": [
41.32
],
"volumes": [
2
]
},
"bids": {
"prices": [
41.24
],
"volumes": [
27
]
}
}
}
]
}
}
}Returns a SteamOrderbookHistoryResponse object. See Objects for the full shape.
Response fields
Each item holds count (buckets with data) and a data[] array of orderbook snapshots. Each point is the latest full-depth observation inside its bucket, carrying updated_at, collected_at, top, and depth. top contains best ask/bid prices and total Steam ask/bid order counts. depth contains full columnar ask and bid ladders. The item name is the key in items, so it is not duplicated inside each item value.
bucketis the UTC interval boundary.- Variants items are not included.
- Valid requested items with no buckets in the range are omitted from
items.
Full schemas: SteamOrderbookHistoryItem, SteamOrderbookHistoryPoint, SteamOrderbookTop, SteamOrderbookDepth, SteamOrderbookDepthSide.
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 do not, the request still returns 200 with the resolved items plus an errors[] array.