Skip to main content

数据流内容

针对长期或赛季投注市场(“期货”)的实时赔率更新,以 futureId 为范围。 每次更新包含每个博彩商的每个结果的一个或多个价格。 赔率按 bookmaker 分组,并在每个博彩商内按结果进行键控。

路由

  • 实体键:payload.futureId
  • 过滤器:sportIdstournamentIdsfutureIdsbookmakers
  • 博彩商授权:✅ 是

传输语义

  • 此频道是高吞吐量
  • 更新是仅最新状态
  • 如果客户端滞后,中间赔率可能被合并或丢弃
  • 不要依赖逐笔传输 — 将其视为状态流

负载结构

oddsId:
<futureId>:<bookmaker>:<outcomeId>:<participantId>:<playerId>

结果对象(完整架构)

oddsFutures 映射中的每个条目都是一个结果,类似于 odds 频道中使用的结果。
字段类型描述
bookmakerstring博彩商标识(如 "stake""pinnacle""polymarket"
outcomeIdinteger结果ID
participantIdinteger | null赔率适用的参赛方(队伍/选手)
playerIdinteger选手ID(非选手盘口为 0
pricenumber小数赔率
activeboolean结果当前是否可用
bookmakerOutcomeIdstring | null博彩商原生结果ID
bookmakerChangedAtinteger | null博彩商提供的更新时间戳(毫秒)
priceFractional`string`分数赔率(如 "5/2"
priceAmerican`integer`美式赔率(如 +200-120
limitnumber | null最大允许投注额(如适用)
betslipstring | null可选的博彩商投注单/深链接信息
metaobject | null博彩商特定元数据(如阶梯、刻度)
changedAtinteger网关接收时的纪元毫秒(UTC)

示例:传统博彩商期货赔率

{
  "channel": "oddsFutures",
  "type": "UPDATE",
  "payload": {
    "futureId": "id11028543137888",
    "oddsFutures": {
      "stake": {
        "id11028543137888:stake:141:5432:0": {
          "bookmaker": "stake",
          "outcomeId": 141,
          "participantId": 5432,
          "playerId": 0,
          "price": 4.25,
          "active": true,
          "priceAmerican": +325,
          "priceFractional": "13/4",
          "limit": 500,
          "changedAt": 1766940100000
        }
      }
    }
  },
  "ts": 1766940100023,
  "entryId": "1766940100023-456"
}

示例:带订单簿元数据的预测市场赔率

{
  "channel": "oddsFutures",
  "type": "UPDATE",
  "payload": {
    "futureId": "id11028543137888",
    "oddsFutures": {
      "polymarket": {
        "id11028543137888:polymarket:141:5432:0": {
          "bookmaker": "polymarket",
          "outcomeId": 141,
          "participantId": 5432,
          "playerId": 0,
          "price": 3.25,
          "active": true,
          "bookmakerOutcomeId": "abc123xyz",
          "limit": 50,
          "meta": {
            "back": [
              { "price": 3.25, "size": 20 },
              { "price": 3.10, "size": 40 }
            ],
            "lay": [
              { "price": 3.40, "size": 15 }
            ]
          },
          "changedAt": 1766940123456
        }
      }
    }
  },
  "ts": 1766940123458,
  "entryId": "1766940123458-501"
}

实现指南

  • 始终使用 oddsId 作为赔率的唯一ID
  • 根据需要归一化价格(小数 → 美式等)
  • futureId 关联到:
  • 使用 active=false 暂停显示或投注逻辑
  • 保留 meta 中的所有字段,即使未使用(以保持向前兼容性)