接口说明
返回单场比赛所有指数公司的指数变化历史,从初盘到请求接口的时刻(根据‘指数更新数据’接口变动更新,作为补充使用)
范围:初盘、即时盘、滚球盘
每家公司每种指数的第一个盘口,即为初盘;初盘到开球为即时盘;开球后为滚球盘
请求次数:120次/min
说明:
指数变化数据都在实时指数接口获取,实时指数接口返回的是最近60s内的全量比赛的变动指数数据,需本地记录
若指数数据获取有缺失或未获取到,再通过单场比赛指数接口进行查缺补漏
范围:初盘、即时盘、滚球盘
每家公司每种指数的第一个盘口,即为初盘;初盘到开球为即时盘;开球后为滚球盘
请求次数:120次/min
说明:
指数变化数据都在实时指数接口获取,实时指数接口返回的是最近60s内的全量比赛的变动指数数据,需本地记录
若指数数据获取有缺失或未获取到,再通过单场比赛指数接口进行查缺补漏
调用信息
- 请求
GET https://api.sports.csap.ai/api/v1/matches/odds/histories- 鉴权
- 请求头 X-API-Key: <你的 key>(也支持 Authorization: Bearer <key>;?key= 仍可用但不建议,key 会留在地址和日志里)
- 外部 key
- 可调用(数据有范围)外部 key 可以调用,但只返回开放范围内的数据,见「通用说明 · 外部 key 的数据范围」。
- 频率限制
- 每分钟 3000 次 · 每天 200000 次 · 按 key 配置(以 /api/v1/account 返回的 rate_per_min、quota_daily 为准;上面是试用 key 的值),超出回 429。另外整表快照、不带比赛 id 的统计列表等重型请求全站同时只处理 2 个,排不上回 429 + Retry-After。响应里暂时没有 X-RateLimit-* 头。 详见通用说明
请求参数 1
| 参数 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
| id | integer | 必填 | 5179 | 比赛id |
请求示例
curl "https://api.sports.csap.ai/api/v1/matches/odds/histories?id=5179" \ -H "X-API-Key: YOUR_API_KEY"
在线调试
示例返回
{
"code": 0,
"data": [
{
"asia": null,
"away_goals": 0,
"away_zh": "马格德堡",
"bs": null,
"competition": "German Bundesliga 2",
"cr": null,
"eu": null,
"home_goals": 1,
"home_zh": null,
"kickoff": "2025-04-12T19:00:00Z",
"odds_a": 2.05,
"odds_d": 3.4,
"odds_h": 3.5,
"result": "HOME_WIN",
"season": "2024/25",
"source": "SX9f74ee",
"source_id": null,
"updated_at": 1793878545218,
"公司id": null
},
{
"asia": null,
"away_goals": 1,
"away_zh": null,
"bs": null,
"competition": "English League Two",
"cr": null,
"eu": null,
"home_goals": 3,
"home_zh": "阿克宁顿",
"kickoff": "2025-11-15T23:00:00Z",
"odds_a": 2.82,
"odds_d": 3.3,
"odds_h": 2.32,
"result": "HOME_WIN",
"season": "2025/26",
"source": "SX9f74ee",
"source_id": null,
"updated_at": 1793878513298,
"公司id": null
}
],
"message": "success",
"success": true
}返回字段 21
asianull可为空亚盘-指数数据字段说明(盘口 - 为正,主让客;为负,客让主)
away_enstring
示例: "Magdeburg"away_goalsinteger
示例: 0away_zhstring可为空客队中文名
示例: "马格德堡"bsnull可为空大小球-指数数据字段说明
competitionstring赛事
示例: "German Bundesliga 2"crnull可为空角球-指数数据字段说明
eunull可为空欧赔-指数数据字段说明
home_enstring
示例: "Ulm"home_goalsinteger
示例: 1home_zhstring可为空主队中文名
示例: "阿克宁顿"kickoffstring
示例: "2025-04-12T19:00:00Z"odds_anumber
示例: 2.05odds_dnumber
示例: 3.4odds_hnumber
示例: 3.5resultstring
示例: "HOME_WIN"seasonstring赛季
示例: "2024/25"sourcestring数据来源代号(S1、S2…)
示例: "SX9f74ee"source_idnull可为空来源内的 id
updated_atinteger最后更新时间(UTC,ISO 8601;增量同步用 time 参数按它取)
示例: 1793878545218公司idnull可为空指数公司id,详见状态码->指数公司ID
错误码
| HTTP | message | 场景 |
|---|---|---|
| 401 | missing API key / unauthorized | 没带 X-API-Key 或 key 无效、已停用 |
| 400 | bad param … | 参数格式不对(如 id 不是数字或 u<uid>) |
| 301 | match merged into <gmid> | 按旧比赛 id 查,这场已合并到新 gmid:Location 指向新地址,返回体带 moved_to |
| 404 | not found | 比赛 / 球队 / 赛事不存在,或不在这个 key 的可见范围内(外部 key 只能看到开放范围内的比赛) |
| 429 | rate limit exceeded / daily quota exceeded | 超过 key 的每分钟次数或每日配额 |
| 429 | server busy, retry later | 服务端并发名额已满(重型请求同时只有 2 个),按 Retry-After 秒后重试 |
| 500 | query error | 服务端查询失败,可重试 |