POST /v1/archive/youpin
Returns Youpin sale price history at three independent intervals.
12hfrequency from November 12, 20254hfrequency from June 27, 20261hfrequency 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:00Since 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
| Interval | Sampling bucket |
|---|---|
1h | One sale per hour |
4h | One sale per 4 hours |
12h | One sale per 12 hours |
All observed intervals return together under each item's intervals map.
Request
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
| Field | Type | Required | Description |
|---|---|---|---|
items | string[] | Yes | List of market_hash_name values (max 100) |
start | string | No | Start date (YYYY-MM-DD or RFC3339). Default 180 days ago. Floored to the hour. |
end | string | No | End 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:
| 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 | Effective start of the queried range, floored to the 1h boundary. |
end | string (date-time) | Yes | Effective end of the queried range, ceiled to the 1h boundary. Exclusive. |
items | Record<string, ArchiveYoupinItem> | Yes | Map of market_hash_name to Youpin sale series. |
errors | ItemError[] | No | Per-item failures alongside successful results (partial success). |
Series
| Field | Description |
|---|---|
items.<name>.intervals | Map keyed 1h, 4h, and 12h; each an independent series. |
intervals.<width>.count | Number of sale points in the window. |
intervals.<width>.data[] | Sampled sale points. |
data[].bucket | Sampling bucket boundary. |
data[].time | The actual sale time. |
data[].price | Sale price, USD, converted at the sale date's exchange rate. |
items.<name>.variants | The same shape per variant. |
- An interval key appears only when that width was observed in the window;
count: 0means observed with no sales. countis 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.