Skip to main content

属性与磨损分桶的构建方式

属性价格接口上按属性(磨损 / 渐变 / 图案)分桶的构建方式,以及为什么各市场的分桶宽度不同。

分桶并非 SkinPricer 自创的划分。每个市场都按该市场自身的数据分段方式分桶,再对齐到标准的 CS2 外观磨损区间。

buff163:Buff 自己的原生磨损区间

我们接入的是 Buff 的原生磨损数据流,因此磨损分桶就是 Buff 自己的非等宽区间(不是固定宽度)。各外观等级的区间如下:

崭新出厂(FN)0 到 0.01、0.01 到 0.02、0.02 到 0.03、0.03 到 0.04、0.04 到 0.07
略有磨损(MW)0.07 到 0.08、0.08 到 0.09、0.09 到 0.10、0.10 到 0.11、0.11 到 0.15
久经沙场(FT)0.15 到 0.18、0.18 到 0.21、0.21 到 0.24、0.24 到 0.27、0.27 到 0.38
破损不堪(WW)0.38 到 0.39、0.39 到 0.40、0.40 到 0.41、0.41 到 0.42、0.42 到 0.45
战痕累累(BS)0.45 到 0.50、0.50 到 0.63、0.63 到 0.76、0.76 到 0.90、0.90 到 1

steamcommunity、marketcsgo、csfloat、dmarket:等宽 0.01 分桶

这些市场在 0 到 1 上使用等宽 0.01 的分桶:bucketIndex = floor(floatValue * 100)min = index/100max = (index+1)/100。例如 Steam 上的久经沙场为 0.15 到 0.16、0.16 到 0.17、…、0.37 到 0.38——比 Buff 更细,且是不同的方案。切勿假设各市场分桶宽度一致。

通用规则

外观裁剪:每个磨损分桶都限定在该饰品的外观磨损区间内,分桶绝不跨越外观边界。区间为半开区间 [min, max)minInclusive: truemaxInclusive: false)。

除磨损外,饰品还会按渐变百分比、图案 / 模板层级分桶(多普勒相位与宝石会作为变体 / tag 分桶出现)。一个分桶可同时携带磨损+渐变的组合区间。

请始终读取每个分桶的 dimensions 对象获取精确的 min/max 与开闭性;不要从分桶标签推断边界,因为各市场宽度不同。

你们的分桶与其他 API 相比如何?

它们不是一套统一方案。我们镜像每个市场自身的分段方式:Buff 的分桶非等宽,而 Steam 等市场是等宽 0.01。请基于 dimensions.float.min / dimensions.float.max 归一化,而不是跨市场匹配标签。

这些分桶支撑着 /v1/attribute-prices/latest、其历史接口,以及 buff163 专属的 latest / history

使用与许可

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