Skip to main content
GET/v1/pricing/:marketHashName/historyPRO+

价格历史

饰品按时间分桶的历史价格序列(avg/median/min/max 及最优买卖价,单位美分)。可用 from/to(ISO)、listingType(SELL_OFFER | BUY_ORDER | SALE_HISTORY)与 salesWindow 过滤。粒度默认根据时间范围自动选择,也可用 interval 指定(会对齐到已存储的 10m / 1h / 1d 汇总,实际宽度见响应中的 effectiveInterval)。需要按市场拆分的序列请见按市场的历史。

返回从旧到新的时间分桶序列。每个分桶汇总该窗口内观察到的价格(avg / median / min / max),以及当时的最优求购价、最优在售价与价差——正是画价格图所需的结构。

listingType 决定你画的是什么:SELL_OFFER(在售价,默认)、BUY_ORDER(求购价)或 SALE_HISTORY(已完成交易,配合 salesWindow 使用)。分桶粒度默认由 from/to 范围自动选择,也可用 interval 指定。数据来自已存储的 10 分钟、1 小时与 1 天汇总,所请求的粒度会对齐到最接近的一档(MINUTE_5 与 MINUTE_15 对齐到 10m,HOUR_1 与 HOUR_6 对齐到 1h,DAY_1 对齐到 1d);响应中的 effectiveInterval 会告诉你实际宽度。

volume 在 listingType=SALE_HISTORY 时是该分桶的滚动成交笔数(完成交易的数量,不是成交额),在 SELL_OFFER / BUY_ORDER 下为 null。totalQuantity 在 BUY_ORDER 分桶上携带求购数量。请把 null 理解为"此处不适用",而不是零。

按游戏区分的版本:GET /v2/pricing/:marketHashName/history 通过必填参数 game=cs2|rust 同时服务两款游戏。对挂单稀少的 Rust 饰品,请优先使用 bestAskCents / bestBidCents,而非各市场等权计算的 medianPrice,见游戏:CS2 与 Rust。

参数

marketHashNamestring必填
路径段。URL 编码的 market_hash_name。
fromstring可选
查询参数。ISO 8601 起始时间。默认:now − 30d。
tostring可选
查询参数。ISO 8601 结束时间。默认:now。
listingTypestring可选
查询参数。SELL_OFFER | BUY_ORDER | SALE_HISTORY。默认:SELL_OFFER。
salesWindowstring可选
查询参数。24h | 7d | 30d | 90d。仅当 listingType=SALE_HISTORY 时有效。
intervalstring可选
查询参数。请求的分桶宽度:MINUTE_5 | MINUTE_15 | HOUR_1 | HOUR_6 | DAY_1。会覆盖由 from/to 推导的粒度,并对齐到最接近的已存储汇总(MINUTE_5/MINUTE_15 → 10m,HOUR_1/HOUR_6 → 1h,DAY_1 → 1d);响应中的 effectiveInterval 报告实际宽度。未知值返回 400。

响应字段

HistoryResponse饰品按时间分桶的价格序列。
canonicalItemIdstring
规范饰品 id。
namestring
Market hash name。
listingTypestring
SELL_OFFER | BUY_ORDER | SALE_HISTORY。
salesWindowstringnullable
仅当 listingType=SALE_HISTORY 时设置。
effectiveIntervalstring
实际返回的分桶宽度:10m | 1h | 1d。可能与请求的 interval 不同,后者会对齐到这些已存储的汇总粒度。
每个时间分桶一行,从旧到新。

嵌套与共享结构链接到 API 对象 参考页。

错误

400未知的 interval / listingType,或日期范围无效。
401缺少 Authorization 头、认证方案不支持,或密钥未知、未激活、已过期、已吊销。
403密钥有效,但订阅未激活/已过期,或套餐不含此接口。
429超出速率限制;见 Retry-After 与 X-RateLimit-* 响应头。配额按账号合并计算,所有密钥共享。
5xx上游快照不可用或服务端问题。请退避后重试。

使用此端点的指南(英文)

export SKINPRICER_API_KEY="sp_live_•••"

curl -G "https://pricing.skinpricer.com/v1/pricing/AK-47%20%7C%20Redline%20(Field-Tested)/history" \
  --data-urlencode "interval=HOUR_1" \
  -H "Authorization: ApiKey $SKINPRICER_API_KEY"
// npm i @skinpricer/sdk
import { SkinpricerClient } from "@skinpricer/sdk";

const client = new SkinpricerClient({
  apiKey: process.env.SKINPRICER_API_KEY!,
  authScheme: "ApiKey",
});

const series = await client.history.get("AK-47 | Redline (Field-Tested)", { interval: "HOUR_1" });
console.log(series.history.length, "buckets");
import os
import requests

res = requests.get(
    "https://pricing.skinpricer.com/v1/pricing/AK-47%20%7C%20Redline%20(Field-Tested)/history",
    params={"interval": "HOUR_1"},
    headers={"Authorization": f"ApiKey {os.environ['SKINPRICER_API_KEY']}"},
    timeout=10,
)
res.raise_for_status()
print(res.json())
响应 200
{
  "canonicalItemId": "cmlofca920lka01yozajhixt3",
  "name": "Glock-18 | Water Elemental (Factory New)",
  "listingType": "SELL_OFFER",
  "salesWindow": null,
  "effectiveInterval": "1d",
  "history": [
    {
      "timestamp": "2026-05-25T00:00:00.000Z",
      "avgPrice": 4923,
      "medianPrice": 4222,
      "minPrice": 3522,
      "maxPrice": 8805,
      "listingCount": 1442,
      "totalQuantity": null,
      "volume": null,
      "bestBidCents": null,
      "bestAskCents": 3522,
      "spreadBps": null
    }
  ]
}
响应头
X-RateLimit-Limit: <每分钟配额,由套餐决定>
X-RateLimit-Remaining: <本分钟剩余次数>
X-RateLimit-Reset: <距重置的秒数>
X-RateLimit-Remaining-Month: <本月剩余次数,仅限有月度上限的套餐>
X-Request-ID: req_xxxxxxxxxxxxxxxx

使用与许可

API 及其数据的使用受我们的服务条款(英文)约束:不得转售或再分发数据,不得用于构建竞争性服务, 不得超出套餐的速率限制;在条款允许展示数据的场景下须注明数据来源为 SkinPricer。滥用行为可能被限流或封禁。