Skip to main content
GET/v1/nbbo/depthDEVELOPER+

挂单深度

NBBO 附近的聚合挂单深度:排序后的在售与求购档位,含累计数量及各市场的贡献报价。用 depth 设置档位数(1 到 50,默认 10)。价格为整数美分。

把 NBBO 附近的挂单簿聚合为排序档位(asks 从低到高、bids 从高到低),每档携带 cumulativeQuantity,可直接读出距盘口 X 美分内有多少量。

每档列出构成它的各市场 quotes,因此你能看到每个价位的流动性来自哪些平台。用 depth(1 到 50,默认 10)设置每边的档位数。

按游戏区分的版本:GET /v2/nbbo/depth 通过必填参数 game=cs2|rust 同时服务两款游戏,见游戏:CS2 与 Rust。

参数

market_hash_namestring可选
查询参数。精确的 market hash name。此参数与 id 二选一(都缺失返回 400)。
idstring可选
查询参数。规范饰品 id。此参数与 market_hash_name 二选一(都缺失返回 400)。
marketsstring可选
查询参数。用于限定响应的市场 id CSV。
depthinteger可选
查询参数。每边档位数,1 到 50。默认:10。

响应字段

DepthResponseNBBO 附近的聚合挂单深度。
marketHashNamestring
Market hash name。
canonicalItemIdstring
规范饰品 id。
depthinteger
每边请求的档位数(1 到 50)。
marketCountinteger
参与的市场数。
排序后的在售档位,最优在前。
排序后的求购档位,最优在前。
spreadBpsintegernullable
盘口价差(基点)。与 /v1/nbbo 和 /v1/pricing 不同,不做裁剪:盘口交叉时可能很大或为负。
lockedboolean
盘口求购价 == 盘口在售价。
crossedboolean
返回的深度中,存在新鲜的可现金变现求购价在扣除预估卖方佣金后仍高于新鲜的现金在售价时为 true。Steam 钱包、机器人报价、未知与过期报价无法触发,因此 spreadBps 为负时 crossed 仍可能为 false。
calculatedAtstring (date-time)
计算时间。

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

错误

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

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

export SKINPRICER_API_KEY="sp_live_•••"

curl -G "https://pricing.skinpricer.com/v1/nbbo/depth" \
  --data-urlencode "market_hash_name=AK-47 | Redline (Field-Tested)" \
  --data-urlencode "depth=10" \
  -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 book = await client.nbbo.depth({ marketHashName: "AK-47 | Redline (Field-Tested)", depth: 10 });
console.log(book.asks.length, "ask levels,", book.bids.length, "bid levels");
import os
import requests

res = requests.get(
    "https://pricing.skinpricer.com/v1/nbbo/depth",
    params={"market_hash_name": "AK-47 | Redline (Field-Tested)", "depth": "10"},
    headers={"Authorization": f"ApiKey {os.environ['SKINPRICER_API_KEY']}"},
    timeout=10,
)
res.raise_for_status()
print(res.json())
响应 200
{
  "marketHashName": "Glock-18 | Water Elemental (Factory New)",
  "canonicalItemId": "cmlofca920lka01yozajhixt3",
  "depth": 4,
  "marketCount": 14,
  "asks": [
    {
      "rank": 1,
      "price": 6240,
      "quantity": 23,
      "ordersCount": 23,
      "marketCount": 1,
      "cumulativeQuantity": 23,
      "updatedAt": "2026-06-23T17:53:23.000Z",
      "isStale": true,
      "quotes": [
        {
          "market": "dmarket",
          "level": 1,
          "price": 6240,
          "quantity": 23,
          "ordersCount": 23,
          "updatedAt": "2026-06-23T17:53:23.000Z",
          "isStale": true
        }
      ]
    }
  ],
  "bids": [
    {
      "rank": 1,
      "price": 9145,
      "quantity": 1,
      "ordersCount": 1,
      "marketCount": 1,
      "cumulativeQuantity": 1,
      "updatedAt": "2026-06-23T20:23:03.000Z",
      "isStale": true,
      "quotes": [
        {
          "market": "steamcommunity",
          "level": 1,
          "price": 9145,
          "quantity": 1,
          "ordersCount": 1,
          "updatedAt": "2026-06-23T20:23:03.000Z",
          "isStale": true
        }
      ]
    }
  ],
  "spreadBps": -3177,
  "locked": false,
  "crossed": false,
  "calculatedAt": "2026-06-23T22:07:15.107Z"
}
响应头
X-RateLimit-Limit: <每分钟配额,由套餐决定>
X-RateLimit-Remaining: <本分钟剩余次数>
X-RateLimit-Reset: <距重置的秒数>
X-RateLimit-Remaining-Month: <本月剩余次数,仅限有月度上限的套餐>
X-Request-ID: req_xxxxxxxxxxxxxxxx

使用与许可

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