API 文档

V球数据提供 RESTful API,方便个人分析师和 AI 系统接入足球高阶数据。 所有 API 均需通过 API Key 鉴权,返回统一 JSON 格式。

快速开始

1. 获取 API Key

注册账号并登录后,此处将自动显示您的专属 API Key。

2. 鉴权方式

在 HTTP 请求头中携带 X-API-Key 字段:

X-API-Key: vq_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

3. 基础 URL

https://vfootball.cn/api/open/

4. 响应格式

所有接口返回统一 JSON 格式:

{
  "success": true,
  "data": { ... },
  "error": "错误信息(仅失败时)"
}

5. 调用额度与突发保护

包月 / 每日

10,000 次

突发 200 次/分钟

包季 / 每日

20,000 次

突发 600 次/分钟

包年 / 每日

50,000 次

突发 1,200 次/分钟

每日额度按北京时间自然日重置;/api/open/schema 不消耗额度,数据端点进入合法路由后计 1 次(参数错误或上游错误也计入)。超出返回 429,请按 Retry-After 退避重试,并通过 X-RateLimit-Remaining 与 X-RateLimit-Burst-Remaining 观察剩余额度。赔率相关接口读取的是平台自有赔率变动流,仍计入平台每日调用额度。

代码示例
Python
import requests

API_KEY = "你的_API_Key"
BASE_URL = "https://vfootball.cn/api/open"

headers = {
    "X-API-Key": API_KEY
}

# 获取今日比赛列表
response = requests.get(
    f"{BASE_URL}/matches",
    headers=headers,
    params={"status": "notstarted", "limit": 10}
)
data = response.json()
print(data)
JavaScript / Node.js
const API_KEY = "你的_API_Key";
const BASE_URL = "https://vfootball.cn/api/open";

// 获取比赛详情(含赔率 + 统计)
async function getMatchAnalysis(matchId) {
  const headers = { "X-API-Key": API_KEY };

  const [detail, odds, stats] = await Promise.all([
    fetch(`${BASE_URL}/matches/detail?match_id=${matchId}`, { headers }),
    fetch(`${BASE_URL}/matches/odds?match_id=${matchId}`, { headers }),
    fetch(`${BASE_URL}/matches/stats?match_id=${matchId}`, { headers }),
  ]);

  return {
    detail: await detail.json(),
    odds: await odds.json(),
    stats: await stats.json(),
  };
}

getMatchAnalysis(12345).then(console.log);
cURL
# 获取联赛积分榜
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/leagues/standings?league_id=1"

# 获取比赛赔率
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/odds?match_id=12345"

# 获取比赛必发指数(各市场成交资金分布)
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/wom?match_id=12345"

# 获取资金流完整变化点(时间戳 + 新增成交 + 异动标记)
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/wom-history?match_id=12345&market=1X2_HOME_FT&limit=500"

# 获取赔率变动序列(初盘 → 每次变动 → 当前,可按 phase 只看滚球盘)
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/odds/flow?match_id=12345&phase=live"

# 获取多公司水位面板(轻量,适合 5~15 秒轮询)
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/odds/board?match_id=12345"

# 批量获取多场水位面板(最多 20 场)
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/odds/board/batch?match_ids=12345,67890"

# 获取竞彩官方在售比赛(聚合)
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/jc/matches"

# 获取单场竞彩玩法(平台 match_id 反查)
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/jc?match_id=12345"

# 获取滚球实时数据(实时比分/xG/事件流/实时赔率,仅进行中比赛)
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/live?match_id=12345"

# 获取滚球关键指标分钟级时序
curl -H "X-API-Key: 你的_API_Key" \
  "https://vfootball.cn/api/open/matches/live-series?match_id=12345&minutes=30"

接口列表

联赛
GET/api/open/leagues

获取所有联赛列表

示例:

https://vfootball.cn/api/open/leagues
GET/api/open/leagues/standings

获取联赛积分榜

参数:

league_idint必填联赛 ID

示例:

https://vfootball.cn/api/open/leagues/standings?league_id=1
GET/api/open/leagues/stats

获取联赛统计数据(场均 xG/xGA 等)

参数:

league_idint必填联赛 ID

示例:

https://vfootball.cn/api/open/leagues/stats?league_id=1
GET/api/open/leagues/teams

获取联赛球队列表

参数:

league_idint必填联赛 ID

示例:

https://vfootball.cn/api/open/leagues/teams?league_id=1
比赛
GET/api/open/matches

获取比赛列表(支持筛选;包月及以上套餐不传日期时默认返回近 30 天的比赛,可直接拉近一个月)。已完赛场次含半场比分字段 home_score_ht / away_score_ht。每场含 has_3d 字段(3D 数据覆盖标识:true = 该场有 3D 直播/3D 回放数据覆盖,可用于筛选与徽标展示)。队伍/联赛名同时返回原文(home_team 等,英文/西语等原始命名)与平台中文译名(home_team_cn / away_team_cn / league_name_cn,未收录为 null)

参数:

league_idint可选联赛 ID 筛选
team_idint可选球队 ID 筛选
statusstring可选状态筛选。live=所有进行中比赛(聚合值);单值白名单:notstarted / firsthalf / halftime / secondhalf / overtime / inprogress / finished / postponed / canceled / interrupted,非法值返回 400 及合法值列表
date_fromstring可选开始日期(YYYY-MM-DD);数据窗按套餐分级:试用24小时/包月30天/包季90天/包年365天,早于套餐窗口返回 400
date_tostring可选结束日期(YYYY-MM-DD),缺省为今天
limitint可选每页条数(默认 50,拉取近一个月全量请配合 offset 分页,见响应 pagination.total)
offsetint可选分页偏移
orderingstring可选排序(如 -event_date)

示例:

https://vfootball.cn/api/open/matches?status=finished&limit=200&offset=0
GET/api/open/matches/detail

获取比赛详情(含场地、天气、裁判、上座等环境信息;has_3d 字段标识该场是否有 3D 直播/回放数据覆盖)

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/detail?match_id=600981
GET/api/open/matches/availability

获取单场数据能力探测结果:stats / lineups / incidents / shotmap / xg / momentum / average_positions / player_stats / prediction / broadcasts / odds 哪些模块可用,并返回 lineup_status、stat_keys、odds_markets,便于客户端跳过无效请求

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/availability?match_id=223067
GET/api/open/fixtures/changes

