跳轉到

隊伍近況 API

本文件介紹如何取得隊伍近期比賽結果,包含賽事日期、對戰組合、讓分值、得分。



如何使用

服務端點
GEThttps://api.sportsbot.tech/v2/records
參數內容
必填
sport
String
賽事類型,支援下列幾種聯盟
  • NBA:美國職籃
  • MLB:美國大聯盟
  • CPB:中華職棒
  • NPB:日本職棒
  • KBO:韓國職棒
  • FTB:足球
  • ICE:冰球
  • TNS:網球
  • VLB:排球
  • BSK:其他籃球
  • BSE:其他棒球
  • BAD:羽球
  • TBT:桌球
  • LOL:英雄聯盟
  • CST:絕對武力
  • 必填
    date
    String
    指定哪天以前的近況(不包含當天),限定格式YYYY-MM-DD
    如 2024-10-28,就會從 2024-10-27 往前搜尋 N 場賽事
    必填
    names
    List
    隊伍名稱,以列表傳入,最多可一次搜尋 20 筆
    名稱可參考即時比分或賠率記錄中回傳的任何中文隊伍名稱
    選填
    limit
    Integer
    場數,預設 6 場。【隊伍數量】與【場數】相乘,不得大於 200 筆

    程式範例

    Note

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

    import requests
    
    params = {'sport': 'NBA',       # 選擇賽事
              'date': 'YYYY-MM-DD', # 指定日期
              'names': ['洛杉磯湖人', '金州勇士'],   # 隊伍列表
              'limit': 6}           # 指定日期前幾場賽事
    headers = {'X-JBot-Token': 'YOUR_TOKEN'}    # 填寫密鑰
    
    url = 'https://api.sportsbot.tech/v2/records'
    res = requests.get(url, headers=headers, params=params)
    print(res.json())
    
    const axios = require('axios');
    
    async function run(){
        const params = {
            sport: 'NBA',       // 選擇賽事
            date: 'YYYY-MM-DD'  // 指定日期
            names: ['洛杉磯湖人', '金州勇士'],   // 隊伍列表
            limit: 6            // 指定日期前幾場賽事
        };
        const headers = {'X-JBot-Token': 'YOUR_TOKEN'}; // 填寫密鑰
        const url = 'https://api.sportsbot.tech/v2/records';
        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' => 'NBA',         # 選擇賽事
      'date' => 'YYYY-MM-DD',   # 指定日期
      'names' => ['洛杉磯湖人', '金州勇士'], # 隊伍列表
      'limit' => 6              # 指定日期前幾場賽事
    }
    url = URI('https://api.sportsbot.tech/v2/records')
    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, object>
            {
                {"sport", "NBA"},           // 選擇賽事
                {"date", "YYYY-MM-DD"},     // 指定日期
                {"names", new List<string>{"洛杉磯湖人", "金州勇士"}},   // 隊伍列表
                {"limit", 6}                // 指定日期前幾場賽事
            };
            var url = "https://api.sportsbot.tech/v2/records?" + 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, object> parameters)
        {
            var keyValuePairs = parameters.SelectMany(kv =>
            {
                if (kv.Value is IEnumerable<string> arr)
                {
                    return arr.Select(value => $"{Uri.EscapeDataString(kv.Key)}={Uri.EscapeDataString(value)}");
                }
                else
                {
                    return new[] {$"{Uri.EscapeDataString(kv.Key)}={Uri.EscapeDataString(kv.Value.ToString())}"};
                }
            });
            return string.Join("&", keyValuePairs);
        }
    }
    
    <?php
    $params = [
        'sport' => 'NBA',       // 選擇賽事
        'date' => 'YYYY-MM-DD', // 指定日期
        'names' => ['洛杉磯湖人', '金州勇士'], // 隊伍列表
        'limit' => 6            // 指定日期前幾場賽事
    ];
    $url = 'https://api.sportsbot.tech/v2/records?' . 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": {         // 回傳資料為 dict,包含每場的隊伍近況
        "洛杉磯湖人": [  // 隊伍名稱,以下是 list[dict]
          {
            "date": "2024-02-26",   // 比賽日期
            "away": "洛杉磯湖人",    // 客場
            "home": "鳳凰城太陽",    // 主場
            "away_score": 113,     // 客場分數
            "home_score": 123      // 主場分數
            "close_handi": -3.5,   // 賽前讓分值,若未開則為 None
            // away_set 網球、排球的盤分
            // home_set 網球、排球的盤分
          },
          {...},
          {...},
          {...},
          {...},
          {...}
        ],
        "金州勇士": [
          {...},
          {...},
          {...},
          {...},
          {...},
          {...}
        ]
      }
    }
    

    補充說明

    1. 因【隊伍數量】與【場數】相乘,不得大於 200 筆

      • 若len(names)=1,則limit上限 200
      • 若len(names)=10,則limit上限 20
    2. 如何判斷讓分盤勝負?

      • 若 away_score < (home_score+close_handi),則主場勝
      • 若 away_score > (home_score+close_handi),則客場勝
      • 若 close_handi > 0,主場為受讓方(+)、客場為讓方(-)
      • 若 close_handi < 0,主場為讓方(-)、客場為受讓方(+)
    3. 因應不同程式語言,我們可支援 Array Query Parameters 的三種格式

      • ?names=洛杉磯湖人&names=金州勇士
      • ?names[]=洛杉磯湖人&names[]=金州勇士
      • ?names[0]=洛杉磯湖人&names[1]=金州勇士