{"openapi":"3.1.0","info":{"title":"FromStats API","description":"合作方数据接口。\n\n- 鉴权：请求头 `X-API-Key`\n- 限流：列表类 300 次/分钟、即时快照 600 次/分钟、每日 50 万次；超额返回 429 并带 `Retry-After`\n- 过载：服务繁忙时返回 503（`SERVICE_BUSY`）并带 `Retry-After`，稍后重试即可\n- 错误：统一为 `{\"error\": {\"status\", \"code\", \"message\", \"details\"}}`\n- 分页：`limit` 默认 50、最大 200，`offset` 从 0 起\n- 时间：东八区，带 `+08:00` 偏移\n","version":"0.1.0"},"paths":{"/v1/basketball/competitions":{"get":{"tags":["篮球 · 赛事"],"summary":"篮球赛事列表","operationId":"list_competitions_v1_basketball_competitions_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"按名称模糊搜索，匹配六种中英文全名 / 简称。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内保持列表原有顺序","title":"Search"},"description":"按名称模糊搜索，匹配六种中英文全名 / 简称。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内保持列表原有顺序"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按国家 / 地区筛选，匹配中文名或英文名（不区分大小写）","title":"Country"},"description":"按国家 / 地区筛选，匹配中文名或英文名（不区分大小写）"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"enum":["league","cup"],"type":"string"},{"type":"null"}],"description":"league / cup","title":"Type"},"description":"league / cup"},{"name":"seasons","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":0,"description":"每个赛事返回最近几个赛季","default":5,"title":"Seasons"},"description":"每个赛事返回最近几个赛季"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/competitions/{competition_id}":{"get":{"tags":["篮球 · 赛事"],"summary":"篮球赛事单条","operationId":"get_competition_v1_basketball_competitions__competition_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"string","title":"Competition Id"}},{"name":"seasons","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":0,"description":"返回最近几个赛季","default":5,"title":"Seasons"},"description":"返回最近几个赛季"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/competitions/{competition_id}/seasons":{"get":{"tags":["篮球 · 赛季"],"summary":"篮球赛季列表","description":"按赛季名倒序（新的在前）；最新一季标 is_current","operationId":"list_seasons_v1_basketball_competitions__competition_id__seasons_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"string","title":"Competition Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeasonOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/stages/{stage_id}/series":{"get":{"tags":["篮球 · 系列赛"],"summary":"篮球系列赛列表","operationId":"list_series_v1_basketball_stages__stage_id__series_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"stage_id","in":"path","required":true,"schema":{"type":"string","title":"Stage Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeriesOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/series":{"get":{"tags":["篮球 · 系列赛"],"summary":"篮球系列赛列表（按赛季）","description":"一个赛季全部阶段的系列赛，一次取完；条目与按阶段取的相同，各自带所属阶段。\n\n单场淘汰的阶段没有系列赛，取这类比赛用 `/basketball/matches?stage_id=`。","operationId":"list_season_series_v1_basketball_series_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"season_id","in":"query","required":true,"schema":{"type":"string","description":"赛季对外 ID","title":"Season Id"},"description":"赛季对外 ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeriesOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/teams":{"get":{"tags":["篮球 · 球队"],"summary":"篮球球队列表","operationId":"list_teams_v1_basketball_teams_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"按球队对外 ID 批量取，可重复传，最多 50 个；与其它筛选是「且」的关系","title":"Id"},"description":"按球队对外 ID 批量取，可重复传，最多 50 个；与其它筛选是「且」的关系"},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只返回该赛季有比赛的球队（赛季对外 ID）","title":"Season Id"},"description":"只返回该赛季有比赛的球队（赛季对外 ID）"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"按名称模糊搜索，匹配六种中英文全名 / 简称。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的","title":"Search"},"description":"按名称模糊搜索，匹配六种中英文全名 / 简称。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的"},{"name":"include_placeholder","in":"query","required":false,"schema":{"type":"boolean","description":"是否包含占位球队（如「附加赛G1胜者」）","default":false,"title":"Include Placeholder"},"description":"是否包含占位球队（如「附加赛G1胜者」）"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的球队（含）；ISO 8601，可带任意时区偏移，无偏移按 +08:00","title":"Updated Since"},"description":"只返回此时间之后更新过的球队（含）；ISO 8601，可带任意时区偏移，无偏移按 +08:00"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/teams/{team_id}":{"get":{"tags":["篮球 · 球队"],"summary":"篮球球队单条","operationId":"get_team_v1_basketball_teams__team_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/players":{"get":{"tags":["篮球 · 球员"],"summary":"篮球球员列表","description":"默认按中文名排序；源站不给生涯档案，球员属性取自最近一次出场的统计行","operationId":"list_players_v1_basketball_players_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只返回最近一次出场属于该队的球员（球队对外 ID）","title":"Team Id"},"description":"只返回最近一次出场属于该队的球员（球队对外 ID）"},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只返回在该赛季出过场或上过榜的球员（赛季对外 ID）","title":"Season Id"},"description":"只返回在该赛季出过场或上过榜的球员（赛季对外 ID）"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"按姓名模糊搜索，匹配中英文名。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内出场多的在前","title":"Search"},"description":"按姓名模糊搜索，匹配中英文名。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内出场多的在前"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的球员（含）；ISO 8601，可带任意时区偏移，无偏移按 +08:00","title":"Updated Since"},"description":"只返回此时间之后更新过的球员（含）；ISO 8601，可带任意时区偏移，无偏移按 +08:00"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketballPlayerOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/players/{player_id}":{"get":{"tags":["篮球 · 球员"],"summary":"篮球球员单条","description":"只在不可见赛事出现过的球员按 ID 直接查也是 404（票 15）","operationId":"get_player_v1_basketball_players__player_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketballPlayerOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/players/{player_id}/matches":{"get":{"tags":["篮球 · 球员"],"summary":"篮球球员出场记录","description":"这名球员打过的每一场与当场数据，一场一行\n\n**每行的球队、球衣号、位置都是那一场的值**，不是球员详情里那份「最近一次出场」的快照——\n换过队的球员（生产 337 人）看旧比赛时该显示当时那支队。按球员取也天然拿得到完整的\n两段效力期：哈登本季快船 44 场 + 骑士 44 场都在这里，不会因为他现在属于骑士就丢掉前一段。\n\n出场多的球员一个赛季 80~106 场（生产最多 106），跨赛季混排会让「最近 N 场」跨过赛季边界，\n要收敛就传 `season_id`。","operationId":"list_player_matches_v1_basketball_players__player_id__matches_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只看某个赛季（赛季对外 ID）","title":"Season Id"},"description":"只看某个赛季（赛季对外 ID）"},{"name":"competition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只看某个赛事（赛事对外 ID），跨该赛事的全部赛季","title":"Competition Id"},"description":"只看某个赛事（赛事对外 ID），跨该赛事的全部赛季"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"按开赛时间排序方向：asc 升序 / desc 降序；默认最近的在前","default":"desc","title":"Order"},"description":"按开赛时间排序方向：asc 升序 / desc 降序；默认最近的在前"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketballPlayerMatchOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/players/{player_id}/season-stats":{"get":{"tags":["篮球 · 球员"],"summary":"篮球球员的赛季榜成绩","description":"这名球员上过的赛季榜，按赛季倒序；没上过榜是空数组\n\n不分页：源站每赛季只发布「已经打起来的那个赛季」的榜单，生产 294 名上过榜的球员里\n最多的也只有 2 行（常规赛 + 季后赛各一）。\n\n**绝大多数球员这里是空的**——2,152 名球员中只有 294 人（13.7%）上过榜。\n球员页的主体应该用出场记录，这里只适合做次要区块。","operationId":"list_player_season_stats_v1_basketball_players__player_id__season_stats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketballPlayerSeasonStatRowList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/matches":{"get":{"tags":["篮球 · 比赛"],"summary":"篮球比赛列表","operationId":"list_matches_v1_basketball_matches_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"赛事对外 ID，跨该赛事的全部赛季；可重复传，最多 50 个","title":"Competition Id"},"description":"赛事对外 ID，跨该赛事的全部赛季；可重复传，最多 50 个"},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"赛季对外 ID","title":"Season Id"},"description":"赛季对外 ID"},{"name":"stage_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"阶段对外 ID","title":"Stage Id"},"description":"阶段对外 ID"},{"name":"series_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"系列赛对外 ID","title":"Series Id"},"description":"系列赛对外 ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"球队对外 ID，主场或客场","title":"Team Id"},"description":"球队对外 ID，主场或客场"},{"name":"opponent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"对手球队对外 ID：只返回 team_id 与它之间的比赛（不分主客）。必须同时给 team_id","title":"Opponent Id"},"description":"对手球队对外 ID：只返回 team_id 与它之间的比赛（不分主客）。必须同时给 team_id"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期下限（含），按北京时间的日期","title":"Date From"},"description":"开赛日期下限（含），按北京时间的日期"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期上限（含），按北京时间的日期","title":"Date To"},"description":"开赛日期上限（含），按北京时间的日期"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["upcoming","live","finished","postponed","cancelled","interrupted","tbd"],"type":"string"},{"type":"null"}],"description":"语义状态","title":"Status"},"description":"语义状态"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的场次（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00","title":"Updated Since"},"description":"只返回此时间之后更新过的场次（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"按开赛时间排序方向：asc 升序 / desc 降序","default":"asc","title":"Order"},"description":"按开赛时间排序方向：asc 升序 / desc 降序"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/matches/{match_id}":{"get":{"tags":["篮球 · 比赛"],"summary":"篮球比赛单条","operationId":"get_match_v1_basketball_matches__match_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/matches/{match_id}/animation":{"get":{"tags":["篮球 · 比赛"],"summary":"篮球单场动画直播嵌入地址","description":"返回本场动画直播的嵌入地址（iframe / WebView 直接打开）。地址有效期 2 小时，过期请重新获取。","operationId":"get_match_animation_v1_basketball_matches__match_id__animation_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchAnimationOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"动画直播暂不可用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/matches/{match_id}/stats":{"get":{"tags":["篮球 · 比赛"],"summary":"篮球单场技术统计","description":"主客两侧各给球队合计与出场球员明细；首发在前\n\n`/matches/{id}` 的 `has_stats` 为 false 时，这里的 `stats` 是 null、`players` 是空数组，\n但主客队照常给出——不是错误，是这场还没有技术统计。","operationId":"get_match_stats_v1_basketball_matches__match_id__stats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketballMatchStatsOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/matches/{match_id}/commentary":{"get":{"tags":["篮球 · 比赛"],"summary":"篮球单场文字直播","description":"按 (节次, 节内序号) 排序；默认正序，直播场景要最新几条就用 order=desc\n\n没有文字直播的比赛返回空数组，不是 404——比赛本身是存在的。","operationId":"list_match_commentary_v1_basketball_matches__match_id__commentary_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}},{"name":"quarter","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":12,"minimum":1},{"type":"null"}],"description":"只取某一节：1~4 常规节，5 起为加时","title":"Quarter"},"description":"只取某一节：1~4 常规节，5 起为加时"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"排序方向：asc 升序 / desc 降序；默认 asc 即比赛时间正序","default":"asc","title":"Order"},"description":"排序方向：asc 升序 / desc 降序；默认 asc 即比赛时间正序"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":800,"minimum":1,"description":"每页条数，最大 800","default":100,"title":"Limit"},"description":"每页条数，最大 800"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommentaryEntryOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/live":{"get":{"tags":["篮球 · 即时比分"],"summary":"篮球即时比分快照","operationId":"live_snapshot_v1_basketball_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveMatchOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/basketball/standings":{"get":{"tags":["篮球 · 榜单"],"summary":"篮球赛季积分榜","description":"联赛榜与小组表都在 `tables[]` 里，每张表自带 conference / group / stage 说明它是哪一张\n\n源站分两张表存这两类积分，但对接入方是同一个概念——渲染积分榜的组件不该先判断\n这个赛事该打哪个接口。传了 `stage_id` 就只给该阶段的小组表（联赛榜没有阶段归属）。","operationId":"get_standings_v1_basketball_standings_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"season_id","in":"query","required":true,"schema":{"type":"string","description":"赛季对外 ID","title":"Season Id"},"description":"赛季对外 ID"},{"name":"stage_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只取某个阶段的小组表（阶段对外 ID）；联赛榜没有阶段归属，传了就不返回","title":"Stage Id"},"description":"只取某个阶段的小组表（阶段对外 ID）；联赛榜没有阶段归属，传了就不返回"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandingsOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/season-player-stats":{"get":{"tags":["篮球 · 赛季统计"],"summary":"篮球球员赛季统计","description":"源站每个榜单只收前 20 名，所以这里是**榜单数据**，不是全队名单的赛季统计\n\n一名球员通常只在自己上榜的那几项上有值，其余为 null；赛季中转会的球员在源站\n每队一行，这里照原样给，不合并——两段效力期的数字本来就该分开看。","operationId":"list_player_season_stats_v1_basketball_season_player_stats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"season_id","in":"query","required":true,"schema":{"type":"string","description":"赛季对外 ID","title":"Season Id"},"description":"赛季对外 ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只看某支球队的球员（球队对外 ID）","title":"Team Id"},"description":"只看某支球队的球员（球队对外 ID）"},{"name":"stage_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["regular","playoff","preseason","cup"],"type":"string"},{"type":"null"}],"description":"按赛事类型筛选；取值同响应的 stage_type 字段，不传则各类型都给","title":"Stage Type"},"description":"按赛事类型筛选；取值同响应的 stage_type 字段，不传则各类型都给"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按某项指标排序，取值为响应 stats 里的字段名（如 points、rebounds_avg）；不传按球队、球员名排序","enum":["appearances","assists","assists_avg","blocks","blocks_avg","defensive_rebounds","double_doubles","field_goal_pct","field_goals_attempted","field_goals_made","fouls","fouls_avg","free_throw_pct","free_throws_attempted","free_throws_made","offensive_rebounds","points","points_avg","rebounds_avg","steals","steals_avg","three_point_pct","three_pointers_attempted","three_pointers_made","total_rebounds","triple_doubles","turnovers","turnovers_avg"],"title":"Sort"},"description":"按某项指标排序，取值为响应 stats 里的字段名（如 points、rebounds_avg）；不传按球队、球员名排序"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"排序方向：asc 升序 / desc 降序；不传 sort 时按球队、球员名，此参数同样生效","default":"desc","title":"Order"},"description":"排序方向：asc 升序 / desc 降序；不传 sort 时按球队、球员名，此参数同样生效"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketballPlayerSeasonStatsOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/matches/{match_id}/odds":{"get":{"tags":["篮球 · 赔率"],"summary":"篮球单场赔率","description":"篮球赔率自 2026-09-17 起采集：此前开赛的比赛没有赔率，返回空列表。","operationId":"get_match_odds_v1_basketball_matches__match_id__odds_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["euro","handicap","ou"],"type":"string"}},{"type":"null"}],"description":"赔率类型，可重复传（如 type=euro&type=ou）：euro 欧指 / handicap 让分 / ou 总分。不传返回全部三种","title":"Type"},"description":"赔率类型，可重复传（如 type=euro&type=ou）：euro 欧指 / handicap 让分 / ou 总分。不传返回全部三种"},{"name":"bookmaker_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只取这家公司（对外 ID）；欧指与让分 / 总分是两套公司体系，ID 不通用","title":"Bookmaker Id"},"description":"只取这家公司（对外 ID）；欧指与让分 / 总分是两套公司体系，ID 不通用"},{"name":"main_only","in":"query","required":false,"schema":{"type":"boolean","description":"只返回主流公司。仅对 euro 有效；让分 / 总分体系的公司没有主流标记，传入时忽略、返回全部公司","default":true,"title":"Main Only"},"description":"只返回主流公司。仅对 euro 有效；让分 / 总分体系的公司没有主流标记，传入时忽略、返回全部公司"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OddsEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/basketball/odds":{"get":{"tags":["篮球 · 赔率"],"summary":"篮球批量赔率","description":"篮球赔率自 2026-09-17 起采集：此前开赛的比赛没有赔率，各盘口为空数组。","operationId":"list_odds_v1_basketball_odds_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"比赛对外 ID，可重复传","title":"Match Id"},"description":"比赛对外 ID，可重复传"},{"name":"competition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"赛事对外 ID，可重复传，最多 50 个","title":"Competition Id"},"description":"赛事对外 ID，可重复传，最多 50 个"},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"赛季对外 ID","title":"Season Id"},"description":"赛季对外 ID"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期下限（含），按北京时间的日期","title":"Date From"},"description":"开赛日期下限（含），按北京时间的日期"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期上限（含），按北京时间的日期","title":"Date To"},"description":"开赛日期上限（含），按北京时间的日期"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的赔率行（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00。比赛本身仍按上面的范围条件筛选——这个参数收窄的是每场返回哪些赔率行","title":"Updated Since"},"description":"只返回此时间之后更新过的赔率行（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00。比赛本身仍按上面的范围条件筛选——这个参数收窄的是每场返回哪些赔率行"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["euro","handicap","ou"],"type":"string"}},{"type":"null"}],"description":"赔率类型，可重复传；不传返回全部三种","title":"Type"},"description":"赔率类型，可重复传；不传返回全部三种"},{"name":"bookmaker_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只取这家公司（对外 ID）","title":"Bookmaker Id"},"description":"只取这家公司（对外 ID）"},{"name":"main_only","in":"query","required":false,"schema":{"type":"boolean","description":"只返回主流公司，仅对 euro 有效","default":true,"title":"Main Only"},"description":"只返回主流公司，仅对 euro 有效"},{"name":"has_odds","in":"query","required":false,"schema":{"type":"boolean","description":"为 true 时只返回有赔率的比赛：在所选 type、公司（及 updated_since）下至少有一行，分页总数随之变化。不传或为 false 时范围内的比赛都返回，没有赔率的各盘口为空数组","default":false,"title":"Has Odds"},"description":"为 true 时只返回有赔率的比赛：在所选 type、公司（及 updated_since）下至少有一行，分页总数随之变化。不传或为 false 时范围内的比赛都返回，没有赔率的各盘口为空数组"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"每页比赛数，最大 50（一场比赛携带几十行赔率，故比其它列表更小）","default":20,"title":"Limit"},"description":"每页比赛数，最大 50（一场比赛携带几十行赔率，故比其它列表更小）"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchOddsOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/competitions":{"get":{"tags":["足球 · 赛事"],"summary":"足球赛事列表","operationId":"list_competitions_v1_soccer_competitions_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按国家 / 地区筛选：代码（ENG）或中文名（英格兰），不区分大小写","title":"Country"},"description":"按国家 / 地区筛选：代码（ENG）或中文名（英格兰），不区分大小写"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"enum":["league","cup"],"type":"string"},{"type":"null"}],"description":"league / cup","title":"Type"},"description":"league / cup"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按名称模糊搜索（中英文、繁体的全名与简称）。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内保持列表原有顺序","title":"Search"},"description":"按名称模糊搜索（中英文、繁体的全名与简称）。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内保持列表原有顺序"},{"name":"seasons","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":0,"description":"每个赛事返回最近几个赛季","default":5,"title":"Seasons"},"description":"每个赛事返回最近几个赛季"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的赛事（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00","title":"Updated Since"},"description":"只返回此时间之后更新过的赛事（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerCompetitionOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/competitions/{competition_id}":{"get":{"tags":["足球 · 赛事"],"summary":"足球赛事单条","operationId":"get_competition_v1_soccer_competitions__competition_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"string","title":"Competition Id"}},{"name":"seasons","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":0,"description":"返回最近几个赛季","default":5,"title":"Seasons"},"description":"返回最近几个赛季"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerCompetitionOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/competitions/{competition_id}/seasons/{season_id}/bracket":{"get":{"tags":["足球 · 赛事"],"summary":"足球赛季淘汰赛对阵图","operationId":"get_bracket_v1_soccer_competitions__competition_id__seasons__season_id__bracket_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competition_id","in":"path","required":true,"schema":{"type":"string","title":"Competition Id"}},{"name":"season_id","in":"path","required":true,"schema":{"type":"string","title":"Season Id"}},{"name":"stage_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只返回这个阶段对应的轮次（阶段对外 ID）。位置标识与晋级去向仍按整张图计算，所以 next_tie_id 可能指向未返回的轮次","title":"Stage Id"},"description":"只返回这个阶段对应的轮次（阶段对外 ID）。位置标识与晋级去向仍按整张图计算，所以 next_tie_id 可能指向未返回的轮次"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BracketOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/teams":{"get":{"tags":["足球 · 球队"],"summary":"足球球队列表","operationId":"list_teams_v1_soccer_teams_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"按球队对外 ID 批量取，可重复传，最多 50 个；给了它就不再限「近期活跃」，与其它筛选是「且」的关系","title":"Id"},"description":"按球队对外 ID 批量取，可重复传，最多 50 个；给了它就不再限「近期活跃」，与其它筛选是「且」的关系"},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按赛季筛选（赛季对外 ID）","title":"Season Id"},"description":"按赛季筛选（赛季对外 ID）"},{"name":"stage_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按阶段筛选（阶段对外 ID）","title":"Stage Id"},"description":"按阶段筛选（阶段对外 ID）"},{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按小组筛选（小组对外 ID），比 stage_id 更精确、优先生效","title":"Group Id"},"description":"按小组筛选（小组对外 ID），比 stage_id 更精确、优先生效"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按国家 / 地区筛选：代码（ENG）、英文名（England）或中文名（英格兰），不区分大小写","title":"Country"},"description":"按国家 / 地区筛选：代码（ENG）、英文名（England）或中文名（英格兰），不区分大小写"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按名称模糊搜索（中英文全名、英文简称、繁体名）。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内近一年比赛多的在前","title":"Search"},"description":"按名称模糊搜索（中英文全名、英文简称、繁体名）。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内近一年比赛多的在前"},{"name":"include_placeholder","in":"query","required":false,"schema":{"type":"boolean","description":"是否包含占位球队（如 [A1]、XX胜者）","default":false,"title":"Include Placeholder"},"description":"是否包含占位球队（如 [A1]、XX胜者）"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的球队（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00","title":"Updated Since"},"description":"只返回此时间之后更新过的球队（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerTeamOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/teams/{team_id}":{"get":{"tags":["足球 · 球队"],"summary":"足球球队单条","operationId":"get_team_v1_soccer_teams__team_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamDetailOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/teams/{team_id}/squad":{"get":{"tags":["足球 · 球队"],"summary":"足球球队阵容","description":"球员按位置（GK→DEF→MID→FWD）与球衣号排序，教练在最后；无 FotMob 侧数据的球队为空数组","operationId":"get_team_squad_v1_soccer_teams__team_id__squad_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SquadMemberOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/teams/{team_id}/trophies":{"get":{"tags":["足球 · 球队"],"summary":"足球球队荣誉","description":"同一支球队只给一个来源的荣誉：有中文荣誉（只有夺冠）就只给它，没有才给英文那份（含亚军）\n\n两份说的是同一批奖杯，没有可靠的键能逐条对上，拼在一起就是每座奖杯出现两次。","operationId":"get_team_trophies_v1_soccer_teams__team_id__trophies_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamTrophyOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/teams/{team_id}/seasons":{"get":{"tags":["足球 · 球队"],"summary":"足球球队参与的赛季","description":"球队参与过且有赛季统计的赛季，按时间倒序","operationId":"get_team_seasons_v1_soccer_teams__team_id__seasons_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamSeasonOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/players":{"get":{"tags":["足球 · 球员"],"summary":"足球球员列表","operationId":"list_players_v1_soccer_players_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按当前球队筛选（球队对外 ID）","title":"Team Id"},"description":"按当前球队筛选（球队对外 ID）"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按名称模糊搜索（中英文）。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内身价高的在前","title":"Search"},"description":"按名称模糊搜索（中英文）。搜索词至少 2 个字时结果按相关度排序：先完全匹配，再开头或姓名段匹配（如「詹姆斯」之于「勒布朗·詹姆斯」），最后是其余包含该词的；同档内身价高的在前"},{"name":"position","in":"query","required":false,"schema":{"anyOf":[{"enum":["GK","CB","LB","RB","LWB","RWB","DM","CM","AM","LM","RM","LW","RW","ST"],"type":"string"},{"type":"null"}],"description":"按具体位置筛选；取值同响应的 position 字段","title":"Position"},"description":"按具体位置筛选；取值同响应的 position 字段"},{"name":"position_group","in":"query","required":false,"schema":{"anyOf":[{"enum":["GK","DEF","MID","FWD"],"type":"string"},{"type":"null"}],"description":"按位置大类筛选；取值同响应的 position_group 字段，含只标了大类的球员","title":"Position Group"},"description":"按位置大类筛选；取值同响应的 position_group 字段，含只标了大类的球员"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按国籍模糊筛选（英文名、代码或中文名）","title":"Country"},"description":"按国籍模糊筛选（英文名、代码或中文名）"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的球员（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00","title":"Updated Since"},"description":"只返回此时间之后更新过的球员（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/players/{player_id}":{"get":{"tags":["足球 · 球员"],"summary":"足球球员单条","operationId":"get_player_v1_soccer_players__player_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerDetailOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/players/{player_id}/career":{"get":{"tags":["足球 · 球员"],"summary":"足球球员生涯经历","description":"每段俱乐部 / 国家队经历，新的在前；无 FotMob 侧数据为空数组","operationId":"get_player_career_v1_soccer_players__player_id__career_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CareerEntryOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/players/{player_id}/transfers":{"get":{"tags":["足球 · 球员"],"summary":"足球球员转会记录","description":"新的在前；无转会记录为空数组\n\n返回的每条与 /soccer/transfers 完全同形（含冗余的 player 字段），\n合作方两个入口可以共用一套解析。","operationId":"get_player_transfers_v1_soccer_players__player_id__transfers_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/players/{player_id}/trophies":{"get":{"tags":["足球 · 球员"],"summary":"足球球员荣誉","description":"同一名球员只给一个来源的荣誉：有中文荣誉（含夺冠次数）就只给它，没有才给英文那份（含亚军赛季）\n\n两份说的是同一批奖杯，没有可靠的键能逐条对上，拼在一起就是每座奖杯出现两次。","operationId":"get_player_trophies_v1_soccer_players__player_id__trophies_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerTrophyOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/players/{player_id}/career-stats":{"get":{"tags":["足球 · 球员"],"summary":"足球球员各赛季统计","description":"按赛季 × 赛事 × 球队聚合，新的在前；无球探侧数据为空数组","operationId":"get_player_career_stats_v1_soccer_players__player_id__career_stats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CareerSeasonStatsOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/players/{player_id}/shotmap":{"get":{"tags":["足球 · 球员"],"summary":"足球球员射门图","description":"坐标系 x ∈ [0, 105]、y ∈ [0, 68]（米），进攻球门在 x=105 一侧；按时间倒序，最多 500 条；无 FotMob 侧数据为空数组","operationId":"get_player_shotmap_v1_soccer_players__player_id__shotmap_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按赛季筛选（赛季对外 ID）","title":"Season Id"},"description":"按赛季筛选（赛季对外 ID）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerShotOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/players/{player_id}/matches":{"get":{"tags":["足球 · 球员"],"summary":"足球球员出场记录","description":"这名球员打过的每一场已完场比赛与当场数据，一场一行；来自球探单场阵容与事件，无球探侧数据为空列表\n\n与篮球 `/basketball/players/{id}/matches` 同形。","operationId":"list_player_matches_v1_soccer_players__player_id__matches_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","title":"Player Id"}},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只看某个赛季（赛季对外 ID）","title":"Season Id"},"description":"只看某个赛季（赛季对外 ID）"},{"name":"competition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只看某个赛事（赛事对外 ID），跨该赛事的全部赛季","title":"Competition Id"},"description":"只看某个赛事（赛事对外 ID），跨该赛事的全部赛季"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"按开赛时间排序方向：asc 升序 / desc 降序；默认最近的在前","default":"desc","title":"Order"},"description":"按开赛时间排序方向：asc 升序 / desc 降序；默认最近的在前"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerMatchOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/matches":{"get":{"tags":["足球 · 比赛"],"summary":"足球比赛列表","operationId":"list_matches_v1_soccer_matches_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"赛事对外 ID，可重复传，最多 50 个","title":"Competition Id"},"description":"赛事对外 ID，可重复传，最多 50 个"},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"赛季对外 ID（子赛季归到同名主赛季）","title":"Season Id"},"description":"赛季对外 ID（子赛季归到同名主赛季）"},{"name":"stage_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"阶段对外 ID","title":"Stage Id"},"description":"阶段对外 ID"},{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"小组对外 ID","title":"Group Id"},"description":"小组对外 ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"球队对外 ID，主场或客场","title":"Team Id"},"description":"球队对外 ID，主场或客场"},{"name":"opponent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"对手球队对外 ID：只返回 team_id 与它之间的比赛（不分主客）。必须同时给 team_id","title":"Opponent Id"},"description":"对手球队对外 ID：只返回 team_id 与它之间的比赛（不分主客）。必须同时给 team_id"},{"name":"round","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"轮次","title":"Round"},"description":"轮次"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期下限（含），按北京时间的日期","title":"Date From"},"description":"开赛日期下限（含），按北京时间的日期"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期上限（含），按北京时间的日期","title":"Date To"},"description":"开赛日期上限（含），按北京时间的日期"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["upcoming","live","finished","postponed","cancelled","tbd","abandoned","interrupted"],"type":"string"},{"type":"null"}],"description":"语义状态","title":"Status"},"description":"语义状态"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的场次（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00","title":"Updated Since"},"description":"只返回此时间之后更新过的场次（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00"},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"enum":["events","lineups","stats"],"type":"string"},"description":"可选子数据：events 事件、lineups 阵容、stats 黄牌 / 红牌 / 角球（可重复传）","default":[],"title":"Include"},"description":"可选子数据：events 事件、lineups 阵容、stats 黄牌 / 红牌 / 角球（可重复传）"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"按开赛时间排序方向：asc 升序 / desc 降序","default":"asc","title":"Order"},"description":"按开赛时间排序方向：asc 升序 / desc 降序"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerMatchOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/matches/{match_id}":{"get":{"tags":["足球 · 比赛"],"summary":"足球比赛单条","operationId":"get_match_v1_soccer_matches__match_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"enum":["events","lineups","stats"],"type":"string"},"description":"可选子数据：events 事件、lineups 阵容、stats 黄牌 / 红牌 / 角球（可重复传）","default":[],"title":"Include"},"description":"可选子数据：events 事件、lineups 阵容、stats 黄牌 / 红牌 / 角球（可重复传）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerMatchOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/matches/{match_id}/stats":{"get":{"tags":["足球 · 比赛"],"summary":"足球单场统计","operationId":"get_match_stats_v1_soccer_matches__match_id__stats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"enum":["shots","momentum"],"type":"string"},"description":"可选子数据：shots 射门图、momentum 动量图（可重复传）","default":[],"title":"Include"},"description":"可选子数据：shots 射门图、momentum 动量图（可重复传）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchStatsOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/matches/{match_id}/odds":{"get":{"tags":["足球 · 比赛"],"summary":"足球单场赔率","operationId":"get_match_odds_v1_soccer_matches__match_id__odds_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["euro","handicap","ou","corner"],"type":"string"}},{"type":"null"}],"description":"赔率类型，可重复传（如 type=euro&type=ou）：euro 欧指 / handicap 让球 / ou 大小球 / corner 角球。不传返回全部四种","title":"Type"},"description":"赔率类型，可重复传（如 type=euro&type=ou）：euro 欧指 / handicap 让球 / ou 大小球 / corner 角球。不传返回全部四种"},{"name":"period","in":"query","required":false,"schema":{"enum":["ft","ht"],"type":"string","description":"ft 全场 / ht 半场（半场盘覆盖很少，多数比赛为空）","default":"ft","title":"Period"},"description":"ft 全场 / ht 半场（半场盘覆盖很少，多数比赛为空）"},{"name":"bookmaker_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只取这家公司（对外 ID）；欧指与让球 / 大小球 / 角球是两套公司体系，ID 不通用","title":"Bookmaker Id"},"description":"只取这家公司（对外 ID）；欧指与让球 / 大小球 / 角球是两套公司体系，ID 不通用"},{"name":"main_only","in":"query","required":false,"schema":{"type":"boolean","description":"只返回主流公司。仅对 euro 有效；亚盘体系的公司没有主流标记，传入时忽略、返回全部公司","default":true,"title":"Main Only"},"description":"只返回主流公司。仅对 euro 有效；亚盘体系的公司没有主流标记，传入时忽略、返回全部公司"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerOddsEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/matches/{match_id}/odds/consensus":{"get":{"tags":["足球 · 比赛"],"summary":"足球单场赔率共识","description":"欧指全市场共识：初盘 vs 即时的平均赔率与归一化隐含概率\n\n由我们在已采集的公司上计算（去掉抽水后的概率取平均），不是源站给的数；\n只算全场欧指这一种，还没有计算结果时 `data` 为 null。","operationId":"get_match_odds_consensus_v1_soccer_matches__match_id__odds_consensus_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/fromstats_api.v1.soccer.schemas.match_odds.EuroConsensusOut | NoneEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/odds":{"get":{"tags":["足球 · 赔率"],"summary":"足球批量赔率","description":"一次取一批比赛的赔率，省掉「每场每盘口各发一次请求」\n\n跟一个联赛原先要 380 场 × 4 种盘口 = 1520 次请求，按列表类 300 次/分钟的额度光拉\n一轮就要 5 分钟以上；现在一轮 8 次请求（每页 50 场）拿完。\n\n**必须给至少一个比赛范围条件**（match_id / competition_id / season_id / 日期），\n否则就是在全库比赛上扫赔率表。","operationId":"list_odds_v1_soccer_odds_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"比赛对外 ID，可重复传","title":"Match Id"},"description":"比赛对外 ID，可重复传"},{"name":"competition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"赛事对外 ID，可重复传，最多 50 个","title":"Competition Id"},"description":"赛事对外 ID，可重复传，最多 50 个"},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"赛季对外 ID（子赛季归到同名主赛季）","title":"Season Id"},"description":"赛季对外 ID（子赛季归到同名主赛季）"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期下限（含），按北京时间的日期","title":"Date From"},"description":"开赛日期下限（含），按北京时间的日期"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期上限（含），按北京时间的日期","title":"Date To"},"description":"开赛日期上限（含），按北京时间的日期"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后更新过的赔率行（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00。比赛本身仍按上面的范围条件筛选——这个参数收窄的是每场返回哪些赔率行","title":"Updated Since"},"description":"只返回此时间之后更新过的赔率行（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00。比赛本身仍按上面的范围条件筛选——这个参数收窄的是每场返回哪些赔率行"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"enum":["euro","handicap","ou","corner"],"type":"string"}},{"type":"null"}],"description":"赔率类型，可重复传；不传返回全部四种","title":"Type"},"description":"赔率类型，可重复传；不传返回全部四种"},{"name":"period","in":"query","required":false,"schema":{"enum":["ft","ht"],"type":"string","description":"ft 全场 / ht 半场","default":"ft","title":"Period"},"description":"ft 全场 / ht 半场"},{"name":"bookmaker_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只取这家公司（对外 ID）","title":"Bookmaker Id"},"description":"只取这家公司（对外 ID）"},{"name":"main_only","in":"query","required":false,"schema":{"type":"boolean","description":"只返回主流公司，仅对 euro 有效","default":true,"title":"Main Only"},"description":"只返回主流公司，仅对 euro 有效"},{"name":"has_odds","in":"query","required":false,"schema":{"type":"boolean","description":"为 true 时只返回有赔率的比赛：在所选 type、period、公司（及 updated_since）下至少有一行，分页总数随之变化。不传或为 false 时范围内的比赛都返回，没有赔率的各盘口为空数组","default":false,"title":"Has Odds"},"description":"为 true 时只返回有赔率的比赛：在所选 type、period、公司（及 updated_since）下至少有一行，分页总数随之变化。不传或为 false 时范围内的比赛都返回，没有赔率的各盘口为空数组"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"每页比赛数，最大 50（一场比赛携带几十到上百行赔率，故比其它列表更小）","default":20,"title":"Limit"},"description":"每页比赛数，最大 50（一场比赛携带几十到上百行赔率，故比其它列表更小）"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerMatchOddsOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/matches/{match_id}/animation":{"get":{"tags":["足球 · 比赛"],"summary":"足球单场动画直播嵌入地址","description":"返回本场动画直播的嵌入地址（iframe / WebView 直接打开）。地址有效期 2 小时，过期请重新获取。","operationId":"get_match_animation_v1_soccer_matches__match_id__animation_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerMatchAnimationOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"动画直播暂不可用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/standings":{"get":{"tags":["足球 · 积分榜"],"summary":"足球积分榜","description":"联赛赛季返回联赛表：多联盟按联盟拆成多张；分阶段的赛季默认返回当前阶段及同期阶段（并列分组全部返回，\n先后进行的上下半程、常规赛与争冠/保级组只返回当前的），其余阶段用 stage_id 取。杯赛赛季返回小组表。\n每张表带所属阶段 stage；两者都没有时 tables 为空数组","operationId":"get_standings_v1_soccer_standings_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"season_id","in":"query","required":true,"schema":{"type":"string","description":"赛季对外 ID","title":"Season Id"},"description":"赛季对外 ID"},{"name":"stage_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按阶段筛选（阶段对外 ID）：小组阶段返回该阶段的小组表，联赛子阶段只返回该阶段的联赛表；不传时联赛返回当前阶段及与它同期进行的阶段","title":"Stage Id"},"description":"按阶段筛选（阶段对外 ID）：小组阶段返回该阶段的小组表，联赛子阶段只返回该阶段的联赛表；不传时联赛返回当前阶段及与它同期进行的阶段"},{"name":"group_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只返回某一小组（小组对外 ID），优先于 stage_id","title":"Group Id"},"description":"只返回某一小组（小组对外 ID），优先于 stage_id"},{"name":"venue","in":"query","required":false,"schema":{"enum":["total","home","away"],"type":"string","description":"主客场口径，只对联赛表有效","default":"total","title":"Venue"},"description":"主客场口径，只对联赛表有效"},{"name":"period","in":"query","required":false,"schema":{"enum":["ft","ht"],"type":"string","description":"ft 全场 / ht 半场","default":"ft","title":"Period"},"description":"ft 全场 / ht 半场"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoccerStandingsOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/season-team-stats":{"get":{"tags":["足球 · 赛季统计"],"summary":"足球球队赛季统计","operationId":"list_team_season_stats_v1_soccer_season_team_stats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"season_id","in":"query","required":true,"schema":{"type":"string","description":"赛季对外 ID","title":"Season Id"},"description":"赛季对外 ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只看某支球队（球队对外 ID）","title":"Team Id"},"description":"只看某支球队（球队对外 ID）"},{"name":"venue","in":"query","required":false,"schema":{"enum":["total","home","away"],"type":"string","description":"total 全部 / home 主场 / away 客场","default":"total","title":"Venue"},"description":"total 全部 / home 主场 / away 客场"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按某项指标排序，取值为响应 stats 里的字段名（如 goals、xg）；不传按球队名排序","enum":["accurate_crosses","aerial_duels_won","appearances","avg_possession","clearances","corners","dribbles","fouls","fumbles","goals","ground_duels_won","headers","headers_won","offsides","passes","passes_accurate","red_cards","saves","shots","shots_blocked","shots_conceded","shots_off_target","shots_on_target","tackles","throw_ins","touches_in_opposition_box","xg","xg_non_penalty","xg_on_target","xg_open_play","xg_set_play","yellow_cards"],"title":"Sort"},"description":"按某项指标排序，取值为响应 stats 里的字段名（如 goals、xg）；不传按球队名排序"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"排序方向：asc 升序 / desc 降序；不传 sort 时按球队名，此参数同样生效","default":"desc","title":"Order"},"description":"排序方向：asc 升序 / desc 降序；不传 sort 时按球队名，此参数同样生效"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamSeasonStatsOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/season-player-stats":{"get":{"tags":["足球 · 赛季统计"],"summary":"足球球员赛季统计","operationId":"list_player_season_stats_v1_soccer_season_player_stats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"season_id","in":"query","required":true,"schema":{"type":"string","description":"赛季对外 ID","title":"Season Id"},"description":"赛季对外 ID"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只看某支球队的球员（球队对外 ID）","title":"Team Id"},"description":"只看某支球队的球员（球队对外 ID）"},{"name":"position","in":"query","required":false,"schema":{"anyOf":[{"enum":["GK","CB","LB","RB","LWB","RWB","DM","CM","AM","LM","RM","LW","RW","ST"],"type":"string"},{"type":"null"}],"description":"按具体位置筛选；取值同响应的 position 字段","title":"Position"},"description":"按具体位置筛选；取值同响应的 position 字段"},{"name":"position_group","in":"query","required":false,"schema":{"anyOf":[{"enum":["GK","DEF","MID","FWD"],"type":"string"},{"type":"null"}],"description":"按位置大类筛选；取值同响应的 position_group 字段，含只标了大类的球员","title":"Position Group"},"description":"按位置大类筛选；取值同响应的 position_group 字段，含只标了大类的球员"},{"name":"venue","in":"query","required":false,"schema":{"enum":["total","home","away"],"type":"string","description":"total 全部 / home 主场 / away 客场","default":"total","title":"Venue"},"description":"total 全部 / home 主场 / away 客场"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按某项指标排序，取值为响应 stats 里的字段名（如 goals、assists）；不传按球队、球员名排序","enum":["aerial_duels_won","appearances","assists","best_player_awards","clearances","clearances_successful","crosses","crosses_accurate","defensive_actions","dispossessed","dribbles_successful","fouls","goal_conversion_pct","goals","goals_prevented","headed_clearances","interceptions","key_passes","long_balls","long_balls_accurate","minutes_per_assist","minutes_per_goal","minutes_played","non_penalty_goals","offsides","offsides_provoked","own_goals","pass_accuracy_pct","passes","passes_accurate","passes_into_final_third","penalties_won","penalty_goals","rated_appearances","rating_total","recoveries","red_cards","shots","shots_blocked","shots_on_post","shots_on_target","substitute_appearances","sweeper_actions","tackles","through_balls","through_balls_accurate","touches","touches_in_opposition_box","turnovers","was_fouled","xa","xg","xg_non_penalty","xg_on_target","xg_on_target_faced","yellow_cards"],"title":"Sort"},"description":"按某项指标排序，取值为响应 stats 里的字段名（如 goals、assists）；不传按球队、球员名排序"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"排序方向：asc 升序 / desc 降序；不传 sort 时按球队、球员名，此参数同样生效","default":"desc","title":"Order"},"description":"排序方向：asc 升序 / desc 降序；不传 sort 时按球队、球员名，此参数同样生效"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerSeasonStatsOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/transfers":{"get":{"tags":["足球 · 转会"],"summary":"足球转会记录","operationId":"list_transfers_v1_soccer_transfers_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"player_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按球员筛选（球员对外 ID）","title":"Player Id"},"description":"按球员筛选（球员对外 ID）"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按球队筛选（球队对外 ID），转入或转出","title":"Team Id"},"description":"按球队筛选（球队对外 ID），转入或转出"},{"name":"season","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按转会窗口赛季筛选，如 2025-2026；取值同响应的 season 字段，覆盖绝大多数记录","title":"Season"},"description":"按转会窗口赛季筛选，如 2025-2026；取值同响应的 season 字段，覆盖绝大多数记录"},{"name":"season_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按某赛事的赛季筛选（赛季对外 ID）。只有 FotMob 侧记了赛事赛季归属的记录能命中（约 4%），想按赛季筛通常该用 season","title":"Season Id"},"description":"按某赛事的赛季筛选（赛季对外 ID）。只有 FotMob 侧记了赛事赛季归属的记录能命中（约 4%），想按赛季筛通常该用 season"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"转会日期下限（含）","title":"Date From"},"description":"转会日期下限（含）"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"转会日期上限（含）。不传时默认今天（北京时间）：库里有预定在未来的记录（租借到期等），默认不返回，要取就显式传一个更晚的日期。带 updated_since 时不加这个默认值","title":"Date To"},"description":"转会日期上限（含）。不传时默认今天（北京时间）：库里有预定在未来的记录（租借到期等），默认不返回，要取就显式传一个更晚的日期。带 updated_since 时不加这个默认值"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"enum":["transfer","loan","loan_end","free","contract"],"type":"string"},{"type":"null"}],"description":"按类型筛选","title":"Type"},"description":"按类型筛选"},{"name":"min_fee","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"最低转会费（欧元），无费用的记录不返回","title":"Min Fee"},"description":"最低转会费（欧元），无费用的记录不返回"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"只返回此时间之后入库或变更的记录（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00。注意这是**记录入库时间**，不是转会发生时间（后者是 date 字段），补采历史转会时两者会相差很远。增量同步要拿到全部变更，所以带这个参数时 date_to 没有默认值，未来日期的记录也返回","title":"Updated Since"},"description":"只返回此时间之后入库或变更的记录（含），ISO 8601，可带任意时区偏移；不带偏移按 +08:00。注意这是**记录入库时间**，不是转会发生时间（后者是 date 字段），补采历史转会时两者会相差很远。增量同步要拿到全部变更，所以带这个参数时 date_to 没有默认值，未来日期的记录也返回"},{"name":"sort","in":"query","required":false,"schema":{"enum":["date","fee","market_value"],"type":"string","description":"date 按日期 / fee 按转会费 / market_value 按身价","default":"date","title":"Sort"},"description":"date 按日期 / fee 按转会费 / market_value 按身价"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"排序方向：asc 升序 / desc 降序","default":"desc","title":"Order"},"description":"排序方向：asc 升序 / desc 降序"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/transfers/team-totals":{"get":{"tags":["足球 · 转会"],"summary":"足球球队转会总榜","description":"只计永久转会（排除租借）；球探转会费为主，FotMob 补球探没有的记录","operationId":"team_totals_v1_soccer_transfers_team_totals_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"role","in":"query","required":false,"schema":{"enum":["buyer","seller"],"type":"string","description":"buyer 按买入总花费 / seller 按卖出总收入","default":"buyer","title":"Role"},"description":"buyer 按买入总花费 / seller 按卖出总收入"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"统计起始日（含）；默认截止日往前 90 天","title":"Date From"},"description":"统计起始日（含）；默认截止日往前 90 天"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"统计截止日（含）；默认今天（北京时间）","title":"Date To"},"description":"统计截止日（含）；默认今天（北京时间）"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"返回前几名","default":10,"title":"Limit"},"description":"返回前几名"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamTransferTotalsOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/rankings":{"get":{"tags":["足球 · 排名"],"summary":"足球排名","description":"每行带 ranking_date 标明所属排名期；没有任何排名期时返回空列表\n\nlimit 上限 250 而非通用的 200：FIFA 男足官方榜 211 支队，卡在 200 取不全一期。","operationId":"list_rankings_v1_soccer_rankings_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"enum":["national","club"],"type":"string","description":"national 国家队（FIFA 官方）/ club 俱乐部","default":"national","title":"Type"},"description":"national 国家队（FIFA 官方）/ club 俱乐部"},{"name":"gender","in":"query","required":false,"schema":{"enum":["men","women"],"type":"string","description":"国家队排名的性别；俱乐部忽略","default":"men","title":"Gender"},"description":"国家队排名的性别；俱乐部忽略"},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"查询日期：返回不晚于该日的最近一期；不传取最新一期","title":"Date"},"description":"查询日期：返回不晚于该日的最近一期；不传取最新一期"},{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"只看某支球队（球队对外 ID）","title":"Team Id"},"description":"只看某支球队（球队对外 ID）"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按球队名模糊搜索","title":"Search"},"description":"按球队名模糊搜索"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":250,"minimum":1,"description":"每页条数，最大 250","default":50,"title":"Limit"},"description":"每页条数，最大 250"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RankingRowOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/rankings/dates":{"get":{"tags":["足球 · 排名"],"summary":"足球排名可用日期","operationId":"list_ranking_dates_v1_soccer_rankings_dates_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"enum":["national","club"],"type":"string","description":"national 国家队 / club 俱乐部","default":"national","title":"Type"},"description":"national 国家队 / club 俱乐部"},{"name":"gender","in":"query","required":false,"schema":{"enum":["men","women"],"type":"string","description":"国家队排名的性别；俱乐部忽略","default":"men","title":"Gender"},"description":"国家队排名的性别；俱乐部忽略"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RankingDatesOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/predictions":{"get":{"tags":["足球 · 预测"],"summary":"足球预测列表","description":"同一场比赛每个模型版本各一条（最新一次预测）；默认按开赛时间升序\n\n传 `order=desc` 取最近的比赛。没有它的话「看最新一批」要先请求一次拿 total、\n再用 offset=total-limit 翻到末页，凭空多一次往返。","operationId":"list_predictions_v1_soccer_predictions_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"按开赛日期筛选（北京时间的日期）","title":"Date"},"description":"按开赛日期筛选（北京时间的日期）"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期下限（含）","title":"Date From"},"description":"开赛日期下限（含）"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"开赛日期上限（含）","title":"Date To"},"description":"开赛日期上限（含）"},{"name":"competition_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按赛事筛选（赛事对外 ID）","title":"Competition Id"},"description":"按赛事筛选（赛事对外 ID）"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["upcoming","live","finished","postponed","cancelled","tbd","abandoned","interrupted"],"type":"string"},{"type":"null"}],"description":"按比赛状态筛选","title":"Status"},"description":"按比赛状态筛选"},{"name":"model_source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按模型来源筛选","title":"Model Source"},"description":"按模型来源筛选"},{"name":"model_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按模型版本筛选","title":"Model Version"},"description":"按模型版本筛选"},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"按开赛时间排序方向：asc 升序 / desc 降序","default":"asc","title":"Order"},"description":"按开赛时间排序方向：asc 升序 / desc 降序"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"每页条数，最大 200","default":50,"title":"Limit"},"description":"每页条数，最大 200"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"起始偏移","default":0,"title":"Offset"},"description":"起始偏移"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionOutPage"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/matches/{match_id}/prediction":{"get":{"tags":["足球 · 比赛"],"summary":"足球单场最新预测","description":"多个模型都有预测时返回最近生成的一条；比赛不存在或没有预测都是 404","operationId":"get_match_prediction_v1_soccer_matches__match_id__prediction_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}},{"name":"model_source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按模型来源筛选","title":"Model Source"},"description":"按模型来源筛选"},{"name":"model_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按模型版本筛选","title":"Model Version"},"description":"按模型版本筛选"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionOutEnvelope"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/soccer/prediction-models/performance":{"get":{"tags":["足球 · 预测"],"summary":"足球预测模型表现","description":"只统计已回填比赛结果的预测；按平均 Brier 分数升序","operationId":"model_performance_v1_soccer_prediction_models_performance_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"model_source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"按模型来源筛选","title":"Model Source"},"description":"按模型来源筛选"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelPerformanceOutList"}}}},"401":{"description":"缺少或无效的 API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"资源不存在","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"请求参数不合法","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"超出调用额度，见 Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"BasketballCompetitionRef":{"properties":{"id":{"type":"string","title":"Id","description":"赛事对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名；源站未提供全名时为简称"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名；源站未提供全名时为简称"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名；源站未提供全名时为简称"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"赛事 Logo；尚未同步或源站无图时为 null"}},"type":"object","required":["id","name","name_cn","name_cnt","logo_url"],"title":"BasketballCompetitionRef"},"BasketballEuroSideOut":{"properties":{"home":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Home","description":"主胜"},"away":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Away","description":"客胜"},"home_prob":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Home Prob","description":"主胜概率（%）"},"away_prob":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Away Prob","description":"客胜概率（%）"},"return_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Return Rate","description":"返还率（%）"},"kelly_home":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Kelly Home","description":"凯利指数（主）；源站只给即时盘，初盘恒为 null"},"kelly_away":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Kelly Away","description":"凯利指数（客）；源站只给即时盘，初盘恒为 null"}},"type":"object","required":["home","away","home_prob","away_prob","return_rate","kelly_home","kelly_away"],"title":"BasketballEuroSideOut","description":"欧指一侧（初盘或即时盘）。与足球 `EuroSideOut` 同名同形，篮球没有平局"},"BasketballMatchPlayerOut":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球员对外 ID；尚未入映射为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"},"position":{"anyOf":[{"type":"string","enum":["G","F","C"]},{"type":"null"}],"title":"Position","description":"位置：G 后卫 / F 前锋 / C 中锋；源站未给为 null"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"球衣号。是字符串不是数字——篮球的 00 号与 0 号是两个人"},"is_starter":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Starter","description":"是否首发"},"stats":{"$ref":"#/components/schemas/BasketballMatchPlayerStatsValues","description":"本场个人技术统计"}},"type":"object","required":["id","name","name_cn","name_cnt","position","shirt_number","is_starter","stats"],"title":"BasketballMatchPlayerOut","description":"本场出场的球员。\n\n`id` 来自 canonical 层的球员映射（Silver 层没有球员表，但映射层有，\n生产实测单场统计行 100% 都能映射上）。尚未入映射的新球员为 null。\n可以拿这个 ID 去 `/basketball/players/{id}` 取球员详情。"},"BasketballMatchPlayerStatsValues":{"properties":{"minutes_played":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minutes Played","description":"出场时间（分钟）"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points","description":"得分"},"field_goals_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Goals Made","description":"投篮命中"},"field_goals_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Goals Attempted","description":"投篮出手"},"three_pointers_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Three Pointers Made","description":"三分命中"},"three_pointers_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Three Pointers Attempted","description":"三分出手"},"free_throws_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Throws Made","description":"罚球命中"},"free_throws_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Throws Attempted","description":"罚球出手"},"offensive_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offensive Rebounds","description":"进攻篮板"},"defensive_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Defensive Rebounds","description":"防守篮板"},"total_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Rebounds","description":"总篮板"},"assists":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assists","description":"助攻"},"steals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Steals","description":"抢断"},"blocks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Blocks","description":"盖帽"},"turnovers":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turnovers","description":"失误"},"fouls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fouls","description":"犯规"},"plus_minus":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Plus Minus","description":"正负值；部分赛事源站不给，为 null"}},"type":"object","required":["minutes_played","points","field_goals_made","field_goals_attempted","three_pointers_made","three_pointers_attempted","free_throws_made","free_throws_attempted","offensive_rebounds","defensive_rebounds","total_rebounds","assists","steals","blocks","turnovers","fouls","plus_minus"],"title":"BasketballMatchPlayerStatsValues"},"BasketballMatchStatsOut":{"properties":{"match_id":{"type":"string","title":"Match Id","description":"比赛对外 ID"},"home":{"$ref":"#/components/schemas/BasketballMatchTeamStatsOut","description":"主队"},"away":{"$ref":"#/components/schemas/BasketballMatchTeamStatsOut","description":"客队"}},"type":"object","required":["match_id","home","away"],"title":"BasketballMatchStatsOut"},"BasketballMatchTeamStatsOut":{"properties":{"team":{"anyOf":[{"$ref":"#/components/schemas/TeamRef"},{"type":"null"}],"description":"球队；尚未入映射为 null"},"stats":{"anyOf":[{"$ref":"#/components/schemas/BasketballMatchTeamStatsValues"},{"type":"null"}],"description":"本场球队技术统计；无数据为 null"},"players":{"items":{"$ref":"#/components/schemas/BasketballMatchPlayerOut"},"type":"array","title":"Players","description":"本场球员技术统计；无数据为空数组"}},"type":"object","required":["team","stats","players"],"title":"BasketballMatchTeamStatsOut"},"BasketballMatchTeamStatsValues":{"properties":{"minutes_played":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minutes Played","description":"全队出场时间合计（分钟）"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points","description":"得分"},"field_goals_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Goals Made","description":"投篮命中"},"field_goals_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Goals Attempted","description":"投篮出手"},"field_goal_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Field Goal Pct","description":"投篮命中率 %"},"three_pointers_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Three Pointers Made","description":"三分命中"},"three_pointers_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Three Pointers Attempted","description":"三分出手"},"three_point_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Three Point Pct","description":"三分命中率 %"},"free_throws_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Throws Made","description":"罚球命中"},"free_throws_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Throws Attempted","description":"罚球出手"},"free_throw_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Free Throw Pct","description":"罚球命中率 %"},"offensive_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offensive Rebounds","description":"进攻篮板"},"defensive_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Defensive Rebounds","description":"防守篮板"},"total_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Rebounds","description":"总篮板"},"assists":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assists","description":"助攻"},"steals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Steals","description":"抢断"},"blocks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Blocks","description":"盖帽"},"turnovers":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turnovers","description":"失误"},"fouls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fouls","description":"犯规"},"two_point_points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Two Point Points","description":"两分球得分"},"three_point_points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Three Point Points","description":"三分球得分"},"points_in_paint":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points In Paint","description":"禁区得分"},"fast_break_points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fast Break Points","description":"快攻得分"},"max_lead":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Lead","description":"最大领先分"},"quarter_fouls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quarter Fouls","description":"本节犯规数（比赛进行中才有意义）"},"timeouts_left":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeouts Left","description":"剩余暂停数（比赛进行中才有意义）"}},"type":"object","required":["minutes_played","points","field_goals_made","field_goals_attempted","field_goal_pct","three_pointers_made","three_pointers_attempted","three_point_pct","free_throws_made","free_throws_attempted","free_throw_pct","offensive_rebounds","defensive_rebounds","total_rebounds","assists","steals","blocks","turnovers","fouls","two_point_points","three_point_points","points_in_paint","fast_break_points","max_lead","quarter_fouls","timeouts_left"],"title":"BasketballMatchTeamStatsValues"},"BasketballPlayerMatchOut":{"properties":{"match_id":{"type":"string","title":"Match Id","description":"比赛对外 ID"},"match_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Time","description":"开赛时间"},"competition":{"$ref":"#/components/schemas/BasketballCompetitionRef","description":"赛事"},"season":{"anyOf":[{"$ref":"#/components/schemas/SeasonRef"},{"type":"null"}],"description":"赛季；尚未入映射为 null"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamRef"},{"type":"null"}],"description":"球员当场所属球队；球队尚未入映射为 null"},"opponent":{"anyOf":[{"$ref":"#/components/schemas/TeamRef"},{"type":"null"}],"description":"当场对手；球队尚未入映射为 null"},"is_home":{"type":"boolean","title":"Is Home","description":"球员所在队是否主队"},"score_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score Home","description":"主队全场得分；未开赛为 null"},"score_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score Away","description":"客队全场得分；未开赛为 null"},"is_starter":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Starter","description":"当场是否首发"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"当场球衣号。字符串——00 号与 0 号是两个人"},"position":{"anyOf":[{"type":"string","enum":["G","F","C"]},{"type":"null"}],"title":"Position","description":"当场位置：G / F / C；源站未给为 null"},"stats":{"$ref":"#/components/schemas/BasketballMatchPlayerStatsValues","description":"当场个人技术统计"}},"type":"object","required":["match_id","match_time","competition","season","team","opponent","is_home","score_home","score_away","is_starter","shirt_number","position","stats"],"title":"BasketballPlayerMatchOut","description":"球员的一场出场记录。\n\n**`team` / `shirt_number` / `position` 取自这一场的统计行，不是球员详情里那份快照。**\n换过队的球员（生产 337 人）看 2024 年的比赛就该显示当时那支队，不是现在这支。\n\n前缀字段与足球 `/soccer/players/{id}/matches` 同名同义；统计项与篮球\nbox score 的 `players[].stats` 是同一组 17 项，两个入口共用一份字段表。"},"BasketballPlayerOut":{"properties":{"id":{"type":"string","title":"Id","description":"球员对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"},"position":{"anyOf":[{"type":"string","enum":["G","F","C"]},{"type":"null"}],"title":"Position","description":"位置：G 后卫 / F 前锋 / C 中锋；源站未给为 null"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"球衣号。是字符串不是数字——篮球的 00 号与 0 号是两个人"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamRef"},{"type":"null"}],"description":"最近一次出场所属球队；只在赛季榜里出现过的球员取榜单那一行的球队"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录最近一次更新时间，供 updated_since 增量拉取"}},"type":"object","required":["id","name","name_cn","name_cnt","position","shirt_number","team","updated_at"],"title":"BasketballPlayerOut"},"BasketballPlayerSeasonStatRow":{"properties":{"season":{"anyOf":[{"$ref":"#/components/schemas/SeasonRef"},{"type":"null"}],"description":"赛季；尚未入映射为 null"},"competition":{"$ref":"#/components/schemas/BasketballCompetitionRef","description":"赛事"},"team":{"anyOf":[{"$ref":"#/components/schemas/TeamRef"},{"type":"null"}],"description":"上榜时所属球队；赛季中转会的球员每队一行"},"stage_type":{"type":"string","enum":["regular","playoff","preseason","cup"],"title":"Stage Type","description":"赛事类型：regular 常规赛 / playoff 季后赛 / preseason 季前赛 / cup 杯赛"},"stats":{"$ref":"#/components/schemas/BasketballPlayerSeasonStatsValues","description":"该榜的赛季统计"}},"type":"object","required":["season","competition","team","stage_type","stats"],"title":"BasketballPlayerSeasonStatRow","description":"球员上过的一张赛季榜。\n\n源站每赛季 × 赛事类型发 12 个榜单、每榜只收前 20 名，所以一名球员通常只在\n自己上榜的那几项有值，其余为 null——这是榜单的形态，不是缺口。\n名次不给：榜单按项分开排，同一行在不同项里名次不同，由使用方按需要自己排。"},"BasketballPlayerSeasonStatsOut":{"properties":{"player":{"$ref":"#/components/schemas/BasketballStatsPlayerRef","description":"球员"},"team":{"$ref":"#/components/schemas/TeamRef","description":"上榜时所属球队；赛季中转会的球员每队一行"},"stage_type":{"type":"string","enum":["regular","playoff","preseason","cup"],"title":"Stage Type","description":"赛事类型：regular 常规赛 / playoff 季后赛 / preseason 季前赛 / cup 杯赛"},"stats":{"$ref":"#/components/schemas/BasketballPlayerSeasonStatsValues","description":"赛季累计与场均指标；该球员没上榜的项为 null"}},"type":"object","required":["player","team","stage_type","stats"],"title":"BasketballPlayerSeasonStatsOut"},"BasketballPlayerSeasonStatsValues":{"properties":{"appearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Appearances","description":"出场场次"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points","description":"总得分"},"points_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Points Avg","description":"场均得分"},"field_goals_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Goals Attempted","description":"投篮出手"},"field_goals_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Field Goals Made","description":"投篮命中"},"field_goal_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Field Goal Pct","description":"投篮命中率 %"},"three_pointers_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Three Pointers Attempted","description":"三分出手"},"three_pointers_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Three Pointers Made","description":"三分命中"},"three_point_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Three Point Pct","description":"三分命中率 %"},"free_throws_attempted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Throws Attempted","description":"罚球出手"},"free_throws_made":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Throws Made","description":"罚球命中"},"free_throw_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Free Throw Pct","description":"罚球命中率 %"},"offensive_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offensive Rebounds","description":"进攻篮板"},"defensive_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Defensive Rebounds","description":"防守篮板"},"total_rebounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Rebounds","description":"总篮板"},"rebounds_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rebounds Avg","description":"场均篮板"},"assists":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assists","description":"助攻"},"assists_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Assists Avg","description":"场均助攻"},"blocks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Blocks","description":"盖帽"},"blocks_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Blocks Avg","description":"场均盖帽"},"steals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Steals","description":"抢断"},"steals_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Steals Avg","description":"场均抢断"},"turnovers":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turnovers","description":"失误"},"turnovers_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Turnovers Avg","description":"场均失误"},"fouls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fouls","description":"犯规"},"fouls_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fouls Avg","description":"场均犯规"},"double_doubles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Double Doubles","description":"两双次数"},"triple_doubles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Triple Doubles","description":"三双次数"}},"type":"object","required":["appearances","points","points_avg","field_goals_attempted","field_goals_made","field_goal_pct","three_pointers_attempted","three_pointers_made","three_point_pct","free_throws_attempted","free_throws_made","free_throw_pct","offensive_rebounds","defensive_rebounds","total_rebounds","rebounds_avg","assists","assists_avg","blocks","blocks_avg","steals","steals_avg","turnovers","turnovers_avg","fouls","fouls_avg","double_doubles","triple_doubles"],"title":"BasketballPlayerSeasonStatsValues"},"BasketballStatsPlayerRef":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球员对外 ID；尚未入映射为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"}},"type":"object","required":["id","name","name_cn","name_cnt"],"title":"BasketballStatsPlayerRef","description":"榜单里的球员。\n\n`id` 来自 canonical 层的球员映射（Silver 层没有球员表，但映射层有，\n生产实测榜单行 100% 都能映射上）。尚未入映射的新球员为 null。\n可以拿这个 ID 去 `/basketball/players/{id}` 取球员详情。"},"BookmakerRef":{"properties":{"id":{"type":"string","title":"Id","description":"赔率公司对外 ID；欧指体系与让分 / 总分体系是两套公司，ID 互不相通"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名；让分 / 总分体系公司无英文名，恒为 null"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名（源站简称）"}},"type":"object","required":["id","name","name_cn"],"title":"BookmakerRef"},"BracketLegOut":{"properties":{"match_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Id","description":"比赛对外 ID；比赛尚未入映射时为 null"},"match_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Time","description":"开赛时间，与比赛接口的 match_time 相同"},"status":{"anyOf":[{"type":"string","enum":["upcoming","live","finished","postponed","cancelled","tbd","abandoned","interrupted"]},{"type":"null"}],"title":"Status","description":"比赛状态"},"home_team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"主队"},"away_team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"客队"},"score_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score Home","description":"主队 90 分钟得分，与比赛接口的 score.home 相同；未开赛为 null"},"score_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score Away","description":"客队 90 分钟得分；未开赛为 null"},"et_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Et Home","description":"主队加时赛后得分（120 分钟）；无加时为 null"},"et_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Et Away","description":"客队加时赛后得分（120 分钟）；无加时为 null"},"penalties_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Penalties Home","description":"点球大战主队进球，无点球大战为 null"},"penalties_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Penalties Away","description":"点球大战客队进球，无点球大战为 null"},"is_replay":{"type":"boolean","title":"Is Replay","description":"是否重赛：原赛打平后重新比的一场（如英足总杯资格赛），不是两回合制的次回合。重赛的比分不与原赛相加，对阵的最终比分看重赛这一场"}},"type":"object","required":["match_id","match_time","status","home_team","away_team","score_home","score_away","et_home","et_away","penalties_home","penalties_away","is_replay"],"title":"BracketLegOut"},"BracketOut":{"properties":{"competition":{"$ref":"#/components/schemas/SoccerCompetitionRef","description":"赛事"},"season":{"$ref":"#/components/schemas/SeasonRef","description":"赛季"},"status":{"type":"string","enum":["available","unavailable"],"title":"Status","description":"available 能画出对阵图 / unavailable 淘汰轮不足"},"rounds":{"items":{"$ref":"#/components/schemas/BracketRoundOut"},"type":"array","title":"Rounds","description":"轮次，从早到晚"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings","description":"构图时的告警，如某对阵有胜者但找不到下一轮"}},"type":"object","required":["competition","season","status","rounds","warnings"],"title":"BracketOut"},"BracketRoundOut":{"properties":{"id":{"type":"string","title":"Id","description":"轮次在图中的位置标识，如 r1；只在本响应内有意义"},"stage_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage Id","description":"对应的阶段对外 ID；阶段尚未入映射时为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名，如 Quarter-finals"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名，如 1/4决赛"},"order":{"type":"integer","title":"Order","description":"轮次顺序，从 0 起"},"kind":{"type":"string","enum":["knockout","placement"],"title":"Kind","description":"knockout 淘汰轮 / placement 排位赛（如季军战）"},"ties":{"items":{"$ref":"#/components/schemas/BracketTieOut"},"type":"array","title":"Ties","description":"本轮对阵；源站单列的重赛轮次已并入原轮次，不单独成轮"}},"type":"object","required":["id","stage_id","name","name_cn","order","kind","ties"],"title":"BracketRoundOut"},"BracketTieOut":{"properties":{"id":{"type":"string","title":"Id","description":"对阵在图中的位置标识，如 r1-t3；只在本响应内有意义"},"order":{"type":"integer","title":"Order","description":"在本轮里的顺序，从 0 起"},"winner_team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Winner Team Id","description":"晋级球队对外 ID；全部回合完场才判，依次看源站标的晋级方、总比分、点球、下一轮出现的球队；未分出或无法判断为 null"},"aggregate_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aggregate Home","description":"首回合主队在整个对阵里的进球合计（打了加时的回合按 120 分钟比分，不含点球）；只有一回合、有回合未完场、或对阵里有重赛（legs[].is_replay）时为 null"},"aggregate_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aggregate Away","description":"首回合客队在整个对阵里的进球合计；口径同上"},"next_tie_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Tie Id","description":"晋级去向的对阵 id；决赛、无法判断、或晋级后进的是小组赛 / 联赛阶段（如欧冠附加赛）时为 null"},"next_slot":{"anyOf":[{"type":"string","enum":["home","away"]},{"type":"null"}],"title":"Next Slot","description":"晋级后在下一对阵里的主客位（下一对阵有多个回合时按首回合）"},"legs":{"items":{"$ref":"#/components/schemas/BracketLegOut"},"type":"array","title":"Legs","description":"回合列表，按开赛时间排；同一轮里同两队的比赛（两回合、重赛）合成一个对阵"}},"type":"object","required":["id","order","winner_team_id","aggregate_home","aggregate_away","next_tie_id","next_slot","legs"],"title":"BracketTieOut"},"CareerEntryOut":{"properties":{"team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"效力球队"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","description":"senior 一线队 / youth 青年队 / national_team 国家队"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date","description":"开始日期"},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date","description":"结束日期；在役为 null"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active","description":"是否当前效力"},"appearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Appearances","description":"出场"},"goals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Goals","description":"进球"},"assists":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assists","description":"助攻"}},"type":"object","required":["team","category","start_date","end_date","active","appearances","goals","assists"],"title":"CareerEntryOut"},"CareerSeasonStatsOut":{"properties":{"season":{"anyOf":[{"$ref":"#/components/schemas/SeasonRef"},{"type":"null"}],"description":"赛季；赛季尚未入映射时为 null"},"competition":{"anyOf":[{"$ref":"#/components/schemas/SoccerCompetitionRef"},{"type":"null"}],"description":"赛事；赛事尚未入映射时为 null"},"team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"球队"},"goals":{"type":"integer","title":"Goals","description":"进球"},"assists":{"type":"integer","title":"Assists","description":"助攻"},"minutes":{"type":"integer","title":"Minutes","description":"上场分钟"},"appearances":{"type":"integer","title":"Appearances","description":"出场次数（源站赛季统计；缺失时按上场分钟 ÷ 90 折算）"},"rating_avg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating Avg","description":"场均评分"},"yellow_cards":{"type":"integer","title":"Yellow Cards","description":"黄牌"},"red_cards":{"type":"integer","title":"Red Cards","description":"红牌"},"full_stats":{"$ref":"#/components/schemas/PlayerSeasonStatsValues","description":"该赛季的 56 项完整指标；字段名与 /soccer/season-player-stats 的 stats 一致，源站没给的项为 null"}},"type":"object","required":["season","competition","team","goals","assists","minutes","appearances","rating_avg","yellow_cards","red_cards","full_stats"],"title":"CareerSeasonStatsOut"},"CommentaryEntryOut":{"properties":{"quarter":{"type":"integer","title":"Quarter","description":"节次：1~4 常规节，5 起为加时"},"seq":{"type":"integer","title":"Seq","description":"节内序号，从 0 开始；与 quarter 一起构成时间顺序"},"remaining_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remaining Time","description":"本节剩余时间 MM:SS"},"side":{"anyOf":[{"type":"string","enum":["home","away","neutral"]},{"type":"null"}],"title":"Side","description":"归属方：home 主队 / away 客队 / neutral 中性（暂停、节次起止等）"},"home_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Home Score","description":"该条发生时的主队比分"},"away_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Away Score","description":"该条发生时的客队比分"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"解说文本"}},"type":"object","required":["quarter","seq","remaining_time","side","home_score","away_score","text"],"title":"CommentaryEntryOut"},"CompetitionOut":{"properties":{"id":{"type":"string","title":"Id","description":"赛事对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文全名；源站未提供全名时为简称"},"name_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Short","description":"英文简称"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文全名；源站未提供全名时为简称"},"name_cn_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn Short","description":"简体中文简称"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文全名；源站未提供全名时为简称"},"name_cnt_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt Short","description":"繁体中文简称"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"赛事 Logo；尚未同步或源站无图时为 null"},"type":{"anyOf":[{"type":"string","enum":["league","cup"]},{"type":"null"}],"title":"Type","description":"league 联赛（有常规赛）/ cup 杯赛或明星赛；未知为 null"},"region":{"anyOf":[{"$ref":"#/components/schemas/RegionOut"},{"type":"null"}],"description":"所属国家 / 地区；洲际赛事为「欧洲赛事」这类容器"},"current_season":{"anyOf":[{"$ref":"#/components/schemas/SeasonRef"},{"type":"null"}],"description":"最新赛季"},"seasons":{"items":{"$ref":"#/components/schemas/SeasonRef"},"type":"array","title":"Seasons","description":"最近 N 个赛季，新的在前；由 seasons 参数控制条数"}},"type":"object","required":["id","name","name_short","name_cn","name_cn_short","name_cnt","name_cnt_short","logo_url","type","region","current_season","seasons"],"title":"CompetitionOut"},"ConferenceRef":{"properties":{"id":{"type":"string","title":"Id","description":"联盟 / 分区对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名，如 Eastern Conference"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"中文名"}},"type":"object","required":["id","name","name_cn"],"title":"ConferenceRef","description":"联盟 / 分区。两个运动同一形状——足球的 MLS 东西部与篮球的 NBA 东西部\n对接入方是同一个概念，别让一边给对象、另一边给字符串。"},"DefenseStatsOut":{"properties":{"fouls":{"type":"integer","title":"Fouls","description":"犯规"},"tackles":{"type":"integer","title":"Tackles","description":"抢断"},"interceptions":{"type":"integer","title":"Interceptions","description":"拦截"},"blocks":{"type":"integer","title":"Blocks","description":"封堵"},"aerial_won":{"type":"integer","title":"Aerial Won","description":"争顶成功"},"clearances":{"type":"integer","title":"Clearances","description":"解围"},"dispossessed":{"type":"integer","title":"Dispossessed","description":"被抢断"}},"type":"object","required":["fouls","tackles","interceptions","blocks","aerial_won","clearances","dispossessed"],"title":"DefenseStatsOut"},"ErrorBody":{"properties":{"status":{"type":"integer","title":"Status","description":"HTTP 状态码"},"code":{"type":"string","title":"Code","description":"机器可读错误码，如 MISSING_API_KEY / RATE_LIMITED / NOT_FOUND"},"message":{"type":"string","title":"Message","description":"人类可读说明"},"details":{"anyOf":[{"items":{"$ref":"#/components/schemas/ErrorDetail"},"type":"array"},{"type":"null"}],"title":"Details","description":"字段级错误（422 时）"}},"type":"object","required":["status","code","message"],"title":"ErrorBody"},"ErrorDetail":{"properties":{"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field","description":"出错的参数，如 query.limit"},"message":{"type":"string","title":"Message","description":"错误说明"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"校验错误类型"}},"type":"object","required":["message"],"title":"ErrorDetail"},"ErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/ErrorBody","description":"错误体"}},"type":"object","required":["error"],"title":"ErrorResponse"},"EuroConsensusOut":{"properties":{"bookmaker_count":{"type":"integer","title":"Bookmaker Count","description":"参与统计的公司数"},"open":{"$ref":"#/components/schemas/EuroConsensusSideOut","description":"初盘共识"},"live":{"$ref":"#/components/schemas/EuroConsensusSideOut","description":"即时盘共识"}},"type":"object","required":["bookmaker_count","open","live"],"title":"EuroConsensusOut"},"EuroConsensusSideOut":{"properties":{"home":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Home","description":"主胜平均赔率"},"draw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Draw","description":"平局平均赔率"},"away":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Away","description":"客胜平均赔率"},"home_prob":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Home Prob","description":"主胜归一化隐含概率"},"draw_prob":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Draw Prob","description":"平局归一化隐含概率"},"away_prob":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Away Prob","description":"客胜归一化隐含概率"}},"type":"object","required":["home","draw","away","home_prob","draw_prob","away_prob"],"title":"EuroConsensusSideOut"},"EuroOddsOut":{"properties":{"market":{"type":"string","const":"euro","title":"Market","description":"赔率类型，固定 euro"},"bookmaker":{"$ref":"#/components/schemas/BookmakerRef","description":"赔率公司"},"is_main":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Main","description":"是否主流公司；未知为 null"},"open":{"$ref":"#/components/schemas/BasketballEuroSideOut","description":"初盘"},"live":{"$ref":"#/components/schemas/BasketballEuroSideOut","description":"即时盘"},"changed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changed At","description":"即时盘最近变盘时间"}},"type":"object","required":["market","bookmaker","is_main","open","live","changed_at"],"title":"EuroOddsOut"},"EuroSideOut":{"properties":{"home":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Home","description":"主胜"},"draw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Draw","description":"平局"},"away":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Away","description":"客胜"},"return_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Return Rate","description":"返还率（%）"},"kelly_home":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Kelly Home","description":"凯利指数（主），源站原值：本组赔率 × 源站取数时的全市场平均概率。初盘那组用的也是即时的平均概率，不是开盘时的；源站取平均的公司与 /odds/consensus 不同，两者会有出入"},"kelly_draw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Kelly Draw","description":"凯利指数（平），口径同 kelly_home"},"kelly_away":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Kelly Away","description":"凯利指数（客），口径同 kelly_home"}},"type":"object","required":["home","draw","away","return_rate","kelly_home","kelly_draw","kelly_away"],"title":"EuroSideOut"},"EventScoreOut":{"properties":{"home":{"type":"integer","title":"Home","description":"事件发生后的主队比分"},"away":{"type":"integer","title":"Away","description":"事件发生后的客队比分"}},"type":"object","required":["home","away"],"title":"EventScoreOut"},"GroupOut":{"properties":{"id":{"type":"string","title":"Id","description":"小组对外 ID"},"key":{"type":"string","title":"Key","description":"组别，如 A / B"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"}},"type":"object","required":["id","key","name","name_cn"],"title":"GroupOut"},"GroupRef":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"小组对外 ID；小组尚未入映射时为 null"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key","description":"组号字母，如 A；源站未按字母编组时为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名，如 Group A"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"中文名，如 A组"}},"type":"object","required":["id","key","name","name_cn"],"title":"GroupRef","description":"小组。两个运动同一形状——积分榜里「这张表是哪个组」是同一个概念。\n\n`key` 只有足球给得出（源站按 A/B/C 编组）；篮球的组名是整段文字\n（如「季中锦标赛小组赛东部A组」），没有单独的组号，为 null。"},"HandicapLineOut":{"properties":{"line_index":{"type":"integer","title":"Line Index","description":"盘序：1 主盘，2/3/4 同一公司的副盘"},"open_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Open Line","description":"初盘盘口线，源站原文字符串；正数主队让、负数客队让"},"open_home":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Open Home","description":"初盘主队赔率"},"open_away":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Open Away","description":"初盘客队赔率"},"live_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Live Line","description":"即时盘口线，源站原文字符串；正数主队让、负数客队让；已完场的比赛是最后一次采到的值"},"live_home":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Live Home","description":"即时主队赔率"},"live_away":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Live Away","description":"即时客队赔率"},"changed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changed At","description":"即时盘最近变盘时间；篮球让分源站不提供，恒为 null"}},"type":"object","required":["line_index","open_line","open_home","open_away","live_line","live_home","live_away","changed_at"],"title":"HandicapLineOut"},"HandicapOddsOut":{"properties":{"market":{"type":"string","const":"handicap","title":"Market","description":"赔率类型，固定 handicap（让分）"},"bookmaker":{"$ref":"#/components/schemas/BookmakerRef","description":"赔率公司"},"lines":{"items":{"$ref":"#/components/schemas/HandicapLineOut"},"type":"array","title":"Lines","description":"该公司的各条盘，主盘在前"}},"type":"object","required":["market","bookmaker","lines"],"title":"HandicapOddsOut"},"InjuryOut":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"伤病类型"},"expected_return":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Return","description":"预计复出说明"}},"type":"object","required":["type","expected_return"],"title":"InjuryOut"},"BasketballMatchStatsOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/BasketballMatchStatsOut","description":"资源本体"}},"type":"object","required":["data"],"title":"BasketballMatchStatsOutEnvelope"},"BasketballPlayerOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/BasketballPlayerOut","description":"资源本体"}},"type":"object","required":["data"],"title":"BasketballPlayerOutEnvelope"},"BracketOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/BracketOut","description":"资源本体"}},"type":"object","required":["data"],"title":"BracketOutEnvelope"},"CompetitionOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/CompetitionOut","description":"资源本体"}},"type":"object","required":["data"],"title":"CompetitionOutEnvelope"},"MatchAnimationOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/MatchAnimationOut","description":"资源本体"}},"type":"object","required":["data"],"title":"MatchAnimationOutEnvelope"},"MatchOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/MatchOut","description":"资源本体"}},"type":"object","required":["data"],"title":"MatchOutEnvelope"},"MatchStatsOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/MatchStatsOut","description":"资源本体"}},"type":"object","required":["data"],"title":"MatchStatsOutEnvelope"},"PlayerDetailOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/PlayerDetailOut","description":"资源本体"}},"type":"object","required":["data"],"title":"PlayerDetailOutEnvelope"},"PredictionOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/PredictionOut","description":"资源本体"}},"type":"object","required":["data"],"title":"PredictionOutEnvelope"},"RankingDatesOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/RankingDatesOut","description":"资源本体"}},"type":"object","required":["data"],"title":"RankingDatesOutEnvelope"},"SoccerCompetitionOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/SoccerCompetitionOut","description":"资源本体"}},"type":"object","required":["data"],"title":"SoccerCompetitionOutEnvelope"},"SoccerMatchAnimationOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/SoccerMatchAnimationOut","description":"资源本体"}},"type":"object","required":["data"],"title":"SoccerMatchAnimationOutEnvelope"},"SoccerMatchOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/SoccerMatchOut","description":"资源本体"}},"type":"object","required":["data"],"title":"SoccerMatchOutEnvelope"},"SoccerStandingsOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/SoccerStandingsOut","description":"资源本体"}},"type":"object","required":["data"],"title":"SoccerStandingsOutEnvelope"},"StandingsOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/StandingsOut","description":"资源本体"}},"type":"object","required":["data"],"title":"StandingsOutEnvelope"},"TeamDetailOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/TeamDetailOut","description":"资源本体"}},"type":"object","required":["data"],"title":"TeamDetailOutEnvelope"},"TeamOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/TeamOut","description":"资源本体"}},"type":"object","required":["data"],"title":"TeamOutEnvelope"},"TeamTransferTotalsOutEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/TeamTransferTotalsOut","description":"资源本体"}},"type":"object","required":["data"],"title":"TeamTransferTotalsOutEnvelope"},"fromstats_api.v1.soccer.schemas.match_odds.EuroConsensusOut | NoneEnvelope":{"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/EuroConsensusOut"},{"type":"null"}],"description":"资源本体"}},"type":"object","required":["data"],"title":"fromstats_api.v1.soccer.schemas.match_odds.EuroConsensusOut | NoneEnvelope"},"BasketballPlayerSeasonStatRowList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BasketballPlayerSeasonStatRow"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"BasketballPlayerSeasonStatRowList"},"CareerEntryOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CareerEntryOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"CareerEntryOutList"},"CareerSeasonStatsOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CareerSeasonStatsOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"CareerSeasonStatsOutList"},"LiveMatchOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LiveMatchOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"LiveMatchOutList"},"ModelPerformanceOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ModelPerformanceOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"ModelPerformanceOutList"},"PlayerShotOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PlayerShotOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"PlayerShotOutList"},"PlayerTrophyOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PlayerTrophyOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"PlayerTrophyOutList"},"SeriesOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SeriesOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"SeriesOutList"},"SquadMemberOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SquadMemberOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"SquadMemberOutList"},"TeamSeasonOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TeamSeasonOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"TeamSeasonOutList"},"TeamTrophyOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TeamTrophyOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"TeamTrophyOutList"},"TransferOutList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TransferOut"},"type":"array","title":"Data","description":"资源本体"}},"type":"object","required":["data"],"title":"TransferOutList"},"LineupPlayerOut":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球员对外 ID；未入映射（含教练）为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"名字（有中文用中文，否则英文）"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"球衣号，字符串（与篮球同形）"},"position_group":{"anyOf":[{"type":"string","enum":["GK","DEF","MID","FWD"]},{"type":"null"}],"title":"Position Group","description":"位置大类，取本场阵容的编排；源站未给为 null"},"role":{"type":"string","enum":["starter","sub","coach"],"title":"Role","description":"starter 首发 / sub 替补 / coach 教练"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating","description":"本场评分"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"国籍代码"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url","description":"头像；无真实图片为 null"},"formation_x":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Formation X","description":"阵型图 X（0.10 门将 ~ 0.87 最前线），替补与教练为 null"},"formation_y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Formation Y","description":"阵型图 Y（本方视角球场宽度 0~1）"}},"type":"object","required":["id","name","name_cn","shirt_number","position_group","role","rating","country","photo_url","formation_x","formation_y"],"title":"LineupPlayerOut"},"LineupsOut":{"properties":{"home_formation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Home Formation","description":"主队阵型，如 4-2-3-1"},"away_formation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Away Formation","description":"客队阵型"},"home":{"items":{"$ref":"#/components/schemas/LineupPlayerOut"},"type":"array","title":"Home","description":"主队阵容：首发、替补、教练"},"away":{"items":{"$ref":"#/components/schemas/LineupPlayerOut"},"type":"array","title":"Away","description":"客队阵容"}},"type":"object","required":["home_formation","away_formation","home","away"],"title":"LineupsOut"},"BasketballPlayerMatchOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BasketballPlayerMatchOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"BasketballPlayerMatchOutPage"},"BasketballPlayerOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BasketballPlayerOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"BasketballPlayerOutPage"},"BasketballPlayerSeasonStatsOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BasketballPlayerSeasonStatsOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"BasketballPlayerSeasonStatsOutPage"},"CommentaryEntryOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CommentaryEntryOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"CommentaryEntryOutPage"},"CompetitionOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CompetitionOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"CompetitionOutPage"},"MatchOddsOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/MatchOddsOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"MatchOddsOutPage"},"MatchOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/MatchOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"MatchOutPage"},"PlayerMatchOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PlayerMatchOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"PlayerMatchOutPage"},"PlayerOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PlayerOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"PlayerOutPage"},"PlayerSeasonStatsOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PlayerSeasonStatsOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"PlayerSeasonStatsOutPage"},"PredictionOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PredictionOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"PredictionOutPage"},"RankingRowOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RankingRowOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"RankingRowOutPage"},"SeasonOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SeasonOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"SeasonOutPage"},"SoccerCompetitionOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SoccerCompetitionOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"SoccerCompetitionOutPage"},"SoccerMatchOddsOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SoccerMatchOddsOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"SoccerMatchOddsOutPage"},"SoccerMatchOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SoccerMatchOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"SoccerMatchOutPage"},"SoccerTeamOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SoccerTeamOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"SoccerTeamOutPage"},"TeamOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TeamOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"TeamOutPage"},"TeamSeasonStatsOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TeamSeasonStatsOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"TeamSeasonStatsOutPage"},"TransferOutPage":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TransferOut"},"type":"array","title":"Data","description":"本页数据"},"pagination":{"$ref":"#/components/schemas/Pagination","description":"分页信息"}},"type":"object","required":["data","pagination"],"title":"TransferOutPage"},"LiveMatchOut":{"properties":{"id":{"type":"string","title":"Id","description":"比赛对外 ID，资料字段用 /v1/basketball/matches/{id} 取"},"status":{"type":"string","enum":["upcoming","live","finished","postponed","cancelled","interrupted","tbd"],"title":"Status","description":"本端点只返回 live（含中场，看 period 区分）"},"period":{"anyOf":[{"type":"string","enum":["q1","q2","q3","q4","ot1","ot2","ot3","ot4","h1","h2","ht"]},{"type":"null"}],"title":"Period","description":"进行中的阶段；中场为 ht；节制未知时为 null"},"quarter_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quarter Count","description":"节制：4 四节制 / 2 两半场制；未知为 null"},"remaining_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remaining Time","description":"本节剩余时间，源站原文（如 04:15）；中场或未知为 null"},"score":{"$ref":"#/components/schemas/MatchScore","description":"比分组，口径与比赛端点一致"},"live_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Live Updated At","description":"即时比分最近一次更新时间"}},"type":"object","required":["id","status","period","quarter_count","remaining_time","score","live_updated_at"],"title":"LiveMatchOut"},"MarketValuePointOut":{"properties":{"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date","description":"估值时间"},"value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Value","description":"身价（欧元）"},"team_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id","description":"当时所在球队对外 ID；未入映射为 null"},"team_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Name","description":"当时所在球队名"}},"type":"object","required":["date","value","team_id","team_name"],"title":"MarketValuePointOut"},"MatchAnimationOut":{"properties":{"available":{"type":"boolean","title":"Available","description":"当前能否观看动画直播。开赛前约 16 小时起、开赛后约 8 小时内的场次才会为 true，窗口外为 false"},"embed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Embed Url","description":"嵌入地址，iframe 或 App WebView 直接打开；available 为 false 时为 null。可追加参数：lang=cn 简体（默认）/ big 繁体；statsPanel=hide 隐藏技术统计 / simple 只留比分"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At","description":"嵌入地址过期时间，过期后打开会提示失效，需重新获取；available 为 false 时为 null"}},"type":"object","required":["available","embed_url","expires_at"],"title":"MatchAnimationOut"},"MatchEventOut":{"properties":{"minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minute","description":"比赛分钟"},"added_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Added Time","description":"补时分钟，如 45+2 的 2"},"type":{"type":"string","enum":["goal","penalty_goal","own_goal","yellow_card","red_card","second_yellow","substitution"],"title":"Type","description":"事件类型"},"side":{"anyOf":[{"type":"string","enum":["home","away"]},{"type":"null"}],"title":"Side","description":"主队 / 客队"},"player":{"anyOf":[{"$ref":"#/components/schemas/MatchPlayerRef"},{"type":"null"}],"description":"事件球员（进球者 / 吃牌者 / 换上）"},"related_player":{"anyOf":[{"$ref":"#/components/schemas/MatchPlayerRef"},{"type":"null"}],"description":"关联球员（助攻 / 换下）"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"源站备注"},"xg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg","description":"进球 xG；仅进球类且有数据时"},"goal_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Goal Description","description":"进球方式，如 Header"},"card_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Card Type","description":"牌类型原文，如 Yellow / YellowRed / Red"},"card_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Card Description","description":"吃牌原因"},"score":{"anyOf":[{"$ref":"#/components/schemas/EventScoreOut"},{"type":"null"}],"description":"事件发生后的比分；无数据为 null"}},"type":"object","required":["minute","added_time","type","side","player","related_player","note","xg","goal_description","card_type","card_description","score"],"title":"MatchEventOut"},"MatchKeyStatsOut":{"properties":{"home":{"$ref":"#/components/schemas/MatchSideKeyStatsOut","description":"主队"},"away":{"$ref":"#/components/schemas/MatchSideKeyStatsOut","description":"客队"}},"type":"object","required":["home","away"],"title":"MatchKeyStatsOut","description":"比赛对象上的几项关键指标。指标名、数值与 `/soccer/matches/{id}/stats` 的球队指标一致。\n\n牌数另有一个覆盖更广的来源（当日比分列表），单场统计没有时用它补，\n所以 `has_stats` 为 false 的比赛这里也可能有牌数。"},"MatchOddsOut":{"properties":{"match_id":{"type":"string","title":"Match Id","description":"比赛对外 ID"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date","description":"开赛时间"},"odds":{"$ref":"#/components/schemas/OddsData","description":"该场赔率，按盘口分组"}},"type":"object","required":["match_id","date","odds"],"title":"MatchOddsOut","description":"批量赔率里的一场比赛"},"MatchOut":{"properties":{"id":{"type":"string","title":"Id","description":"比赛对外 ID"},"competition":{"$ref":"#/components/schemas/BasketballCompetitionRef","description":"所属赛事"},"season":{"$ref":"#/components/schemas/SeasonRef","description":"所属赛季"},"stage":{"anyOf":[{"$ref":"#/components/schemas/StageRef"},{"type":"null"}],"description":"所属阶段（杯赛阶段 / 季后赛轮次）；常规赛与季前赛为 null"},"series":{"anyOf":[{"$ref":"#/components/schemas/SeriesRef"},{"type":"null"}],"description":"所属季后赛系列赛；单场淘汰与常规赛为 null"},"home_team":{"$ref":"#/components/schemas/TeamRef","description":"主队"},"away_team":{"$ref":"#/components/schemas/TeamRef","description":"客队"},"status":{"anyOf":[{"type":"string","enum":["upcoming","live","finished","postponed","cancelled","interrupted","tbd"]},{"type":"null"}],"title":"Status","description":"语义状态：upcoming / live / finished / postponed / cancelled / interrupted / tbd；与足球同一套取值；源站未给状态时为 null"},"period":{"anyOf":[{"type":"string","enum":["q1","q2","q3","q4","ot1","ot2","ot3","ot4","h1","h2","ht"]},{"type":"null"}],"title":"Period","description":"进行中的阶段：四节制 q1..q4、两半场制 h1 / h2、加时 ot1..ot4、中场 ht；非进行中为 null；节制未知时不猜、也为 null"},"quarter_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quarter Count","description":"节制：4 四节制 / 2 两半场制；由单场数据回写，未知为 null"},"match_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Time","description":"开赛时间，+08:00"},"stadium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stadium","description":"场馆名，源站未给为 null"},"attendance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Attendance","description":"入场人数，源站未给为 null"},"has_stats":{"type":"boolean","title":"Has Stats","description":"是否已有单场技术统计"},"has_commentary":{"type":"boolean","title":"Has Commentary","description":"是否已有文字直播"},"score":{"$ref":"#/components/schemas/MatchScore","description":"比分组"},"live_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Live Updated At","description":"即时比分最近一次更新时间；从未走过即时链路为 null"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录最近一次更新时间，供 updated_since 增量拉取"}},"type":"object","required":["id","competition","season","stage","series","home_team","away_team","status","period","quarter_count","match_time","stadium","attendance","has_stats","has_commentary","score","live_updated_at","updated_at"],"title":"MatchOut"},"MatchPlayerRef":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球员对外 ID；未入映射为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"名字（有中文用中文，否则英文）"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"}},"type":"object","required":["id","name","name_cn"],"title":"MatchPlayerRef"},"MatchPlayerStatsOut":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球员对外 ID；未入映射为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"名字（有中文用中文，否则英文）"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"position_group":{"anyOf":[{"type":"string","enum":["GK","DEF","MID","FWD"]},{"type":"null"}],"title":"Position Group","description":"位置大类，取本场阵容的编排；源站未给为 null"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"球衣号，字符串（与篮球同形）"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating","description":"本场评分"},"stats":{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"string"},{"type":"null"}]},"type":"object","title":"Stats","description":"球员单场指标：指标名 → 数值（射门 / 传球 / 对抗等）"}},"type":"object","required":["id","name","name_cn","position_group","shirt_number","rating","stats"],"title":"MatchPlayerStatsOut"},"MatchScore":{"properties":{"home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Home","description":"主队总分（含加时）"},"away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Away","description":"客队总分（含加时）"},"ht_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ht Home","description":"主队半场分"},"ht_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ht Away","description":"客队半场分"},"home_periods":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Home Periods","description":"主队逐节得分，只列已打的节；四节制最多 4 个，两半场制最多 2 个"},"away_periods":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Away Periods","description":"客队逐节得分，只列已打的节"},"home_overtimes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Home Overtimes","description":"主队各加时得分，长度等于 overtime_count；无加时为空数组；源站未给逐节数据时为 null"},"away_overtimes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Away Overtimes","description":"客队各加时得分；无加时为空数组；源站未给逐节数据时为 null"},"overtime_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Overtime Count","description":"加时节数，无加时为 0；源站未给时为 null"}},"type":"object","required":["home","away","ht_home","ht_away","home_periods","away_periods","home_overtimes","away_overtimes","overtime_count"],"title":"MatchScore","description":"比分组；尚未开打（upcoming / tbd / postponed / cancelled）时所有字段为 null"},"MatchScoreOut":{"properties":{"home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Home","description":"主队 90 分钟得分（不含加时与点球大战；加时后的比分看 et_home）。进行中是当前比分。主数据源没有比分时取自补充源，那时可能已含加时"},"away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Away","description":"客队 90 分钟得分，口径同 home"},"ht_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ht Home","description":"主队半场得分"},"ht_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ht Away","description":"客队半场得分"},"et_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Et Home","description":"主队加时赛后得分（120 分钟）；无加时为 null"},"et_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Et Away","description":"客队加时赛后得分"},"ps_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ps Home","description":"主队点球大战比分；无点球大战为 null"},"ps_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ps Away","description":"客队点球大战比分"},"agg_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agg Home","description":"主队两回合总比分（次回合 90 分钟结束时）；源站只在次回合打了加时的比赛上给出，其余为 null"},"agg_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agg Away","description":"客队两回合总比分，口径同 agg_home"}},"type":"object","required":["home","away","ht_home","ht_away","et_home","et_away","ps_home","ps_away","agg_home","agg_away"],"title":"MatchScoreOut","description":"未开打（upcoming / tbd / postponed / cancelled）时所有字段为 null"},"MatchShotOut":{"properties":{"player":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Player","description":"射门球员名"},"side":{"type":"string","enum":["home","away"],"title":"Side","description":"主队 / 客队"},"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type","description":"射门结果，如 Goal / AttemptSaved / Miss"},"minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minute","description":"分钟"},"added_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Added Time","description":"补时分钟"},"x":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"X","description":"球场 X 坐标 0~105（米，球场长度），进攻球门在 105 一侧；乌龙球（is_own_goal）在本方球门一侧"},"y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Y","description":"球场 Y 坐标 0~68（米，球场宽度），中线为 34"},"xg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg","description":"xG"},"xgot":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xgot","description":"xGOT"},"shot_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shot Type","description":"射门方式，如 RightFoot / Header"},"situation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Situation","description":"场景，如 RegularPlay / SetPiece / Penalty"},"is_on_target":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is On Target","description":"是否射正"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period","description":"时段，如 FirstHalf / SecondHalf"},"is_own_goal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Own Goal","description":"是否乌龙"}},"type":"object","required":["player","side","event_type","minute","added_time","x","y","xg","xgot","shot_type","situation","is_on_target","period","is_own_goal"],"title":"MatchShotOut"},"MatchSideKeyStatsOut":{"properties":{"yellow_card":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Yellow Card","description":"黄牌数；无数据为 null"},"red_card":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Red Card","description":"红牌数；无数据为 null"},"corners":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Corners","description":"角球数；无数据为 null"}},"type":"object","required":["yellow_card","red_card","corners"],"title":"MatchSideKeyStatsOut"},"MatchStatsOut":{"properties":{"match_id":{"type":"string","title":"Match Id","description":"比赛对外 ID"},"home":{"$ref":"#/components/schemas/MatchTeamStatsOut","description":"主队统计"},"away":{"$ref":"#/components/schemas/MatchTeamStatsOut","description":"客队统计"},"shots":{"anyOf":[{"items":{"$ref":"#/components/schemas/MatchShotOut"},"type":"array"},{"type":"null"}],"title":"Shots","description":"射门图；仅 include=shots 时给出，否则 null；无数据为空数组"},"momentum":{"anyOf":[{"items":{"$ref":"#/components/schemas/MomentumPointOut"},"type":"array"},{"type":"null"}],"title":"Momentum","description":"动量图；仅 include=momentum 时给出，否则 null；无数据为空数组"}},"type":"object","required":["match_id","home","away","shots","momentum"],"title":"MatchStatsOut"},"MatchTeamStatsOut":{"properties":{"team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"球队；源站未定为 null"},"stats":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"string"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Stats","description":"球队单场指标：指标名 → 数值（控球率 / 射门 / 角球 / xG 等）；无统计为 null"},"players":{"items":{"$ref":"#/components/schemas/MatchPlayerStatsOut"},"type":"array","title":"Players","description":"球员单场统计；无数据为空数组"}},"type":"object","required":["team","stats","players"],"title":"MatchTeamStatsOut"},"ModelPerformanceOut":{"properties":{"model_source":{"type":"string","title":"Model Source","description":"模型来源"},"model_version":{"type":"string","title":"Model Version","description":"模型版本"},"sample_count":{"type":"integer","title":"Sample Count","description":"已回填结果的样本数"},"avg_brier_1x2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Brier 1X2","description":"平均 Brier 分数"},"avg_log_loss_1x2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Log Loss 1X2","description":"平均对数损失"},"latest_predicted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Predicted At","description":"最近一次预测时间"}},"type":"object","required":["model_source","model_version","sample_count","avg_brier_1x2","avg_log_loss_1x2","latest_predicted_at"],"title":"ModelPerformanceOut"},"MomentumPointOut":{"properties":{"minute":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minute","description":"分钟"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value","description":"动量值，正为主队占优、负为客队占优"}},"type":"object","required":["minute","value"],"title":"MomentumPointOut"},"MotmOut":{"properties":{"player":{"anyOf":[{"$ref":"#/components/schemas/MatchPlayerRef"},{"type":"null"}],"description":"全场最佳球员"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating","description":"全场最佳评分"}},"type":"object","required":["player","rating"],"title":"MotmOut"},"OddsData":{"properties":{"euro":{"items":{"$ref":"#/components/schemas/EuroOddsOut"},"type":"array","title":"Euro","description":"欧指"},"handicap":{"items":{"$ref":"#/components/schemas/HandicapOddsOut"},"type":"array","title":"Handicap","description":"让分"},"ou":{"items":{"$ref":"#/components/schemas/OuOddsOut"},"type":"array","title":"Ou","description":"总分"}},"type":"object","title":"OddsData","description":"按盘口分组的赔率。三个键恒定存在，未请求或无数据的是空数组\n\n这里曾是 `list[Euro] | list[Handicap] | list[Ou]` 的无判别式联合，`data` 随 `type`\n变形：codegen 出来是个 union，客户端每次都得先做运行时判别。改成按盘口分键之后\n类型是固定的，一次请求也就能同时带回多种盘口。与足球 `SoccerOddsData` 同形\n（足球多一个 corner 键）。"},"OddsEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/OddsData","description":"该场赔率，按盘口分组；无赔率为空数组。不分页"}},"type":"object","required":["data"],"title":"OddsEnvelope"},"OuOddsOut":{"properties":{"market":{"type":"string","const":"ou","title":"Market","description":"赔率类型，固定 ou（总分）"},"bookmaker":{"$ref":"#/components/schemas/BookmakerRef","description":"赔率公司"},"lines":{"items":{"$ref":"#/components/schemas/TotalLineOut"},"type":"array","title":"Lines","description":"该公司的各条盘，主盘在前"}},"type":"object","required":["market","bookmaker","lines"],"title":"OuOddsOut"},"Pagination":{"properties":{"total":{"type":"integer","title":"Total","description":"满足筛选条件的总条数"},"limit":{"type":"integer","title":"Limit","description":"本页条数上限"},"offset":{"type":"integer","title":"Offset","description":"本页起始偏移"}},"type":"object","required":["total","limit","offset"],"title":"Pagination"},"PlayerDetailOut":{"properties":{"id":{"type":"string","title":"Id","description":"球员对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cn_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn Short","description":"简体中文简称"},"position":{"anyOf":[{"type":"string","enum":["GK","CB","LB","RB","LWB","RWB","DM","CM","AM","LM","RM","LW","RW","ST"]},{"type":"null"}],"title":"Position","description":"主位置缩写，可直接回填到 position 筛选参数；源站只给出大类时为 null（看 position_group）"},"position_group":{"anyOf":[{"type":"string","enum":["GK","DEF","MID","FWD"]},{"type":"null"}],"title":"Position Group","description":"位置大类，可直接回填到 position_group 筛选参数"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"国籍"},"team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"当前所属俱乐部；被国家队征召期间不变"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"球衣号，字符串（与篮球同形）"},"birth_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Birth Date","description":"出生日期"},"market_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Market Value","description":"身价（欧元）"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url","description":"头像；没有真实图片时为 null"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录最近一次更新时间，供 updated_since 增量拉取"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"身高 cm"},"weight":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Weight","description":"体重 kg"},"preferred_foot":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Foot","description":"惯用脚：Left / Right / Both"},"contract_end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Contract End","description":"合同到期"},"on_loan":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"On Loan","description":"是否租借中"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"active / retired"},"market_values":{"items":{"$ref":"#/components/schemas/MarketValuePointOut"},"type":"array","title":"Market Values","description":"身价走势，旧的在前"},"traits":{"items":{"$ref":"#/components/schemas/TraitOut"},"type":"array","title":"Traits","description":"百分位特征"},"positions":{"items":{"$ref":"#/components/schemas/PositionOut"},"type":"array","title":"Positions","description":"踢过的位置"},"injury":{"anyOf":[{"$ref":"#/components/schemas/InjuryOut"},{"type":"null"}],"description":"当前伤病"},"advantage":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Advantage","description":"优势标签"},"style":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Style","description":"风格标签"},"weakness":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Weakness","description":"劣势标签"},"intro":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intro","description":"球员简介（中文）"}},"type":"object","required":["id","name","name_cn","name_cn_short","position","position_group","country","team","shirt_number","birth_date","market_value","photo_url","updated_at","name_cnt","height","weight","preferred_foot","contract_end","on_loan","status","market_values","traits","positions","injury","advantage","style","weakness","intro"],"title":"PlayerDetailOut"},"PlayerMatchOut":{"properties":{"match_id":{"type":"string","title":"Match Id","description":"比赛对外 ID"},"match_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Time","description":"开赛时间"},"competition":{"anyOf":[{"$ref":"#/components/schemas/SoccerCompetitionRef"},{"type":"null"}],"description":"赛事"},"season":{"anyOf":[{"$ref":"#/components/schemas/SeasonRef"},{"type":"null"}],"description":"赛季"},"team":{"$ref":"#/components/schemas/SoccerTeamRef","description":"球员当场所属球队"},"opponent":{"$ref":"#/components/schemas/SoccerTeamRef","description":"当场对手"},"is_home":{"type":"boolean","title":"Is Home","description":"球员所在队是否主队"},"score_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score Home","description":"主队全场得分"},"score_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score Away","description":"客队全场得分"},"is_starter":{"type":"boolean","title":"Is Starter","description":"当场是否首发"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"当场球衣号，字符串（与篮球同形）"},"stats":{"$ref":"#/components/schemas/PlayerMatchStatsOut","description":"当场个人数据"}},"type":"object","required":["match_id","match_time","competition","season","team","opponent","is_home","score_home","score_away","is_starter","shirt_number","stats"],"title":"PlayerMatchOut","description":"球员的一场出场记录，与篮球 `BasketballPlayerMatchOut` 同形：比赛信息平铺，当场个人数据在 `stats`\n\n**`team` / `shirt_number` 取自这一场的阵容**，换过队的球员看旧比赛时是当时那支队。"},"PlayerMatchStatsOut":{"properties":{"minutes_played":{"type":"integer","title":"Minutes Played","description":"上场分钟（按换人事件推算）"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating","description":"单场评分"},"goals":{"type":"integer","title":"Goals","description":"进球（普通 + 点球，不含乌龙）"},"regular_goals":{"type":"integer","title":"Regular Goals","description":"运动战进球"},"penalty_goals":{"type":"integer","title":"Penalty Goals","description":"点球进球"},"own_goals":{"type":"integer","title":"Own Goals","description":"乌龙"},"assists":{"type":"integer","title":"Assists","description":"助攻"},"yellow_cards":{"type":"integer","title":"Yellow Cards","description":"黄牌"},"red_cards":{"type":"integer","title":"Red Cards","description":"红牌"},"defense":{"anyOf":[{"$ref":"#/components/schemas/DefenseStatsOut"},{"type":"null"}],"description":"防守数据；无单场统计为 null"}},"type":"object","required":["minutes_played","rating","goals","regular_goals","penalty_goals","own_goals","assists","yellow_cards","red_cards","defense"],"title":"PlayerMatchStatsOut"},"PlayerOut":{"properties":{"id":{"type":"string","title":"Id","description":"球员对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cn_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn Short","description":"简体中文简称"},"position":{"anyOf":[{"type":"string","enum":["GK","CB","LB","RB","LWB","RWB","DM","CM","AM","LM","RM","LW","RW","ST"]},{"type":"null"}],"title":"Position","description":"主位置缩写，可直接回填到 position 筛选参数；源站只给出大类时为 null（看 position_group）"},"position_group":{"anyOf":[{"type":"string","enum":["GK","DEF","MID","FWD"]},{"type":"null"}],"title":"Position Group","description":"位置大类，可直接回填到 position_group 筛选参数"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"国籍"},"team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"当前所属俱乐部；被国家队征召期间不变"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"球衣号，字符串（与篮球同形）"},"birth_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Birth Date","description":"出生日期"},"market_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Market Value","description":"身价（欧元）"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url","description":"头像；没有真实图片时为 null"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录最近一次更新时间，供 updated_since 增量拉取"}},"type":"object","required":["id","name","name_cn","name_cn_short","position","position_group","country","team","shirt_number","birth_date","market_value","photo_url","updated_at"],"title":"PlayerOut"},"PlayerSeasonStatsOut":{"properties":{"player":{"$ref":"#/components/schemas/SeasonStatsPlayerRef","description":"球员"},"team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"效力球队；源站未给为 null"},"venue":{"type":"string","title":"Venue","description":"口径：total / home / away"},"stats":{"$ref":"#/components/schemas/PlayerSeasonStatsValues","description":"赛季累计指标"}},"type":"object","required":["player","team","venue","stats"],"title":"PlayerSeasonStatsOut"},"PlayerSeasonStatsValues":{"properties":{"appearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Appearances","description":"出场"},"substitute_appearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Substitute Appearances","description":"替补出场"},"rated_appearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rated Appearances","description":"有评分的场次"},"minutes_played":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minutes Played","description":"出场时间（分钟）"},"rating_total":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating Total","description":"评分累计（除以 rated_appearances 得场均）"},"best_player_awards":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Best Player Awards","description":"全场最佳次数"},"goals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Goals","description":"进球"},"assists":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assists","description":"助攻"},"penalty_goals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Penalty Goals","description":"点球进球"},"non_penalty_goals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Non Penalty Goals","description":"非点球进球"},"own_goals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Own Goals","description":"乌龙"},"goal_conversion_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Goal Conversion Pct","description":"射门转化率 %"},"minutes_per_goal":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minutes Per Goal","description":"每球耗时（分钟）"},"minutes_per_assist":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minutes Per Assist","description":"每助攻耗时（分钟）"},"xg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg","description":"预期进球 xG"},"xg_non_penalty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg Non Penalty","description":"非点球 xG"},"xg_on_target":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg On Target","description":"射正预期进球 xGOT"},"xa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xa","description":"预期助攻 xA"},"shots":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots","description":"射门"},"shots_on_target":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots On Target","description":"射正"},"shots_blocked":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots Blocked","description":"被封堵射门"},"shots_on_post":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots On Post","description":"击中门框"},"touches":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Touches","description":"触球"},"touches_in_opposition_box":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Touches In Opposition Box","description":"对方禁区内触球"},"passes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Passes","description":"传球"},"passes_accurate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Passes Accurate","description":"传球成功"},"pass_accuracy_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pass Accuracy Pct","description":"传球成功率 %"},"key_passes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Key Passes","description":"关键传球"},"passes_into_final_third":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Passes Into Final Third","description":"传入前场三区"},"crosses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crosses","description":"传中"},"crosses_accurate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crosses Accurate","description":"传中成功"},"long_balls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Long Balls","description":"长传"},"long_balls_accurate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Long Balls Accurate","description":"长传成功"},"through_balls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Through Balls","description":"直塞"},"through_balls_accurate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Through Balls Accurate","description":"直塞成功"},"dribbles_successful":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Dribbles Successful","description":"过人成功"},"dispossessed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Dispossessed","description":"被抢断丢球"},"turnovers":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turnovers","description":"失误丢球"},"was_fouled":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Was Fouled","description":"被犯规"},"fouls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fouls","description":"犯规"},"offsides":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offsides","description":"越位"},"offsides_provoked":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offsides Provoked","description":"造越位"},"penalties_won":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Penalties Won","description":"造点"},"tackles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tackles","description":"抢断"},"interceptions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interceptions","description":"拦截"},"clearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clearances","description":"解围"},"clearances_successful":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clearances Successful","description":"解围成功"},"headed_clearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Headed Clearances","description":"头球解围"},"aerial_duels_won":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aerial Duels Won","description":"空中对抗成功"},"recoveries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recoveries","description":"夺回球权"},"defensive_actions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Defensive Actions","description":"防守动作"},"xg_on_target_faced":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg On Target Faced","description":"门将面对的 xGOT"},"goals_prevented":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Goals Prevented","description":"门将阻止进球数"},"sweeper_actions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sweeper Actions","description":"门将出击"},"yellow_cards":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Yellow Cards","description":"黄牌"},"red_cards":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Red Cards","description":"红牌"}},"type":"object","required":["appearances","substitute_appearances","rated_appearances","minutes_played","rating_total","best_player_awards","goals","assists","penalty_goals","non_penalty_goals","own_goals","goal_conversion_pct","minutes_per_goal","minutes_per_assist","xg","xg_non_penalty","xg_on_target","xa","shots","shots_on_target","shots_blocked","shots_on_post","touches","touches_in_opposition_box","passes","passes_accurate","pass_accuracy_pct","key_passes","passes_into_final_third","crosses","crosses_accurate","long_balls","long_balls_accurate","through_balls","through_balls_accurate","dribbles_successful","dispossessed","turnovers","was_fouled","fouls","offsides","offsides_provoked","penalties_won","tackles","interceptions","clearances","clearances_successful","headed_clearances","aerial_duels_won","recoveries","defensive_actions","xg_on_target_faced","goals_prevented","sweeper_actions","yellow_cards","red_cards"],"title":"PlayerSeasonStatsValues"},"PlayerShotOut":{"properties":{"match_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Id","description":"比赛对外 ID；比赛尚未入映射时为 null"},"match_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Time","description":"开赛时间"},"minute":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minute","description":"射门分钟（含补时）"},"x":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"X","description":"球场 X 坐标 0~105（米，球场长度），进攻球门在 105 一侧；乌龙球（is_own_goal）在本方球门一侧"},"y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Y","description":"球场 Y 坐标 0~68（米，球场宽度），中线为 34"},"xg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg","description":"预期进球 xG"},"xgot":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xgot","description":"射正预期进球 xGOT"},"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type","description":"Goal / Miss / AttemptSaved / BlockedShot / Post"},"shot_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shot Type","description":"LeftFoot / RightFoot / Head / OtherBodyParts"},"situation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Situation","description":"RegularPlay / FromCorner / SetPiece / FreeKick / FastBreak 等"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period","description":"FirstHalf / SecondHalf / ExtraFirstHalf / ExtraSecondHalf / PenaltyShootout"},"is_on_target":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is On Target","description":"是否射正"},"is_blocked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Blocked","description":"是否被封堵"},"is_own_goal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Own Goal","description":"是否乌龙"},"is_home":{"type":"boolean","title":"Is Home","description":"射门方是否主队"},"opponent":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"对手"},"score_home":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score Home","description":"该场主队全场得分"},"score_away":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Score Away","description":"该场客队全场得分"}},"type":"object","required":["match_id","match_time","minute","x","y","xg","xgot","event_type","shot_type","situation","period","is_on_target","is_blocked","is_own_goal","is_home","opponent","score_home","score_away"],"title":"PlayerShotOut"},"PlayerTrophyOut":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"赛事名；同一名球员要么全是中文、要么全是英文"},"team_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Name","description":"夺冠时所在球队"},"won":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Won","description":"夺冠次数；赛事名为英文时为 null"},"seasons_won":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Seasons Won","description":"夺冠赛季"},"seasons_runnerup":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Seasons Runnerup","description":"亚军赛季；赛事名为中文时为 null"}},"type":"object","required":["name","team_name","won","seasons_won","seasons_runnerup"],"title":"PlayerTrophyOut","description":"一名球员的全部条目来自同一个来源：赛事名是中文的那份没有亚军，没有它时才给英文那份（没有夺冠次数）"},"PositionOut":{"properties":{"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key","description":"位置键，如 centerback"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"位置名，如 Center Back"},"short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short","description":"位置缩写，如 CB；与 position 同一套取值（源站直给，未做枚举约束）"},"is_main":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Main","description":"是否主位置"},"occurrences":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Occurrences","description":"该位置出场次数"}},"type":"object","required":["key","label","short","is_main","occurrences"],"title":"PositionOut"},"PredictionMatchOut":{"properties":{"id":{"type":"string","title":"Id","description":"比赛对外 ID"},"kickoff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kickoff","description":"开赛时间"},"status":{"anyOf":[{"type":"string","enum":["upcoming","live","finished","postponed","cancelled","tbd","abandoned","interrupted"]},{"type":"null"}],"title":"Status","description":"比赛状态；源站未给为 null"},"score":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Score","description":"全场比分，如 2-1；未完场为 null"},"home_team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"主队"},"away_team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"客队"},"competition":{"anyOf":[{"$ref":"#/components/schemas/SoccerCompetitionRef"},{"type":"null"}],"description":"赛事"}},"type":"object","required":["id","kickoff","status","score","home_team","away_team","competition"],"title":"PredictionMatchOut"},"PredictionOut":{"properties":{"match":{"$ref":"#/components/schemas/PredictionMatchOut","description":"比赛"},"model_source":{"type":"string","title":"Model Source","description":"模型来源，如 elo / xgb"},"model_version":{"type":"string","title":"Model Version","description":"模型版本"},"predicted_at":{"type":"string","title":"Predicted At","description":"预测生成时间"},"prob_home_win":{"type":"number","title":"Prob Home Win","description":"主胜概率"},"prob_draw":{"type":"number","title":"Prob Draw","description":"平局概率"},"prob_away_win":{"type":"number","title":"Prob Away Win","description":"客胜概率"},"prob_over_2_5":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Prob Over 2 5","description":"大 2.5 球概率"},"prob_under_2_5":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Prob Under 2 5","description":"小 2.5 球概率"},"result":{"anyOf":[{"$ref":"#/components/schemas/PredictionResultOut"},{"type":"null"}],"description":"完场后回填的表现；未回填为 null"}},"type":"object","required":["match","model_source","model_version","predicted_at","prob_home_win","prob_draw","prob_away_win","prob_over_2_5","prob_under_2_5","result"],"title":"PredictionOut"},"PredictionResultOut":{"properties":{"brier_1x2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Brier 1X2","description":"胜平负 Brier 分数，越低越好"},"log_loss_1x2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Log Loss 1X2","description":"胜平负对数损失，越低越好"}},"type":"object","required":["brier_1x2","log_loss_1x2"],"title":"PredictionResultOut"},"QualZoneOut":{"properties":{"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"源站标色，如 #00a"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名，如 Champions League"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"中文名，如 欧冠"}},"type":"object","required":["color","name","name_cn"],"title":"QualZoneOut"},"RankingDatesOut":{"properties":{"type":{"type":"string","enum":["national","club"],"title":"Type","description":"national 国家队 / club 俱乐部"},"gender":{"anyOf":[{"type":"string","enum":["men","women"]},{"type":"null"}],"title":"Gender","description":"国家队排名的性别；俱乐部为 null"},"dates":{"items":{"type":"string","format":"date"},"type":"array","title":"Dates","description":"可查询的排名期日期，新的在前"}},"type":"object","required":["type","gender","dates"],"title":"RankingDatesOut"},"RankingRowOut":{"properties":{"ranking_date":{"type":"string","format":"date","title":"Ranking Date","description":"本行所属的排名期日期"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rank","description":"名次"},"team":{"$ref":"#/components/schemas/SoccerTeamRef","description":"球队；未入映射的国家队 id 为 null，只给名字，不再回落官方编号"},"points":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Points","description":"积分"},"rank_change":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rank Change","description":"名次变化，正数为上升"},"points_change":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Points Change","description":"积分变化"},"previous_points":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Previous Points","description":"上期积分"}},"type":"object","required":["ranking_date","rank","team","points","rank_change","points_change","previous_points"],"title":"RankingRowOut"},"RegionOut":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"}},"type":"object","required":["name","name_cn","name_cnt"],"title":"RegionOut"},"SeasonOut":{"properties":{"id":{"type":"string","title":"Id","description":"赛季对外 ID"},"name":{"type":"string","title":"Name","description":"赛季名，如 2025-2026 或 2026"},"is_current":{"type":"boolean","title":"Is Current","description":"是否该赛事的最新赛季（按赛季名倒序取第一个）"},"stages":{"items":{"$ref":"#/components/schemas/StageOut"},"type":"array","title":"Stages","description":"该赛季的阶段列表，按 sort_order 升序；常规赛没有阶段记录时为空数组"}},"type":"object","required":["id","name","is_current","stages"],"title":"SeasonOut"},"SeasonRef":{"properties":{"id":{"type":"string","title":"Id","description":"赛季对外 ID"},"name":{"type":"string","title":"Name","description":"赛季名，如 2025-2026 或 2026"}},"type":"object","required":["id","name"],"title":"SeasonRef"},"SeasonStatsPlayerRef":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球员对外 ID；球员尚未入映射时为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"position":{"anyOf":[{"type":"string","enum":["GK","CB","LB","RB","LWB","RWB","DM","CM","AM","LM","RM","LW","RW","ST"]},{"type":"null"}],"title":"Position","description":"主位置缩写；源站只给出大类时为 null（看 position_group）"},"position_group":{"anyOf":[{"type":"string","enum":["GK","DEF","MID","FWD"]},{"type":"null"}],"title":"Position Group","description":"位置大类"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url","description":"头像；没有真实图片时为 null"}},"type":"object","required":["id","name","name_cn","position","position_group","photo_url"],"title":"SeasonStatsPlayerRef"},"SeriesOut":{"properties":{"id":{"type":"string","title":"Id","description":"系列赛对外 ID"},"stage":{"$ref":"#/components/schemas/StageRef","description":"所属季后赛轮次"},"home_team":{"anyOf":[{"$ref":"#/components/schemas/TeamRef"},{"type":"null"}],"description":"主场优势方（对阵未定时可能是占位球队）"},"away_team":{"anyOf":[{"$ref":"#/components/schemas/TeamRef"},{"type":"null"}],"description":"客场方"},"home_wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Home Wins","description":"主场优势方已赢场数（大比分）"},"away_wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Away Wins","description":"客场方已赢场数（大比分）"},"best_of":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Best Of","description":"赛制（7 / 5 / 3），0 表示单场淘汰；未知为 null"},"is_finished":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Finished","description":"一方已拿到晋级所需胜场；赛制未知或单场淘汰时为 null"},"is_current":{"type":"boolean","title":"Is Current","description":"所属轮次为当前阶段且本系列赛尚未分出胜负"}},"type":"object","required":["id","stage","home_team","away_team","home_wins","away_wins","best_of","is_finished","is_current"],"title":"SeriesOut"},"SeriesRef":{"properties":{"id":{"type":"string","title":"Id","description":"系列赛对外 ID"}},"type":"object","required":["id"],"title":"SeriesRef"},"SoccerBookmakerRef":{"properties":{"id":{"type":"string","title":"Id","description":"赔率公司对外 ID；欧指体系与让球 / 大小球 / 角球体系是两套公司，ID 互不相通"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"}},"type":"object","required":["id","name","name_cn"],"title":"SoccerBookmakerRef"},"SoccerCompetitionOut":{"properties":{"id":{"type":"string","title":"Id","description":"赛事对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文全名"},"name_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Short","description":"英文简称"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文全名"},"name_cn_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn Short","description":"简体中文简称"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文全名"},"name_cnt_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt Short","description":"繁体中文简称"},"type":{"anyOf":[{"type":"string","enum":["league","cup"]},{"type":"null"}],"title":"Type","description":"league 联赛 / cup 杯赛；未知为 null"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"国家 / 地区代码，如 ENG / ESP / INT（国际）；个别地区没有可用代码时为 null，这时看 country_cn"},"country_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Cn","description":"国家 / 地区中文名"},"gender":{"type":"string","title":"Gender","description":"male / female。源站没标的赛事按名称判断：名字带「女」或 Women 一类词的是 female，其余 male"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color","description":"赛事主题色 #hex"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"赛事 logo（亮色背景）"},"logo_dark_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Dark Url","description":"赛事 logo（暗色背景）"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"赛事简介（中文）"},"current_season":{"anyOf":[{"$ref":"#/components/schemas/SeasonRef"},{"type":"null"}],"description":"最新赛季"},"seasons":{"items":{"$ref":"#/components/schemas/SoccerSeasonOut"},"type":"array","title":"Seasons","description":"最近 N 个赛季，新的在前；由 seasons 参数控制条数"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录最近一次更新时间，供 updated_since 增量拉取"}},"type":"object","required":["id","name","name_short","name_cn","name_cn_short","name_cnt","name_cnt_short","type","country","country_cn","gender","color","logo_url","logo_dark_url","description","current_season","seasons","updated_at"],"title":"SoccerCompetitionOut"},"SoccerCompetitionRef":{"properties":{"id":{"type":"string","title":"Id","description":"赛事对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"赛事 logo（亮色背景）"},"logo_dark_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Dark Url","description":"赛事 logo（暗色背景）"}},"type":"object","required":["id","name","name_cn","logo_url","logo_dark_url"],"title":"SoccerCompetitionRef"},"SoccerEuroOddsOut":{"properties":{"market":{"type":"string","const":"euro","title":"Market","description":"赔率类型，固定 euro"},"bookmaker":{"$ref":"#/components/schemas/SoccerBookmakerRef","description":"赔率公司"},"is_main":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Main","description":"是否主流公司；未知为 null"},"is_exchange":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Exchange","description":"是否交易所；未知为 null"},"open":{"$ref":"#/components/schemas/EuroSideOut","description":"初盘"},"live":{"$ref":"#/components/schemas/EuroSideOut","description":"即时盘"},"changed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changed At","description":"即时盘最近变盘时间"}},"type":"object","required":["market","bookmaker","is_main","is_exchange","open","live","changed_at"],"title":"SoccerEuroOddsOut"},"SoccerHandicapOddsOut":{"properties":{"market":{"type":"string","const":"handicap","title":"Market","description":"赔率类型，固定 handicap（让球）"},"bookmaker":{"$ref":"#/components/schemas/SoccerBookmakerRef","description":"赔率公司"},"lines":{"items":{"$ref":"#/components/schemas/HandicapLineOut"},"type":"array","title":"Lines","description":"该公司的各条盘，主盘在前"}},"type":"object","required":["market","bookmaker","lines"],"title":"SoccerHandicapOddsOut"},"SoccerMatchAnimationOut":{"properties":{"available":{"type":"boolean","title":"Available","description":"当前能否观看动画直播。开赛前约 24 小时起、开赛后约 4 小时内的场次才会为 true，窗口外为 false"},"embed_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Embed Url","description":"嵌入地址，iframe 或 App WebView 直接打开；available 为 false 时为 null。可追加参数：lang=cn 简体（默认）/ big 繁体；statsPanel=hide 隐藏或 simple 简化技术统计；teamPanel=1 球队面板版式"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At","description":"嵌入地址过期时间，过期后打开会提示失效，需重新获取；available 为 false 时为 null"}},"type":"object","required":["available","embed_url","expires_at"],"title":"SoccerMatchAnimationOut"},"SoccerMatchOddsOut":{"properties":{"match_id":{"type":"string","title":"Match Id","description":"比赛对外 ID"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date","description":"开赛时间"},"odds":{"$ref":"#/components/schemas/SoccerOddsData","description":"该场赔率，按盘口分组"}},"type":"object","required":["match_id","date","odds"],"title":"SoccerMatchOddsOut","description":"批量赔率里的一场比赛"},"SoccerMatchOut":{"properties":{"id":{"type":"string","title":"Id","description":"比赛对外 ID"},"competition":{"$ref":"#/components/schemas/SoccerCompetitionRef","description":"所属赛事"},"season":{"$ref":"#/components/schemas/SeasonRef","description":"所属赛季"},"stage":{"anyOf":[{"$ref":"#/components/schemas/SoccerStageRef"},{"type":"null"}],"description":"所属阶段（杯赛阶段 / 联赛子阶段）；无阶段划分为 null"},"group":{"anyOf":[{"$ref":"#/components/schemas/GroupRef"},{"type":"null"}],"description":"所属小组；非小组赛为 null"},"round":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Round","description":"轮次；杯赛为 null"},"home_team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"主队；源站未定为 null"},"away_team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"客队"},"status":{"anyOf":[{"type":"string","enum":["upcoming","live","finished","postponed","cancelled","tbd","abandoned","interrupted"]},{"type":"null"}],"title":"Status","description":"语义状态；源站未给为 null"},"match_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Match Time","description":"开赛时间，+08:00；日期筛选与排序用的是同一个时间。推迟的比赛在源站给出新时间前保留原定时间，看 status 判断"},"score":{"$ref":"#/components/schemas/MatchScoreOut","description":"比分组"},"stadium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stadium","description":"场馆名，以中文为主；仅中文源没有该场时回退英文名"},"referee":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referee","description":"主裁判"},"attendance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Attendance","description":"观众人数"},"weather":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Weather","description":"天气原文"},"temperature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Temperature","description":"气温原文"},"is_neutral":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Neutral","description":"是否中立场"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"比赛说明，如延期、中立场"},"home_formation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Home Formation","description":"主队阵型，如 4-2-3-1"},"away_formation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Away Formation","description":"客队阵型"},"motm":{"anyOf":[{"$ref":"#/components/schemas/MotmOut"},{"type":"null"}],"description":"全场最佳；无数据为 null"},"has_lineups":{"type":"boolean","title":"Has Lineups","description":"是否有阵容：为 true 时 include=lineups 一定有内容"},"has_stats":{"type":"boolean","title":"Has Stats","description":"是否有单场统计：为 true 时 `/soccer/matches/{id}/stats` 一定有球队指标或球员指标"},"events":{"anyOf":[{"items":{"$ref":"#/components/schemas/MatchEventOut"},"type":"array"},{"type":"null"}],"title":"Events","description":"事件列表；仅 include=events 时给出，否则 null"},"lineups":{"anyOf":[{"$ref":"#/components/schemas/LineupsOut"},{"type":"null"}],"description":"阵容；仅 include=lineups 且有数据时给出，否则 null"},"stats":{"anyOf":[{"$ref":"#/components/schemas/MatchKeyStatsOut"},{"type":"null"}],"description":"黄牌、红牌、角球；仅 include=stats 且有数据时给出，否则 null。未开打的比赛一律 null"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录最近一次更新时间，供 updated_since 增量拉取"}},"type":"object","required":["id","competition","season","stage","group","round","home_team","away_team","status","match_time","score","stadium","referee","attendance","weather","temperature","is_neutral","note","home_formation","away_formation","motm","has_lineups","has_stats","events","lineups","stats","updated_at"],"title":"SoccerMatchOut"},"SoccerOddsData":{"properties":{"euro":{"items":{"$ref":"#/components/schemas/SoccerEuroOddsOut"},"type":"array","title":"Euro","description":"欧指"},"handicap":{"items":{"$ref":"#/components/schemas/SoccerHandicapOddsOut"},"type":"array","title":"Handicap","description":"让球"},"ou":{"items":{"$ref":"#/components/schemas/SoccerTotalOddsOut"},"type":"array","title":"Ou","description":"大小球"},"corner":{"items":{"$ref":"#/components/schemas/SoccerTotalOddsOut"},"type":"array","title":"Corner","description":"角球"}},"type":"object","title":"SoccerOddsData","description":"按盘口分组的赔率。四个键恒定存在，未请求或无数据的是空数组\n\n这里曾是 `list[Euro] | list[Asian]` 的无判别式联合，`data` 随 `type` 变形：\ncodegen 出来是个 union，客户端每次都得先做运行时判别才知道拿到的是哪一种。\n改成按盘口分键之后类型是固定的，一次请求也就能同时带回多种盘口。"},"SoccerOddsEnvelope":{"properties":{"data":{"$ref":"#/components/schemas/SoccerOddsData","description":"该场赔率，按盘口分组；无赔率为空数组。不分页"}},"type":"object","required":["data"],"title":"SoccerOddsEnvelope","description":"与篮球 `OddsEnvelope` 同形：只有 `data` 一个顶层键\n\n全市场共识曾是这里的第三个顶层键 `consensus`，且只在 type=euro && period=ft 时非 null。\n它现在是自己的子资源 `/matches/{id}/odds/consensus`——顶层形状因此和其它集合一致，\n那个\"看参数才知道有没有值\"的条件字段也不必再在响应里解释。"},"SoccerSeasonOut":{"properties":{"id":{"type":"string","title":"Id","description":"赛季对外 ID"},"name":{"type":"string","title":"Name","description":"赛季名，如 2025-2026 或 2026"},"current_round":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Round","description":"已完成的最高轮次；无轮次概念为 null"},"total_rounds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Rounds","description":"总轮次；无轮次概念为 null"},"stages":{"items":{"$ref":"#/components/schemas/SoccerStageOut"},"type":"array","title":"Stages","description":"阶段列表，新旧顺序按类型与英文名；无阶段记录为空数组"}},"type":"object","required":["id","name","current_round","total_rounds","stages"],"title":"SoccerSeasonOut"},"SoccerStageOut":{"properties":{"id":{"type":"string","title":"Id","description":"阶段对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"type":{"anyOf":[{"type":"string","enum":["league","group","knockout"]},{"type":"null"}],"title":"Type","description":"league 联赛 / group 小组赛 / knockout 淘汰赛"},"group_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Group Count","description":"小组数量，仅小组赛阶段有"},"groups":{"items":{"$ref":"#/components/schemas/GroupOut"},"type":"array","title":"Groups","description":"小组列表，非小组赛阶段为空数组"}},"type":"object","required":["id","name","name_cn","type","group_count","groups"],"title":"SoccerStageOut"},"SoccerStageRef":{"properties":{"id":{"type":"string","title":"Id","description":"阶段对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名，如 Semi-finals"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"stage_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage Type","description":"league 联赛 / group 小组赛 / knockout 淘汰赛"}},"type":"object","required":["id","name","name_cn","stage_type"],"title":"SoccerStageRef"},"SoccerStandingsOut":{"properties":{"season":{"$ref":"#/components/schemas/SeasonRef","description":"赛季"},"competition":{"anyOf":[{"$ref":"#/components/schemas/SoccerCompetitionRef"},{"type":"null"}],"description":"赛事"},"venue":{"type":"string","enum":["total","home","away"],"title":"Venue","description":"本次返回的主客场口径"},"period":{"type":"string","enum":["ft","ht"],"title":"Period","description":"本次返回的时段口径：ft 全场 / ht 半场"},"qual_zones":{"anyOf":[{"items":{"$ref":"#/components/schemas/QualZoneOut"},"type":"array"},{"type":"null"}],"title":"Qual Zones","description":"晋级 / 降级区图例；源站未给为 null"},"tables":{"items":{"$ref":"#/components/schemas/StandingsTableOut"},"type":"array","title":"Tables","description":"积分表；单表联赛一张，多联盟、同期多阶段或小组赛多张（先按联盟 / 阶段、再按名次排序）；无数据为空数组"}},"type":"object","required":["season","competition","venue","period","qual_zones","tables"],"title":"SoccerStandingsOut"},"SoccerTeamOut":{"properties":{"id":{"type":"string","title":"Id","description":"球队对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文全名"},"name_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Short","description":"英文简称"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"国家 / 地区代码，如 ENG / ESP"},"country_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Cn","description":"国家 / 地区中文名"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"球队 logo；没有真实图片时为 null"},"primary_competition":{"anyOf":[{"$ref":"#/components/schemas/SoccerCompetitionRef"},{"type":"null"}],"description":"主要参加的联赛"},"is_placeholder":{"type":"boolean","title":"Is Placeholder","description":"是否占位球队（对阵未定时的「[A1]」「XX胜者」等）；列表默认不返回占位球队"},"colors":{"anyOf":[{"$ref":"#/components/schemas/TeamColorsOut"},{"type":"null"}],"description":"球队主题色；源站没有真实主色（只给了通用的灰色占位）时为 null"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录最近一次更新时间，供 updated_since 增量拉取"}},"type":"object","required":["id","name","name_short","name_cn","name_cnt","country","country_cn","logo_url","primary_competition","is_placeholder","colors","updated_at"],"title":"SoccerTeamOut"},"SoccerTeamRef":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球队对外 ID；球队尚未入映射时为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"球队 logo；没有真实图片时为 null"}},"type":"object","required":["id","name","name_cn","logo_url"],"title":"SoccerTeamRef"},"SoccerTotalOddsOut":{"properties":{"market":{"type":"string","enum":["ou","corner"],"title":"Market","description":"赔率类型：ou 大小球 / corner 角球"},"bookmaker":{"$ref":"#/components/schemas/SoccerBookmakerRef","description":"赔率公司"},"lines":{"items":{"$ref":"#/components/schemas/TotalLineOut"},"type":"array","title":"Lines","description":"该公司的各条盘，主盘在前"}},"type":"object","required":["market","bookmaker","lines"],"title":"SoccerTotalOddsOut"},"SquadMemberOut":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球员对外 ID；球员尚未入映射时为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role","description":"player 球员 / coach 教练 / both"},"position_group":{"anyOf":[{"type":"string","enum":["GK","DEF","MID","FWD"]},{"type":"null"}],"title":"Position Group","description":"位置大类，取的是本队阵容页的编排（与球员详情的 position_group 偶有出入）；教练为 null"},"positions":{"items":{"type":"string","enum":["GK","CB","LB","RB","LWB","RWB","DM","CM","AM","LM","RM","LW","RW","ST"]},"type":"array","title":"Positions","description":"本队标注的可踢位置，主位置在前；教练与未标注为空数组"},"shirt_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shirt Number","description":"球衣号，字符串（与篮球同形）"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"国籍"},"birth_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Birth Date","description":"出生日期"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"身高 cm"},"market_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Market Value","description":"身价（欧元）"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url","description":"头像；没有真实图片时为 null"},"rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rating","description":"赛季平均评分"},"goals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Goals","description":"赛季进球"},"assists":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assists","description":"赛季助攻"},"yellow_cards":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Yellow Cards","description":"赛季黄牌"},"red_cards":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Red Cards","description":"赛季红牌"},"injured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Injured","description":"是否伤停"},"injury_return":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Injury Return","description":"预计复出说明，如 About 1-2 weeks"}},"type":"object","required":["id","name","name_cn","role","position_group","positions","shirt_number","country","birth_date","height","market_value","photo_url","rating","goals","assists","yellow_cards","red_cards","injured","injury_return"],"title":"SquadMemberOut"},"StadiumOut":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"球场名（英文）"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"球场名（中文）；与 `name` 来源不同，偶有冠名或译法差异"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"球场所在城市（英文）"},"capacity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Capacity","description":"容纳人数"},"surface":{"anyOf":[{"type":"string","enum":["grass","artificial"]},{"type":"null"}],"title":"Surface","description":"草皮：grass 天然草 / artificial 人造草"},"opened_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Opened Year","description":"启用年份"}},"type":"object","required":["name","name_cn","city","capacity","surface","opened_year"],"title":"StadiumOut","description":"球队主场。\n\n中文名与英文名各来自一个数据源，**多数情况下是同一座球场的两种叫法**\n（以最近一年主场比赛实际使用的场馆为准核对，96.7% 一致）。剩下约 1% 对不上，\n多半也只是冠名或音译/意译的差别——贝西克塔斯的「贝西克塔斯体育场 / 沃达丰球场 /\nTüpraş Stadyumu」是同一座球场的三个名字；极少数是球队搬了家，那是两个源的真实分歧。\n详见 `routers/teams._stadium`。"},"StageOut":{"properties":{"id":{"type":"string","title":"Id","description":"阶段对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名，如 Round 1 / Finals"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名，如 第一圈 / 总决赛"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"},"kind":{"type":"string","enum":["cup","playoff"],"title":"Kind","description":"cup 杯赛阶段 / playoff 季后赛轮次；常规赛与季前赛没有阶段记录"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current","description":"源站标记的当前进行阶段；未知为 null"},"best_of":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Best Of","description":"系列赛制（7 / 5 / 3），0 表示单场淘汰；杯赛阶段为 null"},"sort_order":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sort Order","description":"源站原值，含义未确认，不是阶段的先后顺序（阶段已按先后排好）；未提供为 null"}},"type":"object","required":["id","name","name_cn","name_cnt","kind","is_current","best_of","sort_order"],"title":"StageOut"},"StageRef":{"properties":{"id":{"type":"string","title":"Id","description":"阶段对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"}},"type":"object","required":["id","name","name_cn","name_cnt"],"title":"StageRef"},"StandingRowOut":{"properties":{"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rank","description":"名次"},"team":{"$ref":"#/components/schemas/SoccerTeamRef","description":"球队"},"played":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Played","description":"场次"},"wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wins","description":"胜"},"draws":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Draws","description":"平"},"losses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Losses","description":"负"},"goals_for":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Goals For","description":"进球"},"goals_against":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Goals Against","description":"失球"},"goals_diff":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Goals Diff","description":"净胜球"},"points":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Points","description":"积分"},"form":{"anyOf":[{"items":{"anyOf":[{"type":"string","enum":["W","D","L"]},{"type":"null"}]},"type":"array"},{"type":"null"}],"title":"Form","description":"近 6 场结果，旧的在前：W 胜 / D 平 / L 负，源站未知为 null；只有全场且 venue=total 的联赛表有值"},"win_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Win Pct","description":"胜率 %；小组表为 null"},"draw_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Draw Pct","description":"平率 %；小组表为 null"},"loss_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Loss Pct","description":"负率 %；小组表为 null"},"avg_goals_for":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Goals For","description":"场均进球；小组表为 null"},"avg_goals_against":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Goals Against","description":"场均失球；小组表为 null"},"qual_zone":{"anyOf":[{"$ref":"#/components/schemas/QualZoneOut"},{"type":"null"}],"description":"所处晋级 / 降级区；无标记为 null"},"red_cards":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Red Cards","description":"赛季红牌数；小组表为 null"},"deduction_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deduction Note","description":"扣分说明；无扣分为 null"}},"type":"object","required":["rank","team","played","wins","draws","losses","goals_for","goals_against","goals_diff","points","form","win_pct","draw_pct","loss_pct","avg_goals_for","avg_goals_against","qual_zone","red_cards","deduction_note"],"title":"StandingRowOut"},"StandingsOut":{"properties":{"competition":{"$ref":"#/components/schemas/BasketballCompetitionRef","description":"所属赛事"},"season":{"$ref":"#/components/schemas/SeasonRef","description":"赛季"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At","description":"源站榜单更新时间；无榜单时为 null"},"tables":{"items":{"$ref":"#/components/schemas/StandingsTable"},"type":"array","title":"Tables","description":"联赛榜在前（东部、西部），小组表在后（按阶段与组的源站顺序）；无积分数据的赛季为空数组"}},"type":"object","required":["competition","season","updated_at","tables"],"title":"StandingsOut"},"StandingsRow":{"properties":{"rank":{"type":"integer","title":"Rank","description":"在所属表内的位次，从 1 起"},"team":{"$ref":"#/components/schemas/TeamRef","description":"球队"},"played":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Played","description":"已赛场次；联赛榜由胜负场相加得出（源站胜率用的就是这个分母）"},"wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wins","description":"胜场"},"losses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Losses","description":"负场"},"win_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Win Pct","description":"胜率，百分数（73.2 表示 73.2%）"},"games_behind":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Games Behind","description":"与榜首 / 组首的胜差"},"avg_points_for":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Points For","description":"场均得分"},"avg_points_against":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Points Against","description":"场均失分"},"point_diff":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Point Diff","description":"场均净胜分；小组表取源站值，联赛榜由场均得分 − 场均失分得出"},"conference_wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Conference Wins","description":"联盟内胜场；仅联赛榜给出"},"conference_losses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Conference Losses","description":"联盟内负场；仅联赛榜给出"},"division_wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Division Wins","description":"分区内胜场；仅联赛榜给出"},"division_losses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Division Losses","description":"分区内负场；仅联赛榜给出"},"home_wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Home Wins","description":"主场胜场"},"home_losses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Home Losses","description":"主场负场"},"away_wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Away Wins","description":"客场胜场"},"away_losses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Away Losses","description":"客场负场"},"last10_wins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last10 Wins","description":"近 10 场胜场；仅联赛榜给出"},"last10_losses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last10 Losses","description":"近 10 场负场；仅联赛榜给出"},"is_qualified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Qualified","description":"是否已出线；仅小组表给出，源站未标注时为 null"},"streak":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Streak","description":"当前连胜 / 连败：正数连胜，负数连败，0 无连续记录；未知为 null"}},"type":"object","required":["rank","team","played","wins","losses","win_pct","games_behind","avg_points_for","avg_points_against","point_diff","conference_wins","conference_losses","division_wins","division_losses","home_wins","home_losses","away_wins","away_losses","last10_wins","last10_losses","is_qualified","streak"],"title":"StandingsRow"},"StandingsTable":{"properties":{"conference":{"anyOf":[{"$ref":"#/components/schemas/ConferenceRef"},{"type":"null"}],"description":"联盟 / 分区（NBA 东西部）；无东西部之分或小组表为 null"},"group":{"anyOf":[{"$ref":"#/components/schemas/GroupRef"},{"type":"null"}],"description":"小组表的小组；联赛榜为 null"},"stage":{"anyOf":[{"$ref":"#/components/schemas/StageRef"},{"type":"null"}],"description":"本表所属阶段（与比赛接口的 stage 同一套 ID）；联赛榜、阶段尚无对外 ID 时为 null"},"rows":{"items":{"$ref":"#/components/schemas/StandingsRow"},"type":"array","title":"Rows","description":"按名次升序"}},"type":"object","required":["conference","group","stage","rows"],"title":"StandingsTable"},"StandingsTableOut":{"properties":{"conference":{"anyOf":[{"$ref":"#/components/schemas/ConferenceRef"},{"type":"null"}],"description":"多联盟联赛（MLS 东西部等）的联盟；单表联赛与小组表为 null"},"group":{"anyOf":[{"$ref":"#/components/schemas/GroupRef"},{"type":"null"}],"description":"小组表的小组；联赛表为 null"},"stage":{"anyOf":[{"$ref":"#/components/schemas/SoccerStageRef"},{"type":"null"}],"description":"本表所属阶段（与比赛接口的 stage 同一套 ID）：多阶段联赛的子阶段（上下半程、争冠/保级组、并列分组等）或杯赛小组阶段；单阶段联赛、阶段尚未入映射时为 null"},"rows":{"items":{"$ref":"#/components/schemas/StandingRowOut"},"type":"array","title":"Rows","description":"按名次排序的行"}},"type":"object","required":["conference","group","stage","rows"],"title":"StandingsTableOut"},"TeamColorsOut":{"properties":{"dark_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dark Mode","description":"暗色主题下的主色"},"light_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Light Mode","description":"亮色主题下的主色"},"font_dark_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Dark Mode","description":"暗色主题下的字色"},"font_light_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Light Mode","description":"亮色主题下的字色"}},"type":"object","required":["dark_mode","light_mode","font_dark_mode","font_light_mode"],"title":"TeamColorsOut"},"TeamDetailOut":{"properties":{"id":{"type":"string","title":"Id","description":"球队对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文全名"},"name_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Short","description":"英文简称"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文名"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"国家 / 地区代码，如 ENG / ESP"},"country_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Cn","description":"国家 / 地区中文名"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"球队 logo；没有真实图片时为 null"},"primary_competition":{"anyOf":[{"$ref":"#/components/schemas/SoccerCompetitionRef"},{"type":"null"}],"description":"主要参加的联赛"},"is_placeholder":{"type":"boolean","title":"Is Placeholder","description":"是否占位球队（对阵未定时的「[A1]」「XX胜者」等）；列表默认不返回占位球队"},"colors":{"anyOf":[{"$ref":"#/components/schemas/TeamColorsOut"},{"type":"null"}],"description":"球队主题色；源站没有真实主色（只给了通用的灰色占位）时为 null"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录最近一次更新时间，供 updated_since 增量拉取"},"founded_year":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Founded Year","description":"成立年份"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"球队所在城市（中文）；与 `stadium.city` 各来自一个源，不保证一致"},"market_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Market Value","description":"球队总身价，单位百万欧元，源站原文字符串（如 \"1432.3\" 即 14.323 亿欧元）"},"avg_age":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Age","description":"平均年龄"},"intro":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intro","description":"球队介绍（中文，`## ` 开头的行是小节标题）"},"advantage":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Advantage","description":"优势标签"},"style":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Style","description":"风格标签"},"weakness":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Weakness","description":"劣势标签"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website","description":"官网"},"stadium":{"anyOf":[{"$ref":"#/components/schemas/StadiumOut"},{"type":"null"}],"description":"主场；两个源都没有球场信息时为 null"}},"type":"object","required":["id","name","name_short","name_cn","name_cnt","country","country_cn","logo_url","primary_competition","is_placeholder","colors","updated_at","founded_year","city","market_value","avg_age","intro","advantage","style","weakness","website","stadium"],"title":"TeamDetailOut"},"TeamOut":{"properties":{"id":{"type":"string","title":"Id","description":"球队对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文全名"},"name_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Short","description":"英文简称"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文全名"},"name_cn_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn Short","description":"简体中文简称"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文全名"},"name_cnt_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt Short","description":"繁体中文简称"},"conference":{"anyOf":[{"$ref":"#/components/schemas/ConferenceRef"},{"type":"null"}],"description":"联盟；仅 NBA 有值，其余为 null"},"division":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Division","description":"分区编号 1~6（1 大西洋 2 中部 3 东南 4 太平洋 5 西北 6 西南）；仅 NBA 有值，其余为 null"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"队徽图片 URL；没有真实图片时为 null"},"is_placeholder":{"type":"boolean","title":"Is Placeholder","description":"是否占位球队（季后赛对阵未定时的「附加赛G1胜者」「Play-In Game 2 Loser」等）；列表默认不返回占位球队"},"updated_at":{"type":"string","title":"Updated At","description":"最近更新时间，增量拉取用 updated_since 与之比较"}},"type":"object","required":["id","name","name_short","name_cn","name_cn_short","name_cnt","name_cnt_short","conference","division","logo_url","is_placeholder","updated_at"],"title":"TeamOut"},"TeamRef":{"properties":{"id":{"type":"string","title":"Id","description":"球队对外 ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文全名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文全名"},"name_cn_short":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn Short","description":"简体中文简称"},"name_cnt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cnt","description":"繁体中文全名"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url","description":"队徽图片 URL；没有真实图片时为 null"}},"type":"object","required":["id","name","name_cn","name_cn_short","name_cnt","logo_url"],"title":"TeamRef"},"TeamSeasonOut":{"properties":{"season":{"$ref":"#/components/schemas/SeasonRef","description":"赛季"},"competition":{"$ref":"#/components/schemas/SoccerCompetitionRef","description":"赛事"}},"type":"object","required":["season","competition"],"title":"TeamSeasonOut"},"TeamSeasonStatsOut":{"properties":{"team":{"$ref":"#/components/schemas/SoccerTeamRef","description":"球队"},"venue":{"type":"string","title":"Venue","description":"口径：total / home / away"},"stats":{"$ref":"#/components/schemas/TeamSeasonStatsValues","description":"赛季累计指标"}},"type":"object","required":["team","venue","stats"],"title":"TeamSeasonStatsOut"},"TeamSeasonStatsValues":{"properties":{"appearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Appearances","description":"场次"},"goals":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Goals","description":"进球"},"xg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg","description":"预期进球 xG"},"xg_open_play":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg Open Play","description":"运动战 xG"},"xg_set_play":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg Set Play","description":"定位球 xG"},"xg_non_penalty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg Non Penalty","description":"非点球 xG"},"xg_on_target":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Xg On Target","description":"射正预期进球 xGOT"},"shots":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots","description":"射门"},"shots_on_target":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots On Target","description":"射正"},"shots_off_target":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots Off Target","description":"射偏"},"shots_blocked":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots Blocked","description":"被封堵射门"},"shots_conceded":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shots Conceded","description":"被射门次数"},"touches_in_opposition_box":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Touches In Opposition Box","description":"对方禁区内触球"},"avg_possession":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Possession","description":"场均控球率 %"},"passes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Passes","description":"传球"},"passes_accurate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Passes Accurate","description":"传球成功"},"accurate_crosses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accurate Crosses","description":"传中成功"},"dribbles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Dribbles","description":"过人"},"corners":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Corners","description":"角球"},"throw_ins":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Throw Ins","description":"界外球"},"headers":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Headers","description":"争顶"},"headers_won":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Headers Won","description":"争顶成功"},"aerial_duels_won":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Aerial Duels Won","description":"空中对抗成功"},"ground_duels_won":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ground Duels Won","description":"地面对抗成功"},"tackles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tackles","description":"抢断"},"clearances":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clearances","description":"解围"},"saves":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Saves","description":"扑救"},"fumbles":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fumbles","description":"脱手"},"fouls":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fouls","description":"犯规"},"offsides":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offsides","description":"越位"},"yellow_cards":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Yellow Cards","description":"黄牌"},"red_cards":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Red Cards","description":"红牌"}},"type":"object","required":["appearances","goals","xg","xg_open_play","xg_set_play","xg_non_penalty","xg_on_target","shots","shots_on_target","shots_off_target","shots_blocked","shots_conceded","touches_in_opposition_box","avg_possession","passes","passes_accurate","accurate_crosses","dribbles","corners","throw_ins","headers","headers_won","aerial_duels_won","ground_duels_won","tackles","clearances","saves","fumbles","fouls","offsides","yellow_cards","red_cards"],"title":"TeamSeasonStatsValues"},"TeamTransferTotalOut":{"properties":{"team":{"$ref":"#/components/schemas/SoccerTeamRef","description":"球队"},"total_fee":{"type":"integer","title":"Total Fee","description":"转会费总额（欧元）"},"total_fee_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Total Fee Text","description":"总额可读文本"},"count":{"type":"integer","title":"Count","description":"计入的转会笔数"}},"type":"object","required":["team","total_fee","total_fee_text","count"],"title":"TeamTransferTotalOut"},"TeamTransferTotalsOut":{"properties":{"role":{"type":"string","enum":["buyer","seller"],"title":"Role","description":"buyer 按买入总花费 / seller 按卖出总收入"},"date_from":{"type":"string","format":"date","title":"Date From","description":"统计起始日（含）"},"date_to":{"type":"string","format":"date","title":"Date To","description":"统计截止日（含）"},"teams":{"items":{"$ref":"#/components/schemas/TeamTransferTotalOut"},"type":"array","title":"Teams","description":"按总额倒序"}},"type":"object","required":["role","date_from","date_to","teams"],"title":"TeamTransferTotalsOut"},"TeamTrophyOut":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"赛事名；同一支球队要么全是中文、要么全是英文"},"area":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Area","description":"domestic 国内 / international 国际；源站未标或赛事名为中文时为 null"},"won":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Won","description":"夺冠次数"},"runnerup":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Runnerup","description":"亚军次数；赛事名为中文时为 null"},"seasons_won":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Seasons Won","description":"夺冠赛季"},"seasons_runnerup":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Seasons Runnerup","description":"亚军赛季；赛事名为中文时为 null"}},"type":"object","required":["name","area","won","runnerup","seasons_won","seasons_runnerup"],"title":"TeamTrophyOut","description":"一支球队的全部条目来自同一个来源：赛事名是中文的那份只有夺冠，没有它时才给英文那份（含亚军）"},"TotalLineOut":{"properties":{"line_index":{"type":"integer","title":"Line Index","description":"盘序：1 主盘，2/3/4 同一公司的副盘"},"open_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Open Line","description":"初盘大小线，源站原文字符串"},"open_over":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Open Over","description":"初盘大分赔率"},"open_under":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Open Under","description":"初盘小分赔率"},"live_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Live Line","description":"即时大小线，源站原文字符串"},"live_over":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Live Over","description":"即时大分赔率"},"live_under":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Live Under","description":"即时小分赔率"},"changed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Changed At","description":"即时盘最近变盘时间"}},"type":"object","required":["line_index","open_line","open_over","open_under","live_line","live_over","live_under","changed_at"],"title":"TotalLineOut"},"TraitOut":{"properties":{"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key","description":"特征键，如 goals"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"特征名，如 Goals"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value","description":"百分位 0~1"}},"type":"object","required":["key","title","value"],"title":"TraitOut"},"TransferOut":{"properties":{"player":{"anyOf":[{"$ref":"#/components/schemas/TransferPlayerRef"},{"type":"null"}],"description":"球员"},"from_team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"转出球队；未知为 null"},"to_team":{"anyOf":[{"$ref":"#/components/schemas/SoccerTeamRef"},{"type":"null"}],"description":"转入球队；未知为 null"},"date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date","description":"转会日期"},"type":{"type":"string","enum":["transfer","loan","loan_end","free","contract"],"title":"Type","description":"transfer 转会 / loan 租借 / loan_end 租借结束 / free 自由转会 / contract 续约"},"fee":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fee","description":"转会费（欧元）；未知或无费用为 null"},"fee_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fee Text","description":"转会费可读文本，如 €4200万 / 租借"},"market_value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Market Value","description":"转会时身价（欧元）；仅部分记录有"},"season":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Season","description":"转会窗口所属赛季，如 2025-2026，可直接回填到本接口的 season 参数。它是跨赛事的时间窗口标签，不是某赛事的赛季，所以不是 SeasonRef、也不能当 season_id 用"},"on_loan":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"On Loan","description":"是否租借"},"contract_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract End","description":"合同到期（源站原文）"},"updated_at":{"type":"string","title":"Updated At","description":"本条记录入库或最近变更的时间，供 updated_since 增量拉取；注意不是转会发生时间（见 date）"}},"type":"object","required":["player","from_team","to_team","date","type","fee","fee_text","market_value","season","on_loan","contract_end","updated_at"],"title":"TransferOut"},"TransferPlayerRef":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"球员对外 ID；球员尚未入映射时为 null"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"英文名"},"name_cn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Cn","description":"简体中文名"},"position":{"anyOf":[{"type":"string","enum":["GK","CB","LB","RB","LWB","RWB","DM","CM","AM","LM","RM","LW","RW","ST"]},{"type":"null"}],"title":"Position","description":"主位置缩写；源站只给出大类时为 null（看 position_group）"},"position_group":{"anyOf":[{"type":"string","enum":["GK","DEF","MID","FWD"]},{"type":"null"}],"title":"Position Group","description":"位置大类"},"photo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Photo Url","description":"头像；没有真实图片时为 null"}},"type":"object","required":["id","name","name_cn","position","position_group","photo_url"],"title":"TransferPlayerRef"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","description":"合作方 API key","in":"header","name":"X-API-Key"}}},"servers":[{"url":"https://docchat.site/api"}]}