按 since 水位增量查询赛程变更(开赛时间、状态、场地、转播等)。返回 changes[] 与 truncated;平台内部默认每 10 分钟同步并失效相关详情缓存,客户端可用 until 或最大 changed_at 作为下一次水位

参数:

sincestring必填查询起点(ISO 8601)
league_idint可选联赛 ID 筛选
changestring可选变更类型筛选,如 kickoff_changed / status_changed / venue_changed / broadcast_added
limitint可选返回上限,默认 200,最大 500

示例:

https://vfootball.cn/api/open/fixtures/changes?since=2026-09-26T00:00:00Z
GET/api/open/matches/stats

获取比赛统计数据(控球率、射门、xG 等)。口径说明:tackles_won 为抢断成功率(0-100 百分数,非次数;0% 时可能返回 null,请按 0 处理);xg 为对象 {actual: 数值, estimated: 是否估算值}

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/stats?match_id=12345
GET/api/open/matches/stats/batch

批量获取比赛统计(按联赛+日期范围,或按指定比赛 ID 列表)

参数:

league_idint可选联赛 ID(与 ids 二选一)
idsstring可选比赛 ID 列表,逗号分隔(与 league_id 二选一,如 213523,213524)
date_fromstring可选开始日期 YYYY-MM-DD
date_tostring可选结束日期 YYYY-MM-DD
statusstring可选比赛状态,默认 finished
has_xgboolean可选是否仅含有 xG 的比赛
limitint可选每页数量
offsetint可选偏移量

示例:

https://vfootball.cn/api/open/matches/stats/batch?ids=213523,213524
GET/api/open/matches/prediction

获取赛前预测数据(含预期进球 xG),未开赛比赛生成、可用于赛前 xG 取值(expected_goals.home/away);开赛后仍返回赛前生成值。meta 字段说明:generated_at 生成时间 / feature_cutoff_at 特征截止时间(上游未单独提供,赛前模型截止即生成时刻,为 null)/ includes_lineups 是否含首发(恒 false)/ includes_latest_odds 是否保证含最新赔率(恒 false)。仅含概率数据,不含投注建议。404 时区分 error_code:match_not_found(比赛不存在)/ no_prediction_data(比赛存在但无预测)

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/prediction?match_id=213559
GET/api/open/matches/odds

【变动流·单场赔率】全量公司(上游有多少家就返回多少家,主推 6 家:皇**/易**博/Bet***/伟**/1xb*/18b*)× 3 个市场(欧赔/亚盘/大小球)的当前水位与真初盘,来自平台赔率变动流(赛前与滚球共用同一序列,15 秒级更新)。半场盘(半场亚盘/半场大小球)已下架。纯读库、不消耗上游额度、不限调用频率。数值口径:eur 为小数赔率;亚盘/大小球为香港水位(小数赔率 = 水位 + 1;亚盘负值 = 主队让球;大小球 home = 大球、away = 小球)。变动流暂无该场数据时自动降级平台备用赔率源(source=platform_backup);backup=always 可让两路一起返回;prematch_only=1 取赛前口径(当前值=初盘)。main_lines 返回平台主盘口元数据(无主盘信息为 null)。series=1 附带变动序列。已结束比赛在保留期内照常可拉:current 即终盘水位、phase 为 live,series=1 可还原整场轨迹;超出保留期(30 天)后本接口自动降级为备用源多公司赔率(source=platform_backup),不再提供逐点序列

参数:

match_idint必填比赛 ID(也可用路径 /matches/{id}/odds)
booksstring可选公司过滤:crown/easybets/bet365/weide/1xbet/18bet/ladbrokes/williamhill/vcbet/mansion88/interwetten/10bet/12bet/sbobet/bwin 等(逗号分隔),默认全部(只返回该场有数据的公司)
marketsstring可选市场过滤:eur/ah/ou,逗号分隔,默认全部(半场盘已下架,传入会被忽略;别名 market)
seriesint可选series=1 附带每家公司每个市场的变动序列观测点
backupstring可选auto(默认,变动流无数据才降级)/ always(两路一起返回)/ never(只用变动流)
prematch_onlyint可选prematch_only=1 只取赛前口径(由备用源还原,当前值=初盘)
since / since_minutesstring可选只取该时刻之后(ISO 8601)或最近 N 分钟的观测点(上限 30 天)
limitint可选每组观测点上限,默认 200,上限 2000;上限按「行数」计,欧赔 1 个观测点占 3 行、亚盘/大小球占 2 行,默认 200 只覆盖尾部窗口,要取整场完整轨迹请传 limit=2000

示例:

https://vfootball.cn/api/open/matches/odds?match_id=12345&series=1
GET/api/open/matches/odds/flow

【变动流·序列专线】返回每家公司在每个市场上的完整观测点序列、首个观测、当前值、相邻前一点、涨跌方向与换档点,用于还原「初盘 → 每次变动 → 当前」全过程或绘制走势图。phase 按开赛时间只取赛前盘/滚球盘。纯读库、不消耗上游额度;序列保留 30 天。已结束比赛照常可拉(阶段按开赛时间判定,赛后观测为 live);仅覆盖保留期内的场次,超期返回 404 no_odds_flow

参数:

match_idint必填比赛 ID(也可用路径 /matches/{id}/odds/flow)
booksstring可选公司过滤,逗号分隔,默认全部
marketsstring可选市场过滤,逗号分隔,默认全部
phasestring可选prematch=赛前盘 / live=滚球盘 / all=全部(默认)
since / since_minutesstring可选只取该时刻之后或最近 N 分钟的观测点(上限 30 天)
limitint可选每组观测点上限,默认 200,上限 2000;上限按「行数」计,欧赔 1 个观测点占 3 行、亚盘/大小球占 2 行,默认 200 只覆盖尾部窗口,要取整场完整轨迹请传 limit=2000

示例:

https://vfootball.cn/api/open/matches/odds/flow?match_id=12345&phase=live&limit=200
GET/api/open/matches/odds/board

【变动流·轻量面板】全量公司 × 5 个市场的当前值 + 相邻前一点 + 涨跌方向,载荷 KB 级,适合 5~15 秒轮询盯盘(不含初盘与序列点)。纯读库、不消耗上游额度、不限调用频率。已结束比赛可用它取终盘水位(current),超期或该场无变动流数据时 available=false

