New dedicated Steam Community Market endpoints are available! - full historical sale data and full-depth bid/ask orderbook. See docs.

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#

IntervalMax range
1h90 days
1dUnlimited

Supported sources#

SourceFields
steamtop (best ask/bid and total order counts), depth (full columnar bid/ask ladders)

Request#

POSTapi.cs2.sh/v1/market/steam/history
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#

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. Bucket interval. 1h is limited to 90 days; 1d is unlimited.

Response#

json
{
  "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.

  • bucket is 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#

StatusWhen
400 validation_errorThe request body or query failed validation (e.g. bad JSON, missing items/start, over 100 items, or a bad interval or date range).
401 / 403Missing key, invalid key, or plan access.
429Rate-limited.
5xxServer-side issue.

When some items resolve and others do not, the request still returns 200 with the resolved items plus an errors[] array.