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#

IntervalMax range
1hUnlimited
1dUnlimited

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#

FieldTypeRequiredDescription
itemsstring[]YesList of regular market_hash_name values (max 100). Variants are not supported.
startstringYesStart date/time as YYYY-MM-DD or RFC3339, inclusive.
endstringNoEnd date/time as YYYY-MM-DD or RFC3339, exclusive. Defaults to now.
intervalstringYesAllowed: 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:

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code (always USD).
startstring (date-time)YesNormalized UTC inclusive start.
endstring (date-time)YesNormalized UTC exclusive end.
intervalstringYesAllowed: 1h, 1d. Requested native Steam interval for every returned bucket.
itemsRecord<string, ArchiveSteamItem>YesMap of market_hash_name to native Steam sale-history buckets.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

Buckets#

FieldDescription
items.<name>.countNumber of buckets with data.
items.<name>.data[]Native Steam sale-history buckets.
data[].bucketBucket boundary.
data[].priceSteam's median sale price, USD.
data[].volumeNumber of purchases in the bucket.
  • bucket is present on every bucket.
  • price or volume can be null when 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 returns 404 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.