参数:

match_idint必填比赛 ID(也可用路径 /matches/{id}/odds/board)
booksstring可选公司过滤,逗号分隔,默认全部
marketsstring可选市场过滤,逗号分隔,默认全部

示例:

https://vfootball.cn/api/open/matches/odds/board?match_id=12345
GET/api/open/matches/odds/board/batch

【变动流·批量面板】一次取多场(最多 20 场)的当前水位与涨跌方向,整批按「公司 × 市场」一次取数,查询开销与单场同量级。每场结构同 /matches/odds/board。纯读库、不消耗上游额度

参数:

match_idsstring必填比赛 ID 列表,逗号分隔(最多 20 场,超出截断并返回 truncated=true)
booksstring可选公司过滤,逗号分隔,默认全部
marketsstring可选市场过滤,逗号分隔,默认全部
limitint可选每组观测点上限,默认 60

示例:

https://vfootball.cn/api/open/matches/odds/board/batch?match_ids=12345,67890
GET/api/open/matches/wom

获取比赛必发指数数据(Weight of Money),随进阶版会员开放、无需另行购买。返回各市场资金分布和成交额。单位口径(2026-09 修正统一):share 资金占比(%)、implied_probability 隐含概率(%)、pnl_pct 庄家盈亏率(%)(如 5.23 表示 5.23%,百分点值非小数)、payout 市场返还率(%);volume 成交额单位 EUR。404 时区分 error_code:match_not_found(比赛不存在)/ no_wom_data(比赛存在但未开盘或流动性不足)

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/wom?match_id=12345
GET/api/open/matches/wom-history

【资金流·变化点序列】返回单场从赛前、滚球到完赛的资金流变化点。每个点带采集时间戳、累计成交、相邻点新增成交、资金份额、价格隐含概率、资金偏离与异动标记;适合绘图、增量同步、资金异动检测和智能体赛后转述。留存 30 天,实际可查窗口按套餐开放;留存优先,缺失或过旧时实时回源并归档

参数:

match_idint必填比赛 ID(也可用路径 /matches/{id}/wom-history)
market / marketsstring可选市场键或逗号分隔市场键列表,默认全部;如 1X2_HOME_FT
point / pointsstring可选关键点快捷查询:first=首个记录,last_prematch=开赛前最后一条赛前记录,latest=最新/终盘记录(closing 为别名);逗号分隔可组合,可与 since/until 限定时间窗,但不能与 phase/anomaly/limit 组合
phasestring可选all=全部 / prematch=赛前 / live=滚球 / postmatch=完赛后(默认 all)
since / untilstring可选时间窗过滤,ISO 8601 格式;增量拉取时传上一轮最后一个点的 t
anomalyint可选=1 时只返回异动事件点:初始偏离超阈、进入 ±5pp 偏离带,或带内单点变化 ≥2pp
limitint可选每个市场返回的尾部变化点数量,默认不截断,上限 5000;只需要尾部窗口时可传 limit

示例:

https://vfootball.cn/api/open/matches/wom-history?match_id=12345&market=1X2_HOME_FT&point=first,last_prematch,latest
GET/api/open/matches/h2h

获取历史交锋记录

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/h2h?match_id=12345
GET/api/open/matches/lineups

获取阵容信息。lineup_status=predicted 为预测首发,每队含 confidence(整体置信度),首发/替补球员含 ai_score(模型置信度);lineup_status=confirmed 为官方首发,官方名单公布后预测字段可能为 null

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/lineups?match_id=12345
GET/api/open/matches/shotmap

获取射门地图数据

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/shotmap?match_id=12345
GET/api/open/matches/injuries

获取伤病信息

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/injuries?match_id=12345
GET/api/open/matches/jc

获取单场比赛竞彩官方玩法(胜平负/让球胜平负/总进球/半全场/比分赔率)。通过平台 match_id 反查竞彩,仅展示已匹配竞彩的场次

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/jc?match_id=12345
GET/api/open/matches/live

滚球实时数据聚合(仅进行中比赛有实时数据;已结束比赛返回赛果快照)。含实时比分/半场比分/实时统计(实时 xG、每分钟 xG 曲线、攻防势头、射门地图)/实时事件流/滚球实时赔率/PPDA 序列。odds 赔率对象含元信息:update_time 平台抓取时间(疑似数日前的旧盘可用此判断新鲜度)、phase 盘口阶段(prematch=赛前盘 / live=滚球盘)、is_live 是否滚球盘(布尔)。单点按需刷新:仅被调用时触发该场数据更新,无人调用不打上游

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/live?match_id=12345
GET/api/open/matches/incidents

获取比赛事件流(进球/红黄牌/换人/角球等关键事件),滚球中为实时数据

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/incidents?match_id=12345
GET/api/open/matches/player-stats

获取单场球员统计(评分/进球/助攻/xG/xA/传球/抢断/对抗等),滚球中为实时数据

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/player-stats?match_id=12345
GET/api/open/matches/live-series

获取滚球关键指标分钟级时序(势头/PPDA 等按分钟序列),用于绘制滚球走势图

参数:

match_idint必填比赛 ID
minutesint可选回看分钟数(5~180,默认 60)

示例:

https://vfootball.cn/api/open/matches/live-series?match_id=12345&minutes=30
GET/api/open/jc/matches

获取竞彩官方全部在售比赛(含全部玩法赔率与平台匹配信息),供竞彩用户集中查看

示例:

https://vfootball.cn/api/open/jc/matches
GET/api/open/bd/matches

获取北单官方全部在售比赛(含让球胜平负/总进球/半全场/比分/上下单双玩法赔率与平台匹配信息),供北单用户集中查看

示例:

https://vfootball.cn/api/open/bd/matches
GET/api/open/bd/match

获取单场北单详情(当前赛程优先,翻页/停售后退 7 天本地留存)。传 bd_match_id(bd+数字,从 /bd/matches 的 matchId 获得)

参数:

bd_match_idstring必填北单场次 ID(bd+数字)

示例:

https://vfootball.cn/api/open/bd/match?bd_match_id=bd2041616
GET/api/open/matches/bd

获取单场比赛北单官方玩法(让球胜平负/总进球/半全场/比分/上下单双赔率)。通过平台 match_id 反查北单,仅展示已匹配北单的场次

