历史赔率:用于回测和建模
获取你所选博彩公司的收盘赔率,并附带最终比分。只需几次请求即可拉取一个联赛的整个赛季,也可以逐场获取,使用的是与实时赔率相同的API密钥。
- 收盘赔率起始时间
- 2025年12月
- 每次批量请求
- 366天
- 每次请求的博彩公司数
- 30
- 每次请求的联赛数
- 10
一次请求获取一个月的收盘赔率
/v3/historical/closing-lines会返回时间窗口内所有已结算的赛事,以及它们的收盘赔率和最终比分。即使你所选的博彩公司没有为某场赛事提供赔率,该赛事也会出现在结果中,并带有一个空的bookmakers对象,因此缺少赔率不会被误认为缺少比赛。
curl "https://api.odds-api.io/v3/historical/closing-lines?apiKey=YOUR_API_KEY\
&sport=football&leagues=england-premier-league,spain-la-liga\
&from=2026-01-01T00:00:00Z&to=2026-01-31T23:59:59Z\
&markets=ML&bookmakers=Bet365,Unibet&limit=100"[
{
"id": 123456,
"home": "Arsenal",
"away": "Chelsea",
"date": "2026-01-14T20:00:00Z",
"status": "settled",
"league": { "name": "England - Premier League", "slug": "england-premier-league" },
"scores": { "home": 2, "away": 1 },
"bookmakers": {
"Bet365": [
{
"name": "ML",
"updatedAt": "2026-01-14T19:58:12Z",
"odds": [{ "home": "2.10", "draw": "3.40", "away": "3.60" }]
}
]
}
}
]历史数据端点
共有四个历史数据端点和一个盘口变动端点。API参考文档列出了所有参数。
- GET
/v3/ historical/ closing-lines - 一次获取多场赛事的收盘赔率:最多10个联赛、366天、30家博彩公司,以及你指定的盘口。付费方案
- GET
/v3/ historical/ odds - 获取一场已结束赛事的收盘赔率和最终比分,最多30家博彩公司。所有方案
- GET
/v3/ historical/ events - 获取一个联赛最长31天内已结算的比赛和最终比分。所有方案
- GET
/v3/ historical/ events/ search - 按球队名称在所有联赛中搜索已结算的赛事,最新的排在最前。所有方案
- GET
/v3/ odds/ movements - 单个盘口的赛前盘口变动:开盘赔率、最新赔率以及其间的变化。所有方案
三步下载一个赛季
- 1
选择联赛和日期
选择一个体育项目、最多10个联赛slug,以及最长366天的日期范围,一次即可覆盖整个赛季。
- 2
指定盘口和博彩公司
批量端点必须提供markets和bookmakers,博彩公司最多30家。/v3/bookmakers中的任何名称都可以使用,返回的赔率也使用相同的名称。
- 3
分页获取整个赛季
每个响应最多包含100场已结算的赛事。不断添加skip,直到某一页返回的数量不足100条。一个240场比赛的赛季只需三次请求。
开发者用它构建什么
回测投注模型
在过往赛季上运行模型,将其价格与各家博彩公司的收盘赔率进行比较,最终比分也在同一个响应中。
衡量收盘线价值
将你拿到的赔率与收盘赔率进行比较。变动历史还会提供开盘赔率,让你看到盘口移动了多少。
构建训练数据集
用大约20次请求获取五个联赛一个赛季的收盘赔率,而不是逐场调用约1,900次,返回的JSON可以直接加载到dataframe中。
数据深度和限制
赛事列表和批量收盘赔率只返回已结算的赛事。盘口名称与/v3/odds返回的一致,因此历史数据和实时数据可以用相同的键关联。
- 收盘赔率历史
- 自2025年12月起
- 日期范围(批量收盘赔率)
- 366天
- 日期范围(赛事和搜索)
- 31天
- 每次批量请求的联赛数
- 10
- 每次请求的博彩公司数
- 30
- 每个批量响应的赛事数
- 100,使用skip翻页
- 格式
- 通过REST返回JSON
历史赔率API常见问题
历史赔率数据最早可以追溯到什么时候?
收盘赔率最早可追溯到2025年12月。更早的比赛和最终比分仍可通过/v3/historical/events获取,但赔率端点返回这些赛事时,bookmakers对象为空。
获取整个赛季应该用哪个端点?
/v3/historical/closing-lines。每次请求最多支持10个联赛和366天,每页最多返回100场已结算赛事。逐场拉取五个联赛一个赛季的数据大约需要1,900次请求,而批量端点只需约20次即可返回相同的数据。
我的方案包含历史赔率数据吗?
/v3/historical/events、/v3/historical/events/search和/v3/historical/odds在所有方案中均可使用。/v3/historical/closing-lines需要付费方案。新的免费密钥已暂停发放,因此每月£49的Solo方案是最实惠的入门方式。
覆盖哪些盘口和博彩公司?
我们为所覆盖的每家博彩公司和每个盘口保存已结算赛事的收盘赔率。盘口名称因体育项目而异:大多数使用ML、Totals和Spread,网球使用Totals (Games)和Spread (Games),棒球则在名称中完整写出前五局。调用/v3/markets?sport=<sport>可获取准确的名称,不带markets筛选调用/v3/historical/odds可查看一场赛事包含的全部数据。
你们提供盘口变动,还是只有收盘赔率?
/v3/odds/movements会返回单条盘口线的开盘赔率、最新赔率以及其间的变化。历史仅限赛前,并且只为固定的一批博彩公司记录,完整名单见文档。所有方案均可使用。
未结算或已取消的比赛包含在内吗?
/v3/historical/events、/v3/historical/events/search和/v3/historical/closing-lines只列出已结算的赛事,因此已经结束但尚未在我们系统中结算的比赛不会出现在其中。/v3/historical/odds会返回赛事状态,请注意检查。如需获得每场赛事(包括已取消比赛)的明确结果,请使用Bet Settlement API。