POST /v1/archive/youpin

Returns Youpin sale price history at three independent intervals.

  • 12h frequency from November 12, 2025
  • 4h frequency from June 27, 2026
  • 1h frequency from July 20, 2026

Youpin publishes one sale per sampling bucket and does not provide sale volume. A 1h series can therefore contain at most 24 points per day, a 4h series 6, and a 12h series 2.

The same sale can appear in more than one series:

sale at 12:42
  -> 1h series:  bucket 12:00
  -> 4h series:  bucket 12:00
  -> 12h series: bucket 12:00

Since the same sale can appear in multiple series, I'd recommend treating 1h, 4h, and 12h as separate views of the data.

About 16,000 liquid items are collected, plus mapped Doppler, Gamma Doppler, and Case Hardened variants. Data updates ~1-2x per day. Max 100 items per request.

Access#

Requires a Scale or Enterprise API key.

Supported intervals#

IntervalSampling bucket
1hOne sale per hour
4hOne sale per 4 hours
12hOne sale per 12 hours

All observed intervals return together under each item's intervals map.

Request#

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

Parameters#

FieldTypeRequiredDescription
itemsstring[]YesList of market_hash_name values (max 100)
startstringNoStart date (YYYY-MM-DD or RFC3339). Default 180 days ago. Floored to the hour.
endstringNoEnd date (YYYY-MM-DD or RFC3339). Default now. Ceiled to the hour.

Response#

{
  "response_time": "2026-07-28T16:20:41.318204951Z",
  "currency": "USD",
  "start": "2026-01-29T00:00:00Z",
  "end": "2026-07-28T00:00:00Z",
  "items": {
    "★ Karambit | Doppler (Factory New)": {
      "market_hash_name": "★ Karambit | Doppler (Factory New)",
      "intervals": {
        "1h": {
          "count": 120,
          "data": [
            {
              "bucket": "2026-07-21T16:00:00Z",
              "time": "2026-07-21T16:52:38.307Z",
              "price": 1314.88
            },
            {
              "bucket": "2026-07-21T23:00:00Z",
              "time": "2026-07-21T23:42:05.008Z",
              "price": 1920.6
            }
          ]
        },
        "4h": {
          "count": 180,
          "data": [
            {
              "bucket": "2026-06-27T16:00:00Z",
              "time": "2026-06-27T18:37:02.696Z",
              "price": 1971.09
            },
            {
              "bucket": "2026-06-27T20:00:00Z",
              "time": "2026-06-27T23:59:41.06Z",
              "price": 1995.59
            }
          ]
        },
        "12h": {
          "count": 353,
          "data": [
            {
              "bucket": "2026-01-29T16:00:00Z",
              "time": "2026-01-30T03:34:33.138Z",
              "price": 2256.76
            },
            {
              "bucket": "2026-01-30T16:00:00Z",
              "time": "2026-01-31T03:51:57.426Z",
              "price": 1438.64
            }
          ]
        }
      },
      "variants": {
        "Phase 2": {
          "market_hash_name": "★ Karambit | Doppler (Factory New)",
          "name": "★ Karambit | Doppler (Factory New) | Phase 2",
          "display_name": "Phase 2",
          "version": "p2",
          "intervals": {
            "12h": {
              "count": 356,
              "data": [
                {
                  "bucket": "2026-01-29T04:00:00Z",
                  "time": "2026-01-29T15:46:01.526Z",
                  "price": 2296.22
                }
              ]
            }
          }
        }
      }
    }
  }
}

Response fields#

ArchiveYoupinResponse fields:

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code (always USD).
startstring (date-time)YesEffective start of the queried range, floored to the 1h boundary.
endstring (date-time)YesEffective end of the queried range, ceiled to the 1h boundary. Exclusive.
itemsRecord<string, ArchiveYoupinItem>YesMap of market_hash_name to Youpin sale series.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

Series#

FieldDescription
items.<name>.intervalsMap keyed 1h, 4h, and 12h; each an independent series.
intervals.<width>.countNumber of sale points in the window.
intervals.<width>.data[]Sampled sale points.
data[].bucketSampling bucket boundary.
data[].timeThe actual sale time.
data[].priceSale price, USD, converted at the sale date's exchange rate.
items.<name>.variantsThe same shape per variant.
  • An interval key appears only when that width was observed in the window; count: 0 means observed with no sales.
  • count is the number of points in that one series. It is not sale volume.
  • Valid requested items with no Youpin sale history return not_in_archive.

Full schemas: ArchiveYoupinItem, ArchiveYoupinSeries, ArchiveYoupinPoint.

Errors#

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