参数:

match_idint必填比赛 ID

示例:

https://vfootball.cn/api/open/matches/bd?match_id=12345
球队
GET/api/open/teams

获取球队详情

参数:

team_idint必填球队 ID

示例:

https://vfootball.cn/api/open/teams?team_id=678
GET/api/open/teams/form

获取球队近 N 场官方形态:overall / home / away / vs_stronger / vs_weaker 分段,每段含胜平负、进失球、form、points_per_match 与 stats

参数:

team_idint必填球队 ID(也可用路径 /teams/{team_id}/form)
lastint可选回看场次,1-20,默认 10
league_idint可选联赛 ID 筛选
venuestring可选home / away 主客场筛选

示例:

https://vfootball.cn/api/open/teams/form?team_id=678&last=10
GET/api/open/teams/fixtures

获取球队近期赛程

参数:

team_idint必填球队 ID

示例:

https://vfootball.cn/api/open/teams/fixtures?team_id=678
GET/api/open/teams/injuries

获取球队当前伤停与缺阵名单:状态、伤型、预计回归日期、伤病风险;无缺阵球员时返回空数组

参数:

team_idint必填球队 ID(也可用路径 /teams/{team_id}/injuries)

示例:

https://vfootball.cn/api/open/teams/injuries?team_id=678
GET/api/open/teams/transfers

获取球队近一年转会账本与近期流水:净支出、转入 / 转出结构、租借依赖度、转会费与球员方向

参数:

team_idint必填球队 ID(也可用路径 /teams/{team_id}/transfers)

示例:

https://vfootball.cn/api/open/teams/transfers?team_id=678
主帅与裁判
GET/api/open/managers

获取主帅战术档案:风格、偏好阵型、胜率、场均进失球、控球、零封、大球与双方进球率;ID 可从比赛详情的 home_manager_profile / away_manager_profile 获取

参数:

manager_idint必填主帅 ID(也可用路径 /managers/{manager_id})

示例:

https://vfootball.cn/api/open/managers?manager_id=318
GET/api/open/referees

获取裁判执法档案:近期与生涯红黄牌、场均犯规、场均进球;ID 可从比赛详情的 referee_id 获取

参数:

referee_idint必填裁判 ID(也可用路径 /referees/{referee_id})

示例:

https://vfootball.cn/api/open/referees?referee_id=128
球员
GET/api/open/players

获取球员完整详情:profile(身高/体重/身价/合同)+ basic(赛季汇总)+ advanced(赛季 xG/xA/射门/传球/防守等)+ match_stats(近 20 场逐场明细,含每场 xG/xA/xGOT、对手、赛果)

参数:

player_idint必填球员 ID

示例:

https://vfootball.cn/api/open/players?player_id=901
GET/api/open/players/list

搜索球员列表

参数:

searchstring必填球员名称搜索
limitint可选每页条数(默认 20)

示例:

https://vfootball.cn/api/open/players/list?search=Messi&limit=5
趋势
GET/api/open/trends/team

获取球队近期趋势(近 30 场)

参数:

team_idint必填球队 ID

示例:

https://vfootball.cn/api/open/trends/team?team_id=678
GET/api/open/trends/player

获取球员近期趋势(近 30 场)

参数:

player_idint必填球员 ID

示例:

https://vfootball.cn/api/open/trends/player?player_id=901
JSON Schema — 字段说明

每个接口返回的 JSON 字段可通过 /api/open/schema 端点获取字段说明,方便程序化对接。

获取所有端点列表

GET https://vfootball.cn/api/open/schema

获取指定端点字段说明

GET https://vfootball.cn/api/open/schema?endpoint=GET%20/matches/detail

endpoint 参数值可从端点列表返回的 name 字段获取,需要对空格进行 URL 编码(%20)

📖 字段说明示例

{
  "success": true,           // 请求是否成功
  "data": {
    "id": 12345,              // 比赛ID
    "status": "finished",     // 比赛状态
    "event_date": "2026-08-15 02:30:00", // 开赛时间
    "venue": "...",           // 球场
    "round": "...",           // 轮次
    "home_team": { "id": 678, "name": "Bournemouth", "logo": "..." }, // 主队
    "away_team": { "id": 679, "name": "Man City", "logo": "..." },    // 客队
    "home_score": 2,          // 主队进球
    "away_score": 1,          // 客队进球
    "league_name": "英超",     // 联赛名
    "league_id": 383          // 联赛ID
  }
}
赔率与必发指数 API 详解

赔率接口(变动流) — /api/open/matches/odds

平台赔率数据来自赔率变动流:赛前盘与滚球盘共用同一条序列底座,15 秒级落库,只记录每次变动。本接口按「市场 → 公司」返回当前水位与真初盘,一次调用即可拿到全量公司(上游有多少家就返回多少家)× 3 个市场的全部盘口(半场盘已下架);纯读库、不消耗上游额度、不限调用频率(受平台通用限流约束)。

公司与市场:

  • 公司(books):crown 皇** · easybets 易**博 · bet365 Bet*** · weide 伟** · 1xbet 1xb* · 18bet 18b*
  • 市场(markets):eur 欧赔 1X2 · ah 亚盘 · ou 大小球(半场盘已下架)
  • 数值口径(unit 字段标明):eur 为小数赔率;亚盘与大小球为香港水位,换算 小数赔率 = 水位 + 1。亚盘 line 为负表示主队让球;大小球 home 为大球、away 为小球。
  • 变动方向:movement 为 up 涨 / down 跌 / steady 未变 / none 不可比,均以相邻前一点为基准。

响应格式(节选:皇**亚盘 + 易**博欧赔):

