curl --request GET \
--url 'https://v5.oddspapi.io/en/fixtures/live?apiKey='import requests
url = "https://v5.oddspapi.io/en/fixtures/live?apiKey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://v5.oddspapi.io/en/fixtures/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/fixtures/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/fixtures/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/fixtures/live?apiKey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://v5.oddspapi.io/en/fixtures/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_bodyFixtures Live
List live fixtures.
Lookup mode: optional filters (bookmakers, sportId, tournamentId).
curl --request GET \
--url 'https://v5.oddspapi.io/en/fixtures/live?apiKey='import requests
url = "https://v5.oddspapi.io/en/fixtures/live?apiKey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://v5.oddspapi.io/en/fixtures/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/fixtures/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/fixtures/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/fixtures/live?apiKey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://v5.oddspapi.io/en/fixtures/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_bodyAuthorizations
Your API key as the apiKey query parameter.
Query Parameters
Single sport ID.
Single tournament ID.
Comma/space-separated bookmaker slugs.
Response
Returns Fixture[] (live only)
Fixture identifier: {prefix}{sportId}{tournamentId}{nativeId} — see Core Concepts → ID structure.
The fixture that replaced this one, when a cancelled fixture has been re-listed under a new id. null is the normal value: it is only ever populated on a cancelled fixture (status.statusId 3) whose replacement already exists in the feed, so permanent cancellations stay null, and a fixture can go from null to an id after you first saw it cancelled. One hop: if the replacement was itself cancelled, follow its own reissuedFixtureId.
The inverse of reissuedFixtureId: the cancelled fixture this one replaced. Unlike the forward pointer this sits on a normal scheduled or live fixture, so a fixture carries its own history even if you never saw the cancelled one. null is the normal value. One hop and one predecessor at most — follow it repeatedly to walk back to the start of a chain, where a fixture postponed twice gives A → B → C and B carries both previousFixtureId: A and reissuedFixtureId: C. Cleared again if a postponement is reverted.
Lifecycle status of the fixture.
Show child attributes
Show child attributes
Sport reference.
Show child attributes
Show child attributes
Tournament reference.
Show child attributes
Show child attributes
Season reference, when resolved.
Show child attributes
Show child attributes
Venue reference, when known.
Show child attributes
Show child attributes
Epoch seconds (UTC).
Both participants with names, rotation numbers and abbreviations.
Show child attributes
Show child attributes
Score rows keyed by period (result, p1, …).
Show child attributes
Show child attributes
Live match clock, while in play.
Show child attributes
Show child attributes
Native identifiers of this fixture at external providers (betradar, pinnacle, …).
Actual start time (ISO 8601), once known — may differ from the scheduled startTime.
Actual end time (ISO 8601), once known.
Number of regular periods expected for this fixture — use it (with periodLength) to interpret period keys per sport/league.
Length of a regular period in minutes.
Per-bookmaker availability and freshness metadata. Only populated when the bookmakers query parameter is present on the request — otherwise {}. Contains only bookmakers that currently offer valid realtime odds for this fixture. Present on odds endpoints; omitted on CLV, historical-odds and settlement responses.
Show child attributes
Show child attributes