curl --request GET \
--url 'https://v5.oddspapi.io/zh/futures/live?apiKey='import requests
url = "https://v5.oddspapi.io/zh/futures/live?apiKey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://v5.oddspapi.io/zh/futures/live?apiKey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://v5.oddspapi.io/zh/futures/live?apiKey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://v5.oddspapi.io/zh/futures/live?apiKey="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://v5.oddspapi.io/zh/futures/live?apiKey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://v5.oddspapi.io/zh/futures/live?apiKey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"futureId": "pm6980037088158379224",
"reissuedFutureId": null,
"status": {
"live": true,
"statusId": 1,
"statusName": "Live"
},
"sport": {
"sportId": 69,
"sportName": "Politics"
},
"tournament": {
"tournamentId": 800370,
"tournamentName": "2025 Predictions",
"categoryName": "Politics"
},
"season": {
"seasonId": 8815837922,
"seasonName": "Macron out by...?"
},
"startTime": 1735932904,
"endTime": 1782820800,
"market": {
"marketId": 4,
"marketName": null,
"marketType": null
},
"participants": [],
"externalProviders": {
"betradarId": null,
"flashscoreId": null,
"opticoddsId": null,
"polymarketId": "16263",
"kalshiId": null,
"sofascoreId": null
},
"bookmakers": {}
}
]实时期货
列出实时期货。
查询模式:可选 sportId / tournamentId 过滤器。
curl --request GET \
--url 'https://v5.oddspapi.io/zh/futures/live?apiKey='import requests
url = "https://v5.oddspapi.io/zh/futures/live?apiKey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://v5.oddspapi.io/zh/futures/live?apiKey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://v5.oddspapi.io/zh/futures/live?apiKey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://v5.oddspapi.io/zh/futures/live?apiKey="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://v5.oddspapi.io/zh/futures/live?apiKey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://v5.oddspapi.io/zh/futures/live?apiKey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body[
{
"futureId": "pm6980037088158379224",
"reissuedFutureId": null,
"status": {
"live": true,
"statusId": 1,
"statusName": "Live"
},
"sport": {
"sportId": 69,
"sportName": "Politics"
},
"tournament": {
"tournamentId": 800370,
"tournamentName": "2025 Predictions",
"categoryName": "Politics"
},
"season": {
"seasonId": 8815837922,
"seasonName": "Macron out by...?"
},
"startTime": 1735932904,
"endTime": 1782820800,
"market": {
"marketId": 4,
"marketName": null,
"marketType": null
},
"participants": [],
"externalProviders": {
"betradarId": null,
"flashscoreId": null,
"opticoddsId": null,
"polymarketId": "16263",
"kalshiId": null,
"sofascoreId": null
},
"bookmakers": {}
}
]授权
作为 apiKey 查询参数传入的 API 密钥。
查询参数
按 sportId 过滤。
按 tournamentId 过滤。
逗号或空格分隔的博彩公司标识(默认:全部)。
响应
Returns FutureMeta[] (live only)
期货标识符:{prefix}{sportId}{seasonId}{futureMarketId} —— 参见核心概念 → 期货ID。锦标赛是期货上的一个字段,而非该 ID 的片段。
当一项被取消的期货以新的 id 重新上架时,这里是替代它的那项期货。null 才是常态:只有在期货已被取消(status.statusId 为 3)且替代期货确实已出现在数据流中时才会被填充,因此永久性取消会一直保持 null,而一项期货也可能在您首次看到它被取消之后才从 null 变为具体的 id。只指向一跳:若该替代期货本身也被取消,请继续跟随它自己的 reissuedFutureId。
期货的生命周期状态。
Show child attributes
Show child attributes
运动(或预测市场主题)引用。
Show child attributes
Show child attributes
锦标赛引用。
Show child attributes
Show child attributes
赛季引用。
Show child attributes
Show child attributes
Epoch seconds (UTC).
Epoch seconds (UTC).
期货盘口引用(如冠军盘口)。
Show child attributes
Show child attributes
List of participants (teams/players) competing in this futures market.
Show child attributes
Show child attributes
该期货在外部数据源(polymarket、kalshi 等)的原生标识符。
该期货按博彩公司划分的元数据。仅包含当前提供有效实时赔率的博彩公司(无则为空对象)。
Show child attributes
Show child attributes