{
  "success": true,
  "data": {
    "match_id": 12345,
    "source": "platform_flow",
    "available": true,
    "updated_at": "2026-09-20T11:02:13.000Z",
    "data_age_seconds": 42,
    "series_retention_days": 30,
    "market_order": ["eur", "ah", "ou"],
    "markets": {
      "ah": {
        "key": "ah",
        "label": "亚盘 · 全场让球",
        "unit": "hk_water_level",
        "line_based": true,
        "companies": [
          {
            "book": "crown",
            "book_name": "皇**",
            "available": true,
            "line": -0.75,
            "phase": "live",
            "current": { "home": 0.93, "away": 0.95 },
            "previous": { "home": 0.95, "away": 0.93 },
            "movement": { "home": "down", "away": "up" }
          }
        ]
      },
      "eur": {
        "key": "eur",
        "label": "欧赔 1X2(胜平负)",
        "unit": "decimal",
        "line_based": false,
        "companies": [
          {
            "book": "crown",
            "book_name": "皇**",
            "available": true,
            "line": null,
            "phase": "live",
            "current": { "home": 2.86, "draw": 3.40, "away": 2.45 },
            "previous": { "home": 2.87, "draw": 3.38, "away": 2.44 },
            "movement": { "home": "down", "draw": "up", "away": "up" }
          }
        ]
      }
    },
    "backup": false
  }
}

初盘与变动序列:传 series=1 时,每家公司会额外返回opening(真初盘:首次观测到的 home/draw/away 与时刻)与series(观测点数组,每点含 t 秒级时间戳 / line / home / away / draw / phase)。 只想要「初盘 → 当前 → 每次变动」的完整过程与换档点,推荐直接用序列专线/api/open/matches/odds/flow。

已结束比赛的赔率怎么拉:端点与参数完全一致,只要该场仍在保留期(30 天)内就能照常取——终盘水位看/matches/odds/board 或/matches/odds 的current(即终盘),完整变动轨迹看/matches/odds/flow 或/matches/odds?series=1。 注意默认 limit=200 按「行数」截断,只够当前与邻近的观测点,要整场全量明细请显式传limit=2000。 超出 30 天后序列点已清理:/matches/odds/flow 返回404 no_odds_flow,/matches/odds 自动降级为备用源多公司赔率 (source=platform_backup,没有逐点序列),/matches/odds/board 返回available=false;需要更早的历史请在采集期自行落库。

关于半场盘(ah_half / ou_half):半场亚盘与半场大小球仅由变动流主源(source=platform_flow)提供,主流赛事通常在开赛前 1~3 天开出; 备用赔率源(source=platform_backup,降级时响应带 coverage_note) 不含半场市场;部分小赛事博彩公司全程不开半场盘,此时变动流下 half 市场的 companies 为空(available=false),属上游正常行为而非接口故障。

变动序列专线响应格式(/matches/odds/flow,节选):

{
  "success": true,
  "data": {
    "match_id": 12345,
    "source": "platform_flow",
    "available": true,
    "updated_at": "2026-09-20T11:02:13.000Z",
    "series_retention_days": 30,
    "markets": {
      "ah": {
        "key": "ah",
        "label": "亚盘 · 全场让球",
        "unit": "hk_water_level",
        "line_based": true,
        "companies": [
          {
            "book": "crown",
            "book_name": "皇**",
            "available": true,
            "samples": 128,
            "line": -0.75,
            "phase": "live",
            "first": { "t": 1787582100, "line": -0.5, "home": 0.99, "away": 0.89 },
            "current": { "home": 0.93, "away": 0.95 },
            "previous": { "home": 0.95, "away": 0.93 },
            "movement": { "home": "down", "away": "up" },
            "switches": [
              { "t": 1787589741, "from": -0.5, "to": -0.75 }
            ],
            "points": [
              { "t": 1787582100, "line": -0.5,  "home": 0.99, "away": 0.89, "phase": "prematch" },
              { "t": 1787589741, "line": -0.75, "home": 0.95, "away": 0.93, "phase": "live" },
              { "t": 1787590120, "line": -0.75, "home": 0.93, "away": 0.95, "phase": "live" }
            ]
          }
        ]
      }
    }
  }
}

phase 阶段过滤:传 phase=prematch 只看赛前盘,phase=live 只看滚球盘(默认 all)。 变动流赛前与滚球共用同一条序列,阶段由开赛时间现推;若该场未记录开赛时间,phase 为null 且不做阶段过滤,请按 null 兼容处理。

水位面板与批量面板 — /api/open/matches/odds/board、/matches/odds/board/batch

盯盘场景推荐用面板接口:仅返回全量公司 × 5 个市场的当前值 + 相邻前一点 + 涨跌方向,载荷 KB 级,适合5~15 秒轮询;批量面板一次可取最多 20 场,服务端整批按「公司 × 市场」一次取数,查询开销与单场同量级。面板不含初盘与序列点(初盘用/matches/odds,变动过程用 /matches/odds/flow)。

批量面板响应格式(节选):

{
  "success": true,
  "data": {
    "requested": 2,
    "returned": 2,
    "truncated": false,
    "available": 1,
    "matches": [
      {
        "match_id": 12345,
        "source": "platform_flow",
        "available": true,
        "updated_at": "2026-09-20T11:02:13.000Z",
        "data_age_seconds": 42,
        "market_order": ["eur", "ah", "ou"],
        "markets": {
          "ou": {
            "key": "ou",
            "label": "大小球 · 全场",
            "unit": "hk_water_level",
            "line_based": true,
            "companies": [
              {
                "book": "crown",
                "book_name": "皇**",
                "available": true,
                "line": 2.5,
                "phase": "live",
                "current": { "home": 0.90, "away": 0.98 },
                "previous": { "home": 0.92, "away": 0.96 },
                "movement": { "home": "down", "away": "up" }
              }
            ]
          }
        }
      },
      {
        "match_id": 67890,
        "source": "platform_flow",
        "available": false
      }
    ]
  }
}

接入建议:

  • 只想要「现在各家什么水位、涨了还是跌了」→ 用 /matches/odds/board(批量用 /board/batch),轮询间隔 5~15 秒。
  • 要画走势图、还原初盘口径、或做「几分钟内发生了哪些变动」的检测 → 用 /matches/odds/flow,配合 since_minutes 只取增量窗口。
  • 变动序列保留 30 天,无需本地建库也能回溯;需要长期历史请自行落库。
  • 看已结束比赛的赔率:端点不用换,在 30 天保留期内 /matches/odds、/matches/odds/flow、/matches/odds/board 都照常返回(current 即终盘水位,phase=live 为滚球段);要拿全部变动明细必须显式传 limit=2000,默认 200 只返回尾部窗口。超期后 flow 返回 404 no_odds_flow,/matches/odds 降级为备用源(source=platform_backup,多公司赔率、无逐点序列)。
  • 该场变动流暂无数据时(冷门联赛、刚上架),available=false,可传 backup=always 让备用赔率源一起返回。

