curl --request GET \
--url 'https://v5.oddspapi.io/en/futures/live?apiKey='import requests
url = "https://v5.oddspapi.io/en/futures/live?apiKey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://v5.oddspapi.io/en/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/en/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/en/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/en/futures/live?apiKey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://v5.oddspapi.io/en/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",
"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": {}
}
]Futures Live
List live futures.
Lookup mode: optional sportId / tournamentId filters.
curl --request GET \
--url 'https://v5.oddspapi.io/en/futures/live?apiKey='import requests
url = "https://v5.oddspapi.io/en/futures/live?apiKey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://v5.oddspapi.io/en/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/en/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/en/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/en/futures/live?apiKey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://v5.oddspapi.io/en/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",
"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": {}
}
]Authorizations
Your API key (query-based auth for v5).
Query Parameters
Filter by sportId.
Filter by tournamentId.
Comma/space-separated bookmaker slugs (default: all).
Response
Returns FutureMeta[] (live only)
Future identifier: {prefix}{sportId}{tournamentId}{seasonId}{marketId} — see Core Concepts → ID structure.
Lifecycle status of the future.
Show child attributes
Show child attributes
Sport (or prediction-market topic) reference.
Show child attributes
Show child attributes
Tournament reference.
Show child attributes
Show child attributes
Season reference.
Show child attributes
Show child attributes
Epoch seconds (UTC).
Epoch seconds (UTC).
Future market reference (e.g. Winner).
Show child attributes
Show child attributes
List of participants (teams/players) competing in this futures market.
Show child attributes
Show child attributes
Native identifiers of this future at external providers (polymarket, kalshi, …).
Per-bookmaker metadata for this future. Contains only bookmakers that currently offer valid realtime odds (empty object when none do).
Show child attributes
Show child attributes