GET通过 Slug 获取订单簿

使用市场 slug 检索特定结果的当前订单簿(买单和卖单)。此端点专为 WebSocket 信号设计,WebSocket 使用基于 slug 的频道名称(market:{slug}:orderbook)。

请求

GET /v1/markets/slug/:slug/orderbook

路径参数

参数类型必填描述
slugstring市场 URL slug(例如 will-btc-hit-100k

查询参数

参数类型必填描述
outcomeIdstring获取订单簿的结果 ID

响应

{
  "outcomeId": "outcome-uuid-1",
  "outcomeSide": "Yes - YES",
  "bids": [
    { "price": "0.650", "shares": "500.00" },
    { "price": "0.640", "shares": "300.00" },
    { "price": "0.620", "shares": "150.00" }
  ],
  "asks": [
    { "price": "0.680", "shares": "200.00" },
    { "price": "0.700", "shares": "400.00" },
    { "price": "0.750", "shares": "100.00" }
  ]
}

响应字段

字段类型描述
outcomeIdstring此订单簿代表的结果 ID
outcomeSidestring结果名称和方向的组合(例如 Yes - YESTrump - YES
bidsarray买单,按价格降序排列
asksarray卖单,按价格升序排列
bids[].pricestring买入价格(3位小数)
bids[].sharesstring此价格水平的总份额

WebSocket 集成

此端点设计用于在 market:{slug}:orderbook 频道收到 WebSocket 信号后调用:

// 1. 订阅 WebSocket 频道
socket.emit('join', { channel: 'market:will-btc-hit-100k:orderbook' });

// 2. 收到信号后,使用相同的 slug 获取更新数据
socket.on('market:will-btc-hit-100k:orderbook', async (data) => {
  const response = await fetch('/v1/markets/slug/will-btc-hit-100k/orderbook?outcomeId=outcome-uuid-1');
  const orderbook = await response.json();
});

这消除了维护 slug-to-UUID 映射的需要,因为 WebSocket 频道和 REST API 使用相同的 slug 标识符。

错误

状态码描述
400缺少 outcomeId 或结果不属于此市场
404未找到市场或结果

示例

curl "https://api.conviction.bet/v1/markets/slug/will-btc-hit-100k/orderbook?outcomeId=outcome-uuid-1"