必发指数接口 — /api/open/matches/wom(Weight of Money,必发指数)

返回必发指数(Weight of Money,各市场真实成交资金经上游二次加工的加权分布)数据,覆盖全场/上半场等全时段、全部市场(含大小球各盘口、波胆、角球、红牌等)的资金分布与成交额;随进阶版会员开放、无需另行购买。打开页面时实时拉取最新成交快照(上游随滚球/赛前持续更新)。

响应格式:

{
  "success": true,
  "data": {
    "id": 587703,
    "home_team": "NEC Nijmegen",
    "away_team": "Bodø/Glimt",
    "league": "UEFA Champions League",
    "status": "notstarted",
    "total_volume": 58184.30,
    "money": [
      {
        "kind": "1X2",           // 市场类型(枚举见下方说明)
        "line": null,            // 盘口线(AH/OU/CORNERS 等带线市场有效,如 2.5/8.5)
        "selection": "HOME",     // 投注选项:HOME/AWAY/DRAW/OVER/UNDER/YES/NO/比分/组合
        "period": "FT",          // 时段:FT=全场/1H=上半场/2H=下半场(同一市场分期独立成交)
        "name": "Match Odds 1",  // 上游市场名
        "volume": 12000.50,      // 该选项成交额
        "market_volume": 30280.00, // 该市场总成交额
        "share": 39.63,          // 资金占比(%)= volume/market_volume,即必发指数
        "league_avg_volume": 80000.00, // 联赛该市场平均成交额(资金热度对比基准)
        "price": 2.86,           // 当前成交价位(欧盘赔率口径)
        "previous_price": 2.87,  // 上一价位
        "implied_probability": 34.97, // 价位隐含概率(%)= 1/price
        "is_live": false,        // 是否滚球阶段
        "captured_at": "2026-08-19T14:21:00Z" // 数据时间
      }
    ]
  }
}

市场类型(kind)枚举:1X2=胜平负 OU=大小球(按 line 分盘) AH=亚盘让球 BTTS=双方进球 DNB=不让球(平局退款) DC=双重机会 CS=波胆(正确比分) HTFT=半场/全场 TG=总进球 CORNERS=角球(按 line 分盘) SENDOFF=红牌

解读口径:share 即该选项的必发指数(资金占比);implied_probability 为价位隐含概率; 两者差值(share − implied)即「冷热偏离」,正数代表资金实际配置高于价格隐含(热门/资金流入),负数代表低于价格隐含(冷门/资金流出); 某市场内各选项成交并非同时刻,不同盘口(line)为相互独立市场。

金额单位:EUR(欧元)。派生字段:每个 money 条目另含 hot(冷热指数 = share − implied,正=热/负=冷)、pnl(庄家盈亏金额 = market_volume − volume×price,负=该方向若胜出兑付缺口)、pnl_pct(盈亏率 = pnl / market_volume × 100)、payout(市场返还率 = Σvolume / Σ(volume×price) × 100)。热卖(share高)的选项 pnl 为负 —— 资金过热方向若打出庄家即亏,同一判断的两种视角。

资金流变化点接口 — /api/open/matches/wom-history

用于还原一场比赛的资金流过程:不是只看当前快照,而是拿「每次变化」的时间戳与数值。适合绘制资金曲线、做资金异动提醒,或让智能体在赛后转述“什么时间、哪个方向、流入了多少”。

响应格式(已截取单市场示例):

{
  "success": true,
  "data": {
    "match_id": 601971,
    "source": "retained",
    "status": "inplay",
    "retention_days": 30,
    "anomaly_threshold_pp": 5,
    "anomaly_change_threshold_pp": 2,
    "point_count": 35,
    "returned_point_count": 35,
    "anomaly_point_count": 3,
    "series": {
      "1X2_HOME_FT": [
        {
          "t": "2026-10-07T08:12:30.000Z", // 变化点时间戳
          "phase": "live",                  // prematch / live / postmatch
          "key_points": ["latest"],         // 关键点模式标记,可同点命中多个
          "volume": 1280.40,                // 累计成交(EUR)
          "volume_delta": 86.20,            // 相邻点新增成交(EUR)
          "market_volume": 9260.00,         // 所属市场累计成交(EUR)
          "share": 13.83,                   // 资金份额(%)
          "price": 4.30,                    // 当前价格
          "implied_probability": 23.26,     // 价格隐含概率(%)
          "divergence": -9.43,              // share − implied_probability(百分点)
          "is_anomaly": true,               // 异动事件
          "anomaly_reason": "sharp_divergence_change" // 初始超阈/进入偏离带/偏离快速变化
        }
      ]
    }
  }
}

全量与关键点:不传 limit 即返回完整序列;只要首个记录、开赛前最后赛前记录、最新/终盘记录时,传point=first,last_prematch,latest,返回点会带key_points 标记。增量拉取时用本地最后一个点的t 作为 since,只取新增点。 若只关心异动,直接加 anomaly=1;若只看滚球段,加phase=live。

口径提示:volume 是累计成交,重复求和会放大金额;volume_delta 才是本变化点新增成交。首个点没有前值时volume_delta=null。异动采用事件口径:初始偏离超过 5pp、进入 ±5pp 偏离带,或在带内单点变化至少 2pp;持续停留在偏离带内不会每个点重复标记。异动是市场结构描述,不构成建议。

xG 数据获取指引(赛前 / 滚球 / 球员 / 球队 / 逐脚)

平台全部 xG 数据均已通过开放 API 提供,按使用场景选择端点:

赛前 xG:/matches/prediction → markets.expected_goals.home / away(模型在开赛前生成,开赛后仍返回赛前值)
滚球实时 xG:/matches/live → stats.home.xg / stats.away.xg,逐分钟累积曲线在 xg_per_minute(仅进行中比赛)
全场技术统计 xG:/matches/stats → stats.{home,away}.xg.actual(estimated=true 表示估算值);批量筛选有 xG 的场次用 /matches/stats/batch?has_xg=true
球员 xG / xA:单场 /matches/player-stats → player_stats[].expected_goals / expected_assists;赛季累计用 /trends/player/{player_id} 的 expected_goals
球队 xG 趋势:/trends/team/{team_id} → expected_goals 趋势序列
逐脚射门 xG / xGOT:/matches/shotmap → shots[].xg(射门期望值)与 xgot(射后值,滚球/完赛阶段)
状态枚举与阶段字段口径(完整稳定版)

