BUFF sale history is now available - POST /v1/archive/buff returns sale prices and daily total supply since September 2024.

POST /v1/archive/buff

Returns BUFF sale prices and daily total supply from BUFF's sale trends chart.

  • Sale prices from September 6, 2024
  • Daily total_supply from September 6, 2024 (for items where BUFF reports it)

Data updates ~1x per day. Max 100 items per request.

BUFF variant data includes: Dopplers, Gamma Dopplers, Case Hardened, Marble Fade Fire & Ice, and Crimson Kimono.

Access#

Requires a Scale or Enterprise API key.

Data granularity#

BUFF provides more recent history at a higher frequency than older history. A data point only exists where a sale occurred, so illiquid items have larger gaps at each interval.

FromTypical sale price frequency
September 20261-3 hours
August 2026~12 hours
March 2026~2 days
September 2025~4 days
September 2024~6 days

Request#

POSTapi.cs2.sh/v1/archive/buff
curl -X POST https://api.cs2.sh/v1/archive/buff \
  -H "Authorization: Bearer <<YOUR_API_KEY>>" \
  -H "Accept-Encoding: gzip" --compressed \
  -H "Content-Type: application/json" \
  -d '{
  "items": [
    "★ Karambit | Doppler (Factory New)"
  ],
  "start": "2024-09-01",
  "end": "2026-09-07",
  "currency": "USD"
}'

Parameters#

FieldTypeRequiredDescription
itemsstring[]YesList of market_hash_name values (max 100).
startstringNoStart date/time as YYYY-MM-DD or RFC3339, inclusive. Defaults to the start of collected history.
endstringNoEnd date/time as YYYY-MM-DD or RFC3339, exclusive. Defaults to now.
currencystringNoDefault: USD. Allowed: AUD, CAD, CHF, CNY, EUR, GBP, JPY, NZD, SGD, USD. Currency for every price in the response.

Response#

{
  "response_time": "2026-09-06T00:30:00Z",
  "currency": "USD",
  "start": "2026-09-03T13:00:00Z",
  "end": "2026-09-03T20:00:00Z",
  "items": {
    "AK-47 | Redline (Field-Tested)": {
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "count": 4,
      "data": [
        {
          "time": "2026-09-03T13:00:00Z",
          "sale_price": 38.07,
          "total_supply": 350680
        },
        {
          "time": "2026-09-03T15:00:00Z",
          "sale_price": 52.42,
          "total_supply": 350680
        },
        {
          "time": "2026-09-03T16:00:00Z",
          "sale_price": 62.04,
          "total_supply": 350713
        },
        {
          "time": "2026-09-03T19:00:00Z",
          "sale_price": 41.63,
          "total_supply": 350713
        }
      ]
    }
  }
}

Response fields#

ArchiveBuffResponse fields:

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency for sale_price. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, exactly as requested or defaulted. Inclusive.
endstring (date-time)YesEffective end of the queried range, exactly as requested or defaulted. Exclusive.
itemsRecord<string, ArchiveBuffItem>YesMap of market_hash_name to BUFF sale series.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

Sales#

FieldDescription
items.<name>.countNumber of points.
items.<name>.data[]BUFF sales.
data[].timeSale time.
data[].sale_priceSale price, USD, converted at the sale date's exchange rate.
data[].total_supplyBUFF-reported total supply for the sale's day (UTC+8).
items.<name>.variantsThe same shape per variant.
  • time is present on every point.
  • sale_price can be null when the sale date's exchange rate is not stored yet, or on a supply-only day.
  • total_supply can be null when BUFF reported no supply for that day.
  • A day with supply and no sales returns one supply-only row at China midnight (16:00 UTC).
  • count is the number of points. It is not sale volume.
  • Variants appear under variants when BUFF sale history exists for that variant.
  • Valid requested items with no BUFF sale history return not_in_archive.

Full schemas: ArchiveBuffItem, ArchiveBuffVariant, ArchiveBuffPoint.

Errors#

404 not_found means none of the requested valid items have BUFF sale history in the window. Partial results return 200 with errors[]; possible item codes are unknown_item, invalid_format, and not_in_archive. See Partial success and Request errors.