账户
浏览产品与网站导航

指数历史数据

GET https://api.superscore.cn/football/odds/oddsHistoryById

接口说明

按需请求

请求方式
GET
请求地址
https://api.superscore.cn/football/odds/oddsHistoryById
Content-Type
application/x-www-form-urlencoded;charset=UTF-8

请求头与鉴权

字段类型必填文档示例值说明
tokenstring是传商户KEYtoken(传商户KEY)仅供测试,正式站请设置IP

商户密钥仅保存在自己的服务端。测试 token 与正式 IP 授权的适用范围以本表及账户授权说明为准。

请求参数

Query 查询参数

字段类型必填文档示例值说明
matchIdint32是0比赛ID(必填)
bookmakerIdint32否0盘口公司ID(可选,不填返回所有)
marketIdint32否0市场ID(可选,不填返回所有)

示例值用于说明字段;比赛、球队、联赛等 ID 应从实际接口取得,不能直接使用占位值。字段中的日期、枚举、分页范围与更新建议完整保留原始说明。

调用示例

替换 YOUR_MERCHANT_KEY、YOUR_MATCH_ID 等占位值后,在已授权的服务端调用。示例不会在本页面发起真实请求。

cURL

curl --get 'https://api.superscore.cn/football/odds/oddsHistoryById' \
  --header 'token: YOUR_MERCHANT_KEY' \
  --data-urlencode 'matchId=YOUR_MATCH_ID' \
  --data-urlencode 'bookmakerId=YOUR_BOOKMAKER_ID' \
  --data-urlencode 'marketId=YOUR_MARKET_ID'

JavaScript / Node.js

// 仅在服务端保存商户密钥;替换示例占位值。
const url = new URL("https://api.superscore.cn/football/odds/oddsHistoryById");
url.search = new URLSearchParams({
  "matchId": "YOUR_MATCH_ID",
  "bookmakerId": "YOUR_BOOKMAKER_ID",
  "marketId": "YOUR_MARKET_ID"
});
const response = await fetch(url, {
  method: "GET",
  headers: {
  "token": "YOUR_MERCHANT_KEY"
}
});
if (!response.ok) throw new Error('HTTP ' + response.status);
const result = await response.json();
if (result.success !== true) throw new Error(String(result.message || result.code));
console.log(result.data);
Python 标准库示例
# 标准库示例;商户密钥仅保存在服务端。
import json
from urllib.parse import urlencode
from urllib.request import Request, urlopen

parameters = {
  "matchId": "YOUR_MATCH_ID",
  "bookmakerId": "YOUR_BOOKMAKER_ID",
  "marketId": "YOUR_MARKET_ID"
}
headers = {
  "token": "YOUR_MERCHANT_KEY"
}
url = "https://api.superscore.cn/football/odds/oddsHistoryById"
if parameters:
    url += '?' + urlencode(parameters)
with urlopen(Request(url, headers=headers, method="GET"), timeout=15) as response:
    result = json.load(response)
if not result.get('success'):
    raise RuntimeError(result.get('message') or result.get('code'))
print(result.get('data'))

返回参数

字段路径保留完整层级;[] 表示数组元素,<key> 表示按数据内容变化的映射键。success、code、message 与 data 均按接口定义列出。

字段路径类型说明与枚举
successboolean状态码
codestring状态编号
messagestring描述
dataarray数据
data[].bookmakerIdint32盘口公司ID
data[].bookmakerNamestring盘口公司名称
data[].marketsarray市场列表
data[].markets[].marketIdint32市场ID
data[].markets[].marketNamestring市场名称
data[].markets[].historyobject赔率历史数据
data[].markets[].history.matchIdint32比赛ID
data[].markets[].history.bookmakerIdint32盘口公司ID
data[].markets[].history.marketIdint32市场ID: 1=欧赔, 2=亚盘, 3=大小球 ,4=角球 ,5=上半场欧赔, 6=上半场亚盘, 7=上半场大小球 ,8=上半场角球
data[].markets[].history.marketNamestring市场名称
data[].markets[].history.historyarray历史记录列表(按时间排序,最早的在前)
data[].markets[].history.history[].timeint64时间戳(秒)
data[].markets[].history.history[].oddsTypeint32赔率类型: 1=初盘, 2=即时盘, 3=临场盘, 4=滚球盘
data[].markets[].history.history[].minutestring比赛进行时间
data[].markets[].history.history[].scorestring当前比分
data[].markets[].history.history[].handicapstring盘口值/让球值(市场级别,如 "0.5", "1/1.5")
data[].markets[].history.history[].outcomesarray赔率结果列表,支持任意市场类型
data[].markets[].history.history[].outcomes[].namestring结果名称: home, draw, away, over, under, 1-0, yes, no 等
data[].markets[].history.history[].outcomes[].valuedouble赔率值
data[].markets[].history.history[].outcomes[].handicapstring该结果的盘口值(可选,用于分盘口如 "0/0.5")
data[].markets[].history.statusint32比赛状态
data[].markets[].history.updateTimeint64更新时间

响应结构示例

下面的值仅展示字段类型,不是实时数据或真实调用结果。动态 map 的键取决于实际返回,不编造固定字段。

展开完整 JSON 结构
{
  "success": false,
  "code": "示例字符串",
  "message": "示例字符串",
  "data": [
    {
      "bookmakerId": 0,
      "bookmakerName": "示例字符串",
      "markets": [
        {
          "marketId": 0,
          "marketName": "示例字符串",
          "history": {
            "matchId": 0,
            "bookmakerId": 0,
            "marketId": 0,
            "marketName": "示例字符串",
            "history": [
              {
                "time": 0,
                "oddsType": 0,
                "minute": "示例字符串",
                "score": "示例字符串",
                "handicap": "示例字符串",
                "outcomes": [
                  {
                    "name": "示例字符串",
                    "value": 0,
                    "handicap": "示例字符串"
                  }
                ]
              }
            ],
            "status": 0,
            "updateTime": 0
          }
        }
      ]
    }
  ]
}

错误处理与使用说明

  1. 先检查 HTTP 状态,再解析 JSON;网络失败或非 JSON 响应不能当作成功。
  2. 业务响应 success 为 false 时,读取 code 和 message;不要把业务错误与 HTTP 状态混为一谈。
  3. 保存原始错误码、请求时间及接口路径用于排查,日志中移除商户密钥。
  4. 按该接口的数据更新建议、账户授权和调用频率请求;日期和时间戳单位以字段说明为准。
  5. 允许字段缺失或数据为空,按接口中的稳定 ID 关联资料,不依赖数组顺序。