status 主状态(查询与返回通用):notstarted 未开赛 / firsthalf 上半场 / halftime 中场休息 / secondhalf 下半场 / overtime 加时 / inprogress 进行中(滚球总态)/ interrupted 中断 / finished 已完赛 / postponed 推迟 / canceled 取消。 查询聚合值 live 等价于全部进行中状态。

阶段(period)字段命名对照:比赛快照 period = 1st_half / halftime / 2nd_half(与 status 对应); 必发指数 money[].period = FT 全场 / 1H 上半场 / 2H 下半场; 盘口类数据中的 1T / HT 为「上半场」的缩写变体,语义同 1H。跨端点比对请按语义映射,不要按字符串相等比对;主状态以 status 字段为准。

竞彩官方玩法 API 详解

平台对接中国竞彩官方在售比赛与全部玩法赔率(胜平负/让球胜平负/总进球/半全场/比分),并匹配到平台比赛,供竞彩用户集中查看或 AI 分析。

接口一:在售竞彩聚合 — GET /api/open/jc/matches

全部在售竞彩比赛及玩法赔率,含平台匹配信息。无需 match_id。

{
  "success": true,
  "data": {
    "fetchedAt": "2026-08-20T10:00:00Z",
    "updatedAt": "2026-08-20T10:01:20Z",
    "total": 32,        // 在售总场数(=0 且 dataSource=live 才是「官方当前未开售」)
    "matched": 28,      // 命中平台比赛数
    "dataSource": "live", // live=实时拉取 / cache=新鲜缓存 / stale=上游异常已回退旧数据
    "cacheAgeMs": 120000, // 当前数据距今年龄(毫秒),便于判断时效
    "upstreamError": null, // 仅 dataSource=stale 时给出上游失败原因
    "matches": [
      {
        "matchup": "日本J联赛",   // 竞彩官方联赛名
        "matchNo": "周三001",
        "homeTeam": "大阪钢巴",
        "awayTeam": "东京FC",
        "had": {"v": "1.85", "f": 0},   // 胜平负(v=赔率字符串,f=浮动)
        "hhad": {"v": "3.20", "f": 0},  // 让球胜平负
        "ttg": {"v": "2.10", "f": 0},   // 总进球
        "hafu": {"v": "4.00", "f": 0},  // 半全场
        "crs": {"v": "8.50", "f": 0},   // 比分
        "updateTime": "2026-08-20T09:55:00Z",
        "platform": {     // 平台匹配(未命中为 null)
          "matchId": 213523,
          "homeTeam": "大阪钢巴",
          "awayTeam": "东京FC",
          "eventDate": "2026-08-20T10:00:00Z",
          "leagueId": 88,
          "status": "notstarted"
        }
      }
    ]
  }
}

接口二:单场竞彩玩法 — GET /api/open/matches/jc

通过平台 match_id 反查该场的全部官方玩法赔率(仅已匹配竞彩的场次有数据)。

{
  "success": true,
  "data": {
    "match": {
      "homeTeam": "大阪钢巴",
      "awayTeam": "东京FC",
      "homeRank": 2,
      "awayRank": 5,
      "league": "日本J联赛",
      "had":   {"v": "1.85", "f": 0},   // 胜平负
      "hhad":  {"v": "3.20", "f": 0},   // 让球胜平负(含让球数)
      "ttg":   {"v": "2.10", "f": 0},   // 总进球
      "hafu":  {"v": "4.00", "f": 0},   // 半全场
      "crs":   {"v": "8.50", "f": 0},   // 比分
      "updateTime": "2026-08-20T09:55:00Z",
      "sellStatus": "Selling"
    }
  }
}

玩法说明:had=胜平负 hhad=让球胜平负 ttg=总进球 hafu=半全场 crs=比分;赔率统一为 {v, f} 结构,f 为官方浮动标记(0 固定 / 1 升 / -1 降)。

接口三:单场竞彩聚合(含 isports 各公司变动流)— GET /api/open/jc/match

传 jc_match_id(竞彩官方场次ID)获取单场:当前五玩法赔率 + 竞彩官方变动流 + isports 各大公司赔率变动流。未匹配平台的竞彩场次同样可查——这类场次平台无球队基础/高阶数据(platform_match_id 为 null),但仍提供竞彩官方赔率面与 isports 各公司赔率/变动明细。

GET /api/open/jc/match?jc_match_id=2041616&api_key=YOUR_KEY

{
  "success": true,
  "data": {
    "available": true,
    "source": "live",                 // live=当前在售 / history=已下架读留存
    "match": {
      "match_id": "2041616",
      "platform_match_id": null,      // 未匹配平台为 null(无平台基础/高阶数据)
      "league": "亚运会女足",
      "home_team": "中国女足",
      "away_team": "菲律宾女足",
      "match_num": "1001",
      "match_date": "2026-09-21",
      "match_time": "15:00:00"
    },
    "current": { "had": {}, "hhad": {...}, "ttg": {...}, "hafu": {...}, "crs": {...} }, // 当前五玩法赔率 {v,f}
    "changes": { "total": 3, "points": [ { "captured_at": "...", "update_time": "...", "odds": {...} } ] }, // 竞彩官方变动流
    "diff": { "total": 5, "rows": [ { "time": "...", "market": "hhad", "outcome": "h", "from": "1.80", "to": "1.78" } ] },
    "first_vs_current": [ { "market": "hhad", "outcome": "h", "first": "1.80", "current": "1.78" } ],
    "isports": {                      // isports 各公司赔率变动流(未匹配平台场次的主数据面)
      "enabled": true,
      "matched": true,
      "isports_match_id": 261088036,  // 匹配到的 isports 场次ID(未匹配为 null,reason 说明原因)
      "reason": "cached",
      "updated_at": 1789950660,       // 上游盘口最后更新时间(秒)
      "has_data": true,
      "market_types": ["1X2", "AH_2.25", "OU_3", "..."],
      "market_type_labels": { "1X2": "欧赔", "AH_2.25": "亚盘 2.25", "OU_3": "大小球 3" },
      "companies": [ { "slug": "crown", "name": "皇**" }, { "slug": "macauslot", "name": "澳*" }, ... ],
      "odds": {
        "1X2":    { "crown": { "home": "2.10", "draw": "3.30", "away": "3.40", "home_prematch": "2.05", "home_movement": "up" } },
        "AH_2.25":{ "crown": { "line": 2.25, "home_price": "0.95", "away_price": "0.85", "home_prematch": "0.92", "away_movement": "up" } },
        "OU_3":   { "crown": { "line": 3, "over_price": "0.90", "under_price": "0.90", "over_movement": "down" } }
      }
    }
  }
}

