所有时间戳均为UTC。
如果变更影响数据形状或行为,将标记为重大变更。
2026-10-01
下文中与盘口相关的全部内容——新增的marketType、各项重命名、period 变更——
都仅是数据变更。没有任何端点、字段或类型发生改变,且全部通过
GET /markets(以及 GET /fixtures/markets)提供。
在该日期当天或之后重新拉取一次目录即可保持最新;赔率载荷本身不受影响,
只是会开始携带新的 outcomeId。
新增
GET /{lang}/fixtures/odds/parlay— 根据一组oddsIds计算串关赔率,可跨赛事与运动项目。参见串关与 SGP。GET /{lang}/fixtures/odds/sgp— 计算带相关性的同场串关,由博彩公司报价。price体现相关性,singlesPrice为简单乘积。- 两个新端点上的
missingOddsIds— 列出未能找到的已请求各关,因此空的部分不会产生歧义。 - 所有端点支持
X-API-Key请求头认证,与apiKey查询参数并存。请只使用其中一种。参见认证。 - 新增 64 个电竞
marketType取值和 568 个marketType×period组合——覆盖 Counter-Strike、League of Legends、Dota、Valorant 和 Rainbow Six 的目标类、首个目标与连杀盘口。地图级盘口归入新的sportId83(电竞无尽对决 Mobile Legends)。 - 新增 195 个
period键,全部为子赛段网格——p1r1…p5r36(地图内的回合)与p1g2…p5g6(网球)。词汇表从 19 个取值增长到 213 个,并保持仅追加。
全部 64 个新增 marketType
全部 64 个新增 marketType
电竞目标的总分 / 让分 / 单队总分 —
totals-kills、totals-towers、totals-turrets、totals-dragons、totals-barons、totals-roshans、totals-inhibitors、totals-barracks、totals-rounds、totals-headshots、spreads-kills、spreads-towers、spreads-turrets、spreads-dragons、spreads-roshans、spreads-inhibitors、spreads-barracks、spreads-rounds、teamtotals-kills-team1/-team2、teamtotals-towers-team1/-team2、teamtotals-turrets-team1/-team2、teamtotals-dragons-team1/-team2、teamtotals-barons-team1/-team2、teamtotals-roshans-team1/-team2、teamtotals-inhibitors-team1/-team2、teamtotals-barracks-team1/-team2、teamtotals-rounds-team1/-team2首个目标 — firstblood、firsttower、firstbaron、firstroshan、firstinhibitor、firstbarracks连杀 — triplekill、quadrakill、pentakill其他 — 1x2-kills、drawnobet-kills、oddeven-kills、oddeven-rounds、racetokills、winningmargin-rounds、playertotals-kills、playertotals-headshots、toqualify此前并不存在的重命名目标 — spreads-bookings、players-commitpenalty、players-goalieshutouts、players-goalsagainst、players-nextgoalscorer、players-powerplaypoints、players-secondgoalscorer、players-shorthandedgoals、players-shorthandedgoalscorer、players-thirdgoalscorer。它们之所以是“新增”,只是因为原有盘口迁移到了这些取值——参见下方的重命名对照表。变更
- 24 个
marketType取值被重命名,以统一各运动项目的命名,共影响冰球、足球和板球中的 222 个盘口。单数前缀player-、spread-、total-统一为其他地方已在使用的复数形式players-、spreads-、totals-。 - 74 个盘口的
period发生变化。 其中 28 个由fulltime改为result,覆盖 26 个在常规时间之后不存在计分阶段的运动项目——对它们而言这两个取值本就是同一个数字的两种叫法,参见各项目的周期。另外 46 个原本period为空白,现已填充。全过程marketId均保持不变。 - 已不存在
period为空的盘口。 如果您曾为空字符串做特殊处理,现在可以删掉那个分支。
全部 74 项 period 变更
全部 74 项 period 变更
fulltime → result——26 个运动项目的 1x2 盘口: MMA 203、拳击 213、沙滩排球 303、壁球 343、三人篮球 353、冰壶 393、Padel 403、足球特别项目 443、沙滩手球 473、田径 483、羽毛球 493、草地滚球 503、越野 513、电竞使命召唤 563、电竞守望先锋 573、电竞彩虹六号 583、电竞火箭联盟 593、电竞星际争霸 603、电竞无畏契约 613、电竞传说对决 623、电竞王者荣耀(King of Glory)633、柔道 643、电竞王者荣耀(Honor of Kings)653、速度赛车 663、高尔夫 673、自行车 683。拳击还额外移动了两条 Total Rounds 线(216、218)——它们是该项目最后两个仍停留在 fulltime 的盘口,而拳击其余的 Total Rounds 线早已使用 result。空白 → 已填充,共 46 个盘口:完整的 marketType 重命名对照表
完整的 marketType 重命名对照表
其中 13 项重命名会并入已经存在的
marketType — players-anytimegoalscorer、
players-assists、players-blocks、players-firstgoalscorer、players-goals、
players-lastgoalscorer、players-points、players-saves、players-shots、
players-shotsongoal、spreads-corners、totals-fours 和 totals-sixes
原本就与其单数形式同时存在于注册表中。如果您按 marketType 分组,这些分组只会变大
而不会消失——同一概念下的重复写法被消除了。moneyline → toqualify 这一行是唯一一项并非纯命名调整的改动:一个原本类型为 moneyline 的足球盘口
现在改为 toqualify,这正是它一直以来的实际含义。它也是本次发布中唯一一个 marketName
发生变化的盘口——由 Winner (incl. overtime) 改为 To Qualify。2026-04-09
新增
- 赛事视图:
venue场馆部分 — 所有赛事响应新增嵌套对象,包含venueId、venueName和venueLocation。按语言翻译。 - 赛事视图:
clock时钟部分 — 所有赛事响应新增嵌套对象,包含currentPeriod、currentTime、remainingTime、remainingTimeInPeriod和stopped。在赛事填充时钟数据之前,所有键均为null。 - 赛事视图:
participant1ShortName/participant2ShortName— 赛事响应participants部分新增字段,来源于翻译后的参赛方数据。 - 赛事视图:
seasonRound— 赛事响应season部分新增字段。 - 期货视图:
marketId— 期货响应market部分现包含来自期货表的marketId。名称字段(marketName、marketType、playerMarket、participantMarket)暂时为null。 - 参赛方端点:
participantShortName—GET /{lang}/participants响应现包含每个参赛方的participantShortName。 - 新REST端点:
GET /{lang}/venues?venueIds=...— 返回带有翻译后venueName和venueLocation的场馆数据。 - 新WebSocket频道:
clocks— 按赛事传递实时时钟更新(与scores相同的路由:按fixtureId、运动、赛事过滤)。支持恢复/重放。
重大变更
- 赛事响应结构变更 — 所有赛事端点(REST和WebSocket)现包含三个新顶级键:
venue(对象)、clock(对象),以及更新的participants/season部分。严格解析赛事响应的客户端应更新其模型。season现包含seasonRound: integer | nullparticipants现包含participant1ShortName: string | null和participant2ShortName: string | nullvenue: { venueId, venueName, venueLocation }在season之后添加clock: { currentPeriod, currentTime, remainingTime, remainingTimeInPeriod, stopped }在scores之后添加
- 期货响应结构变更 —
market.marketId现已填充(整数或null),不再始终为null。
2025-12-12
新增
- WebSocket 恢复和重放支持,使用
entryId游标 - 新WebSocket频道:
injurieslineupsstats
- WebSocket网关的AsyncAPI 3.0参考
改进
- 减少了
odds和scores的WebSocket延迟 - 改进了
sportIds、tournamentIds和bookmakers的过滤
修复
- 修复了一些
odds更新在没有博彩公司门控的情况下交付的问题 - 修复了某些赛事在过渡期间
live标志不正确的问题
2025-11-28
重大变更
odds.payload.odds键现在始终是博彩公司范围的- 期望扁平结构的旧客户端必须更新
新增
- 支持
receiveType: "binary"(MessagePack) - 在所有更新消息中添加了
entryId
2025-11-10
新增
- 初始WebSocket网关
- 频道:
fixturesscoresoddsbookmakers