锐矩盘口API专为高并发体育数据平台、量化分析团队与赛事资讯系统打造。通过标准化 RESTful 快照接口与全双工 WebSocket 增量推送流,提供全球足球亚盘、欧赔、大小球、角球盘口及毫秒级滚球封盘信号(Bet-Stop)同步服务。
{
"event_type": "ODDS_DELTA_UPDATE",
"seq_id": 88492014,
"server_ts": 1741529481924,
"latency_ms": 38,
"match_id": "rj_fb_9048217",
"sport_id": 1,
"inplay_clock": { "minute": 67, "second": 42, "bet_stop": false },
"markets_delta": [
{
"market_id": "ah_full_time",
"bookmaker_id": "pinnacle_direct",
"line": "-0.25",
"status": "ACTIVE",
"selections": [
{ "side": "HOME", "decimal": 1.92, "hk_odds": 0.92 },
{ "side": "AWAY", "decimal": 1.98, "hk_odds": 0.98 }
]
}
]
}
解耦传统轮询架构的高延迟瓶颈,按早盘建模、滚球毫秒级推送、赛事危险事件封盘与多语言客户端 SDK 四个工程维度提供标准化接口。
提供赛前早盘(Pre-match)与滚球阶段(In-Play)全量盘口快照及历史水位轨迹查询。内置香港盘(HK)、马来盘(MY)、印尼盘(ID)与欧洲十进制赔率(Decimal)实时无损换算矩阵。
针对高频交易与即时比分联动场景设计的全双工事件流。仅推送发生变动的水位差量包(Delta Payload)与赛场状态帧,大幅降低客户端带宽消耗与反序列化 CPU 开销。
解决跨数据源主客队名称不一致、中立场翻转及多语种联赛命名冲突难题。统一输出全局唯一标准赛事 ID(Unified Match ID),同步聚合 25+ 家核心风控机构初盘与即时盘。
无需从零编写复杂的 WebSocket 心跳维持、断线重连及差量合并逻辑。官方多语言 SDK 内置线程安全的本地盘口树缓存(In-Memory Orderbook),开箱即用。
在滚球交易与高频数据看板场景下,哪怕 500 毫秒的延迟也会导致打水套利穿透或无效注单风险。锐矩盘口API采用无锁环形缓冲区(Lock-free RingBuffer)与全球 BGP Anycast 边缘节点加速,将全链路耗时压缩至物理极限。
通过球场低轨卫星及欧洲/亚洲核心数据中心交叉专线,第一时间捕获进球、红牌与主盘口变水。
基于 Rust 编写的流处理内核,在微秒级内完成异常赔率毛刺过滤、盘口线拆分与统一 Match_ID 绑定。
对比上一状态帧,仅提取变化的盘口节点封装为增量包,体积缩减 84%,消除网络拥塞排队。
智能就近路由接入,支持单租户独立连接池隔离,周末五大联赛洪峰期零丢包、零阻塞。
基于每 5 秒一次的 ICMP / WSS Ping 双向遥测统计
| 性能指标 | 锐矩 WSS Delta 流 | 传统 REST 轮询 |
|---|---|---|
| 平均变水感知延迟 | 25 ~ 45 ms | 1,500 ~ 5,000 ms |
| 危险球封盘响应 | < 15 ms 帧级中断 | 依赖下一次请求周期 |
| 百场同开带宽消耗 | ~1.2 Mbps (Zstd) | > 35 Mbps (全量冗余) |
| 断线数据完整性 | Seq_ID 差量回放 | 中间变水轨迹永久丢失 |
| 赛事层级与代表性联赛 | 早盘提前开盘周期 | 单场盘口种类 (Markets) | 滚球亚盘/大小球线深度 | 赛场事件流 (XY坐标/危险球) |
|---|---|---|---|---|
|
欧洲五大联赛 (英超 / 西甲 / 德甲 / 意甲 / 法甲)
League_Tier: TIER_S_ELITE · 100% 滚球覆盖
|
赛前 14 ~ 21 天 | 280+ 种细分玩法 | 主盘 + 上下 8 条附加盘线 | 毫秒级球场雷达直连 |
|
欧冠 / 欧联 / 解放者杯 / 亚冠精英联赛 / 世界杯
League_Tier: TIER_S_CONTINENTAL · 含加时赛及点球大战盘口
|
抽签落位后 2 小时内 | 260+ 种细分玩法 | 主盘 + 上下 6 条附加盘线 | 毫秒级球场雷达直连 |
|
英冠 / 荷甲 / 葡超 / 土超 / 比甲 / 苏超
League_Tier: TIER_A_EURO_SECOND
|
赛前 7 ~ 10 天 | 190+ 种细分玩法 | 主盘 + 上下 4 条附加盘线 | 全事件流 + 危险进攻锁盘 |
|
日本 J1/J2 联赛 / 韩国 K1 / 澳洲甲 / 巴甲 / 阿甲 / 美职联
League_Tier: TIER_A_APAC_LATAM
|
赛前 5 ~ 7 天 | 185+ 种细分玩法 | 主盘 + 上下 4 条附加盘线 | 全事件流 + 危险进攻锁盘 |
|
欧洲各国丙级/地区联赛 / 国际俱乐部热身赛
League_Tier: TIER_B_REGIONAL
|
赛前 24 ~ 72 小时 | 85+ 种核心玩法 | 主盘 + 上下 2 条附加盘线 | 核心比分/红黄牌/角球同步 |
|
各国U21/U19青年联赛 / 女足顶级联赛與杯赛
League_Tier: TIER_B_YOUTH_WOMEN
|
赛前 12 ~ 48 小时 | 70+ 种核心玩法 | 标准亚盘 / 欧赔 / 大小球 | 核心比分/红黄牌/角球同步 |
涵盖全场(90分钟)、上半场、下半场及加时赛的让球盘(Asian Handicap)与进球大小盘(Over/Under)。针对滚球阶段提供基于当前比分归零重算的“滚球让球盘(0-0 基准)”。
实时输出全场及半场角球让球、角球总数大小、率先获得第 3/5/7/9 个角球归属,以及黄牌/红牌罚牌积分大小盘(黄牌1分、红牌2分计分规则自动标注)。
支持开场 1-15 分钟、16-30 分钟等 15 分钟切片进球/角球盘口;下一粒进球归属(Next Goal)、双方均进球(BTTS)、零封取胜及点球大战每轮命中赔率。
针对五大联赛及欧战赛事,提供首发与替补球员任意时间进球(Anytime Goalscorer)、射正次数大小、助攻及个人领牌实时赔率接口。
全年无休覆盖全球五大洲职业足球与篮球、网球、电竞核心赛事,历史盘口快照归档可回溯至 2016 赛季,满足量化回测与AI模型训练需求。
查看完整足球联赛 ID 列表告别繁琐的私有二进制协议解析。通过标准 HTTP 请求头携带 HMAC-SHA256 签名即可拉取全量盘口快照,或使用 Ticket 令牌建立长连接订阅指定赛事的实时赔率流。
将 API_KEY + Timestamp + Nonce + RequestPath 使用您的 API_SECRET 进行哈希签名,防重放攻击窗口精确控制在 ±30 秒。
调用 /v4/football/odds/snapshot 获取当前在售赛事的完整盘口树及基准 last_seq_id,写入本地 Redis 或内存状态表。
传入 from_seq_id 建立全双工通道,实时消费毫秒级水位跳动与 bet_stop 封盘指令,实现零漏帧平滑衔接。
package main
import (
"context"
"fmt"
"time"
"github.com/odds-api-cn/ruiju-sdk-go/v4/inplay"
)
func main() {
client := inplay.NewStreamClient(&inplay.Config{
AccessKey: "RJ_LIVE_9928347102",
SecretKey: "sk_prod_8f92a7c1e4b09d32...",
Endpoint: "wss://stream.odds-api.com.cn/v4/inplay",
Compression: inplay.CompressionZstd,
AutoRecover: true, // 自动检测Seq_ID断层并触发快照补偿
})
// 订阅英超与欧冠滚球亚盘、大小球及危险球封盘信号
sub := inplay.Subscription{
SportID: 1,
LeagueIDs: []string{"lg_epl_1", "lg_ucl_1"},
Markets: []string{"ah_full_time", "ou_full_time", "ah_corners"},
}
client.OnBetStop(func(ev *inplay.BetStopSignal) {
fmt.Printf("[URGENT LOCK] Match=%s Reason=%s Latency=%dms\n",
ev.MatchID, ev.TriggerReason, time.Since(ev.ServerTime).Milliseconds())
})
client.OnOddsDelta(func(delta *inplay.OddsDeltaPacket) {
fmt.Printf("[SEQ:%d] Match=%s Market=%s Line=%s Home=%.2f Away=%.2f\n",
delta.SeqID, delta.MatchID, delta.MarketID, delta.Line, delta.HomeOdds, delta.AwayOdds)
})
_ = client.ConnectAndSubscribe(context.Background(), sub)
}
import asyncio
import hmac, hashlib, time
from ruiju_odds_sdk import AsyncOddsStreamClient, MarketFilter
async def consume_inplay_odds():
client = AsyncOddsStreamClient(
api_key="RJ_LIVE_9928347102",
api_secret="sk_prod_8f92a7c1e4b09d32...",
region="ap-shenzhen-bgp",
enable_local_orderbook=True
)
@client.on_event("ODDS_DELTA_UPDATE")
async def handle_delta(payload: dict):
if payload["inplay_clock"]["bet_stop"]:
print(f"⚠️ 触发毫秒级危险球锁盘: {payload['match_id']}")
return
print(f"SEQ={payload['seq_id']} | 延迟={payload['latency_ms']}ms | 盘口更新={len(payload['markets_delta'])}条")
await client.subscribe(
sport_id=1,
markets=[MarketFilter.ASIAN_HANDICAP, MarketFilter.OVER_UNDER, MarketFilter.CORNERS]
)
if __name__ == "__main__":
asyncio.run(consume_inplay_odds())
import { RuiJuOddsStream, OddsFormat } from '@odds-api-cn/sdk-node';
const stream = new RuiJuOddsStream({
accessKey: process.env.RUIJU_ACCESS_KEY!,
secretKey: process.env.RUIJU_SECRET_KEY!,
oddsFormat: OddsFormat.HONG_KONG, // 自动输出香港盘与欧赔双字段
heartbeatIntervalMs: 3000,
});
stream.on('betStop', (signal) => {
console.warn(`[BET_STOP] Match ${signal.matchId} suspended at ${signal.minute}'`);
});
stream.on('marketDelta', (packet) => {
for (const m of packet.marketsDelta) {
console.log(`[${packet.seqId}] ${packet.matchId} ${m.marketId} (${m.line}):`, m.selections);
}
});
await stream.connect({ sportId: 1, inplayOnly: true });
import cn.com.oddsapi.sdk.RuiJuStreamClient;
import cn.com.oddsapi.sdk.model.OddsDeltaEvent;
public class InPlayConsumer {
public static void main(String[] args) {
RuiJuStreamClient client = RuiJuStreamClient.builder()
.credentials("RJ_LIVE_9928347102", "sk_prod_8f92a7c1e4b09d32...")
.endpoint("wss://stream.odds-api.com.cn/v4/inplay")
.ringBufferSize(65536) // 内置Disruptor无锁队列
.build();
client.registerDeltaListener((OddsDeltaEvent event) -> {
if (event.isBetStop()) {
RiskEngine.suspendMarketImmediately(event.getMatchId());
return;
}
OrderbookCache.applyDelta(event.getSeqId(), event.getMarketsDelta());
});
client.start();
}
}
基于 Goroutine 协程池与零拷贝 JSON/Protobuf 解析器,单实例可稳定消费全网并发滚球流。
底层采用 Netty NIO 与 LMAX Disruptor 环形队列,提供 Spring Boot 3.x Starter 自动装配模块。
完整 TypeScript 强类型声明(盘口类型、赛事状态枚举),支持 Node.js 与 Bun 高速运行时。
基于 asyncio 与 orjson 加速,内置历史盘口转 Pandas DataFrame / Polars 量化分析工具集。
体育盘口系统最大的挑战在于周六日晚间欧洲联赛集中开赛时的瞬时百倍流量脉冲。深圳锐矩数智科技有限公司为企业级订阅伙伴提供独立物理隔离网关、双活数据中心热备切换与 7×24 小时 NOC 值守工程师直通支持。
支持 IP 白名单专线直连,消除公共网关邻居噪声干扰,快照请求配额最高可扩展至 5,000 req/s。
当您的下游服务升级重启时,可通过任意历史时间戳或 Seq_ID 完整重放错过的滚球变水与结算信号。