变动字段:各公司 odds[市场][公司] 含当前值、初盘值与变动方向(*_movement:up 升 / down 降 / steady 稳)。

北单官方玩法 API 详解

平台对接中国体育彩票北京单场(北单)在售比赛与全部玩法赔率(让球胜平负/总进球/半全场/比分/上下单双),并匹配到平台比赛,供北单用户集中查看或 AI 分析。北单销售日为 10:00 → 次日 10:00;销售日间隙返回最近销售日的已截止场次(mode=lastSaleDay)。

接口一:在售北单聚合 — GET /api/open/bd/matches

全部在售北单比赛及玩法赔率,含平台匹配信息。无需参数。

{
  "success": true,
  "data": {
    "updatedAt": "2026-09-27 09:45:00", // 赔率最新更新时间
    "total": 32,        // 在售总场数(=0 且 dataSource=live 才是「官方当前未开售」)
    "matched": 28,      // 命中平台比赛数
    "dataSource": "cache", // live=实时拉取 / cache=新鲜缓存 / stale=上游异常已回退旧数据
    "mode": "live",     // live=当前在售 / lastSaleDay=销售日间隙回退最近销售日(均已截止)
    "cacheAgeMs": 120000,
    "matches": [
      {
        "matchId": "bd2041616",  // 北单场次ID(用于 /bd/match 查单场)
        "vfootballMatchId": 223067, // 平台比赛ID(未匹配为 null,可直接查 /matches/detail)
        "matchNum": "26",        // 北单场次号
        "league": "意大利甲级联赛",
        "homeTeam": "罗马",
        "awayTeam": "佛罗伦萨",
        "goalLine": "-1",        // 让球数(正=主队受让,负=主队让球)
        "wdl":  { "h": {"v":"1.85","f":0}, "d": {"v":"3.40","f":0}, "a": {"v":"4.20","f":0} }, // 让球胜平负
        "ttg":  { "s0": {"v":"8.5","f":0}, "s1": {"v":"4.3","f":0} /* s0~s7,s7=7球及以上 */ },
        "hafu": { "hh": {"v":"3.2","f":0} /* hh/ha/hd/ah/aa/ad/dh/da/dd 九项 */ },
        "crs":  { "s10": {"v":"6.5","f":0} /* 比分 25 档 */ },
        "uo":   { "us": {"v":"1.9","f":0}, "ud": {"v":"1.9","f":0}, "ds": {"v":"1.9","f":0}, "dd": {"v":"1.9","f":0} }, // 上下单双(北单特有)
        "score": null,           // 彩果:全场比分(未开奖为 null)
        "result": null,          // 彩果:让球胜平负结果
        "sellStatus": 1,         // 1=在售 0=停售
        "platform": { "matchId": 223067, "homeTeam": "Roma", "awayTeam": "Fiorentina",
                      "eventDate": "2026-09-27T18:30:00Z", "leagueId": 1, "status": "notstarted" }
      }
    ]
  }
}

接口二:单场北单详情 — GET /api/open/bd/match

传 bd_match_id(bd+数字)获取单场全部玩法赔率与销售状态;当前赛程优先,场次翻页或停售后自动回退 7 天本地历史留存(source=history)。

GET /api/open/bd/match?bd_match_id=bd2041616&api_key=YOUR_KEY

{
  "success": true,
  "data": {
    "available": true,
    "source": "live",        // live=当前在售赛程 / history=读 7 天本地留存
    "provider": "okooo",
    "match": { "matchId": "bd2041616", "matchNum": "26", "league": "意大利甲级联赛",
               "homeTeam": "罗马", "awayTeam": "佛罗伦萨", "goalLine": "-1",
               "wdl": {...}, "ttg": {...}, "hafu": {...}, "crs": {...}, "uo": {...},
               "updateTime": "2026-09-27 09:45:00", "sellStatus": 1 }
  }
}

接口三:单场北单玩法(平台比赛反查)— GET /api/open/matches/bd

通过平台 match_id 反查该场的北单玩法赔率(仅已匹配北单的场次有数据;未匹配时 matched=false 并带 reason)。

GET /api/open/matches/bd?match_id=223067&api_key=YOUR_KEY

{
  "success": true,
  "data": {
    "matched": true,
    "match": { "matchId": "bd2041616", "homeTeam": "罗马", "awayTeam": "佛罗伦萨",
               "goalLine": "-1", "wdl": {...}, "ttg": {...}, "hafu": {...},
               "crs": {...}, "uo": {...}, "updateTime": "2026-09-27 09:45:00" }
  }
}

玩法说明:wdl=让球胜平负 ttg=总进球 hafu=半全场 crs=比分 uo=上下单双(北单特有);赔率统一为 {v, f} 结构,v='-' 表示该项未开售,f 为浮动标记。

AI 智能体对接指南

您的 AI 智能体可通过 API Key 直接调用 V球数据接口,获取实时足球数据进行分析。

复制场景提示词(12 条精品模板)

步骤一:获取 API Key

在 V球数据平台注册账号并登录后,此处将自动显示您的专属 API Key。

步骤二:配置智能体

在您的 AI 智能体(如 Codex、扣子、WorkBuddy、豆包、Zcode、DeepSeek、智谱清言、Kimi 等平台,或自定义 Agent)中,添加 HTTP 工具或 Function Calling, 配置请求头 X-API-Key, 指向对应的数据接口即可。

步骤三:调用数据

智能体可根据用户提问,自动调用相应的接口获取比赛详情、赔率、统计、历史交锋等数据, 结合大模型能力生成分析报告。

💡 推荐组合接口

对于赛前分析场景,建议同时调用:matches/detail + matches/odds + matches/odds/flow + matches/h2h + teams/fixtures

联系管理员

购买激活码 / API Key / 技术支持 · QQ 2771440771