Skip to main content
GET/v1/nbboDEVELOPER+

NBBO:全市场最优买卖价

单件 CS2 饰品在所有已接入市场上的 NBBO(全市场最优买卖价),附新鲜度元数据、基点价差与置信度评分。可按 id(规范 id)或 market_hash_name 查询,可选用 markets CSV 收窄范围。价格为整数美分。

NBBO 回答一个问题:同时看*所有*市场,现在买入的最优价是多少、卖出的最优价是多少?bestAsk 是全场最低在售价(并标明来源市场);bestBid 是全场最高求购价;两者之间的差就是 spreadBps,以基点计。

并非每件饰品都有双边市场。当没有任何市场存在求购单时,bestBidspreadBps 返回 null——这是正常情况,不是错误(见 null 与部分数据)。confidence(0 到 1)综合了参与市场数量、数据新鲜度与跨市场一致性,可用来对单薄或过期的读数做降权。

locked(求购价 == 在售价)与 crossed(求购价 > 在售价)标记跨市场报价倒挂的罕见时刻,通常是一边的报价先于另一边刷新而过期。若你的策略依赖价差,请据此过滤。

默认情况下 bestBid 只统计可现金变现的市场(Steam 钱包余额与以物易物额度类平台被排除),因此默认的跨市场求购价是真正能变现的价格。传入 markets CSV 则改为逐字采信每个被请求平台的求购价。这也是 /v1/pricingbestBid(统计所有平台)可能与本接口不同的原因,不要假设两者相等。

spreadBps 超过 10000 基点(±100%)时会被置为 null 以剔除垃圾求购价;交叉(负)价差会保留。若要的是可实际执行的价差而非标价价差,请读取可为 null 的 executionAdjusted 块:它在扣除手续费并按可执行性折价后对双边重新定价,并带有自己的 spreadBpsexecutableConfidence

想要完整的按市场拆解而不只是最优两边?用 /v1/pricing/:marketHashName。想看盘口之下的挂单深度?用 /v1/nbbo/depth

Parameters

market_hash_namestringoptional
查询参数。精确的 market hash name。此参数与 id 二选一(都缺失返回 400)。
idstringoptional
查询参数。规范饰品 id。此参数与 market_hash_name 二选一(都缺失返回 400)。
marketsstringoptional
查询参数。用于限定响应的市场 id CSV,例如 csfloat,buff163。传入后还会覆盖默认的"仅现金变现市场"的 bestBid 过滤规则:所有被请求平台的求购价将被逐字采信。

Response fields

NbboResponse单件饰品在所有已接入市场上的最优求购价 + 最优在售价。
marketHashNamestring
饰品的 Steam market hash name。
canonicalItemIdstring
SkinPricer 的规范饰品 id。
bestAskQuotenullable
全市场最低在售价。无新鲜在售价时为 null。
bestBidQuotenullable
全市场最高求购价。默认(全市场)视图下仅统计可现金变现的市场,见下方 bestBid 说明。没有符合条件的求购价时为 null。
spreadBpsintegernullable
bestAsk − bestBid,以基点计。缺少任一边时为 null;超过 10000 基点(±100% 价差,几乎总是过期/异常求购价)时也被置为 null。负(交叉)价差会保留。
marketCountinteger
提供报价的市场数。
freshMarketCountinteger
其中仍新鲜的市场数。
lockedboolean
bestBid == bestAsk(零价差)时为 true。
crossedboolean
bestBid > bestAsk(短暂倒挂)时为 true。
confidencenumber
由覆盖度、新鲜度与一致性得出的 0 到 1 置信度。
executionAdjustedExecutionAdjustedNbbonullable
扣费并按可执行性折价后的"真实最优市场"(SP-261)。无法计算时为 null。详见专属对象。
calculatedAtstring (date-time)
本次 NBBO 的计算时间。

嵌套与共享结构链接到 API Objects 参考页(英文)。

Response 200

{
  "marketHashName": "Glock-18 | Water Elemental (Factory New)",
  "canonicalItemId": "cmlofca920lka01yozajhixt3",
  "bestAsk": {
    "market": "csfloat",
    "price": 6500,
    "updatedAt": "2026-06-23T21:52:27.427Z",
    "isStale": false
  },
  "bestBid": {
    "market": "buff163",
    "price": 6440,
    "updatedAt": "2026-06-23T21:59:48.717Z",
    "isStale": false
  },
  "spreadBps": 93,
  "marketCount": 10,
  "freshMarketCount": 9,
  "locked": false,
  "crossed": false,
  "confidence": 0.81,
  "executionAdjusted": {
    "bestAsk": {
      "market": "csfloat",
      "price": 6500,
      "rawPrice": 6500,
      "appliedFeeBps": 0,
      "executability": 0.92,
      "updatedAt": "2026-06-23T21:52:27.427Z",
      "isStale": false,
      "reasons": []
    },
    "bestBid": {
      "market": "buff163",
      "price": 6118,
      "rawPrice": 6440,
      "appliedFeeBps": 500,
      "withdrawalFlatUsdCents": 0,
      "executability": 0.74,
      "updatedAt": "2026-06-23T21:59:48.717Z",
      "isStale": false,
      "reasons": ["assumed_fees"]
    },
    "spreadBps": 624,
    "locked": false,
    "crossed": false,
    "executableConfidence": 0.7,
    "reasons": ["assumed_fees"],
    "feeModelVersion": "2026-06-01",
    "calculatedAt": "2026-06-23T22:07:13.402Z"
  },
  "calculatedAt": "2026-06-23T22:07:13.395Z"
}

Errors

400market_hash_nameid 均未提供。
404饰品不存在。
401缺少 Authorization 头、认证方案不支持,或密钥未知、未激活、已过期、已吊销。
403密钥有效,但订阅未激活/已过期,或套餐不含此接口。
429超出速率限制;见 Retry-After 与 X-RateLimit-* 响应头。配额按账号合并计算,所有密钥共享。
curl "https://pricing.skinpricer.com/v1/nbbo" \
  -H "Authorization: ApiKey sk_live_•••••••••••"
Response headers
X-RateLimit-Limit: <per-minute, set by your plan>
X-RateLimit-Remaining: <remaining this minute>
X-RateLimit-Reset: <seconds to reset>
X-Request-ID: req_xxxxxxxxxxxxxxxx

使用与许可

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