跳轉到

即時比分 API

本文件介紹如何取得賽事比分,包含各小節得分、總分,棒球另外包含安打數、失誤數。



如何使用

服務端點
GEThttps://api.sportsbot.tech/v2/scores
參數內容
必填
sport
String
賽事類型,支援下列幾種聯盟
  • NBA:美國職籃
  • MLB:美國大聯盟
  • CPB:中華職棒
  • NPB:日本職棒
  • KBO:韓國職棒
  • FTB:足球
  • ICE:冰球
  • TNS:網球
  • VLB:排球
  • BSK:其他籃球
  • BSE:其他棒球
  • BAD:羽球
  • TBT:桌球
  • LOL:英雄聯盟
  • CST:絕對武力
  • 必填
    date
    String
    日期,限定格式YYYY-MM-DD

    程式範例

    Note

    試用密鑰每日限額 20 次,其餘規範請參考密鑰說明,並取得您的專屬密鑰。

    import requests
    
    params = {'sport': 'FTB',       # 選擇賽事
              'date': 'YYYY-MM-DD'} # 指定日期
    headers = {'X-JBot-Token': 'YOUR_TOKEN'}    # 填寫密鑰
    
    url = 'https://api.sportsbot.tech/v2/scores'
    res = requests.get(url, headers=headers, params=params)
    print(res.json())
    
    const axios = require('axios');
    
    async function run(){
        const params = {
            sport: 'FTB',       // 選擇賽事
            date: 'YYYY-MM-DD'  // 指定日期
        };
        const headers = {'X-JBot-Token': 'YOUR_TOKEN'}; // 填寫密鑰
        const url = 'https://api.sportsbot.tech/v2/scores';
        try{
            const response = await axios.get(url, {params, headers});
            console.log(response.data);
        }catch(error){
            console.error(error.message);
        }
    }
    run();
    
    require 'uri'
    require 'json'
    require 'net/http'
    
    params = {
      'sport' => 'FTB',         # 選擇賽事
      'date' => 'YYYY-MM-DD'    # 指定日期
    }
    url = URI('https://api.sportsbot.tech/v2/scores')
    url.query = URI.encode_www_form(params)
    request = Net::HTTP::Get.new(url)
    request['X-JBot-Token'] = 'YOUR_TOKEN'  # 填寫密鑰
    
    http = Net::HTTP.new(url.host, url.port)
    http.use_ssl = true
    response = http.request(request)
    puts JSON.parse(response.body)
    
    using System;
    using System.Net.Http;
    using System.Threading.Tasks;
    using System.Collections.Generic;
    using System.Linq;
    
    class Program
    {
        static async Task Main(string[] args)
        {
            var client = new HttpClient();
            var parameters = new Dictionary<string, string>
            {
                {"sport", "FTB"},       // 選擇賽事
                {"date", "YYYY-MM-DD"}  // 指定日期
            };
            var url = "https://api.sportsbot.tech/v2/scores?" + ToQueryString(parameters);
            var request = new HttpRequestMessage(HttpMethod.Get, url);
            request.Headers.Add("X-JBot-Token", "YOUR_TOKEN");  // 填寫密鑰
    
            HttpResponseMessage response = await client.SendAsync(request);
            Console.WriteLine(await response.Content.ReadAsStringAsync());
        }
        static string ToQueryString(Dictionary<string, string> parameters)
        {
            var keyValuePairs = parameters.Select(kv => $"{Uri.EscapeDataString(kv.Key)}={Uri.EscapeDataString(kv.Value)}");
            return string.Join("&", keyValuePairs);
        }
    }
    
    <?php
    $params = [
        'sport' => 'FTB',       // 選擇賽事
        'date' => 'YYYY-MM-DD'  // 指定日期
    ];
    $url = 'https://api.sportsbot.tech/v2/scores?' . http_build_query($params);
    $headers = ['X-JBot-Token: YOUR_TOKEN'];    // 填寫密鑰
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    echo $response;
    curl_close($ch);
    ?>
    

    回傳格式

    回傳均為 JSON 格式,範例如下:

    {
      "status": "OK",           // 狀態,"OK"或其他錯誤訊息
      "user": {
        "day_limit": 300,       // 每日限額
        "day_used": 1,          // 已使用次數
        "email": "Trial User",  // 訂閱者信箱
        "expiry": "2025-12-31"  // 訂閱期限
      },
      "data": [                 // 回傳資料為 list,包含每場賽事資訊
        {
          "time": "2024-02-25T09:00",   // 開賽時間
          "away": "奧蘭多魔術",  // 客場名稱
          "home": "底特律活塞",  // 主場名稱
          "league": "美國職籃", // 聯盟名稱
          // 比賽狀態
          // "Scheduled" 未開始
          // "Warmup" 即將開始/暖身中
          // "Postponed" 延期
          // "Canceled" 取消
          // "In Progress" 比賽中
          // "Final" 完賽
          // "No Result" 延期或取消
          // ... 或其他狀態
          "status": "Final",
          "result": {   // 比分存在 result 中
            "away": {   // 客場
              "box": [32, 33, 25, 22], // 各節比分 (list[int])
              "score": 112  // 總分、勝局數
              // set 勝盤分 (網球、排球)
              // hit 安打數 (棒球)
              // error 失誤數 (棒球)
            },
            "home": {   // 主場
              "box": [30, 25, 30, 24],
              "score": 109
            }
          }
        }
      ]
    }
    
    {
      "status": "OK",
      "user": { ... },
      "data": [
        {   
          // 賽事 1,未開打狀態為 Scheduled,且無 result 鍵值
          "status": "Scheduled"
        },
        {   
          // 賽事 2,棒球 box 格式為 list[str]
          // 因九局下可能不用打直接結束
          "home": {
            "box": ["1", "2", "3", "4", "5", "6", "7", "8", "X"]
          }
        },
    }
    

    補充說明

    1. 賽事僅會列出台灣運彩已開盤之比賽,若無開盤則也不會有狀態 Scheduled
    2. 有時資料不齊全,result 可能有以下情形
      • 單獨出現 score,無 box
      • 單獨出現 set,無 score
    3. 網球、排球判斷勝負的依據
      • 不讓分盤:依照勝盤分 set
      • 讓分盤:依照勝局數 score
      • 總分盤:依照勝局數 score
    4. 資料更新頻率約為每 10-20 分鐘
    5. 特殊賽事無場中比分,將於賽後 12 小時內更新完畢