POST /v1/archive/steam
Returns Steam Community Market median sale price and purchase volume in Steam's native history buckets.
- Daily (
1d) buckets from April 26, 2013 - Hourly (
1h) buckets from May 9, 2026
This is the same data shown in the price graph on a Steam Community Market item page. Collection updates about 1-4x per day. Variants are not supported. Max 100 items per request.
Access
Requires a Scale or Enterprise API key.
Supported intervals
| Interval | Max range |
|---|---|
1h | Unlimited |
1d | Unlimited |
Request
POSTapi.cs2.sh/v1/archive/steam
curl -X POST https://api.cs2.sh/v1/archive/steam \
-H "Authorization: Bearer <<YOUR_API_KEY>>" \
-H "Accept-Encoding: gzip" --compressed \
-H "Content-Type: application/json" \
-d '{
"items": [
"USP-S | Printstream (Factory New)"
],
"start": "2025-01-01",
"end": "2025-02-01",
"interval": "1d"
}'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. Native Steam bucket interval. No public max date range. |
Response
{
"response_time": "2026-07-26T18:54:20.110090345Z",
"currency": "USD",
"start": "2025-01-01T00:00:00Z",
"end": "2025-02-01T00:00:00Z",
"interval": "1d",
"items": {
"USP-S | Printstream (Factory New)": {
"market_hash_name": "USP-S | Printstream (Factory New)",
"count": 31,
"data": [
{
"bucket": "2025-01-01T00:00:00Z",
"price": 150.23,
"volume": 7
}
]
}
}
}Response fields
ArchiveSteamResponse 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 | Normalized UTC inclusive start. |
end | string (date-time) | Yes | Normalized UTC exclusive end. |
interval | string | Yes | Allowed: 1h, 1d. Requested native Steam interval for every returned bucket. |
items | Record<string, ArchiveSteamItem> | Yes | Map of market_hash_name to native Steam sale-history buckets. |
errors | ItemError[] | No | Per-item failures alongside successful results (partial success). |
Buckets
| Field | Description |
|---|---|
items.<name>.count | Number of buckets with data. |
items.<name>.data[] | Native Steam sale-history buckets. |
data[].bucket | Bucket boundary. |
data[].price | Steam's median sale price, USD. |
data[].volume | Number of purchases in the bucket. |
bucketis present on every bucket.priceorvolumecan benullwhen Steam's native bucket omits that value.- Variant items are not supported.
- Valid requested items with no Steam history return
not_in_archive; if every valid item has none, the endpoint returns404 not_found.
Full schemas: ArchiveSteamItem, ArchiveSteamBucket.
Errors
404 not_found means none of the requested valid regular items have Steam archive rows. Partial results return 200 with errors[]; variant requests use unsupported_variant. See Partial success and Request errors.