curl --request GET \
--url 'https://v5.oddspapi.io/en/fixtures/odds/main?apiKey='import requests
url = "https://v5.oddspapi.io/en/fixtures/odds/main?apiKey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://v5.oddspapi.io/en/fixtures/odds/main?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/odds/main?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/odds/main?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/odds/main?apiKey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://v5.oddspapi.io/en/fixtures/odds/main?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[
{
"fixtureId": "id1400003160574217",
"status": {
"live": false,
"statusId": 0,
"statusName": "Pre-Game"
},
"sport": {
"sportId": 14,
"sportName": "American Football"
},
"tournament": {
"tournamentId": 31,
"tournamentName": "NFL",
"categoryName": "USA"
},
"season": {
"seasonId": null,
"seasonName": null,
"seasonRound": null
},
"venue": {
"venueId": null,
"venueName": null,
"venueLocation": null
},
"startTime": 1766698200,
"trueStartTime": null,
"trueEndTime": null,
"participants": {
"participant1Id": 4423,
"participant1RotNr": null,
"participant1Name": "Minnesota Vikings",
"participant1ShortName": "Vikings",
"participant1Abbr": null,
"participant2Id": 4419,
"participant2RotNr": null,
"participant2Name": "Detroit Lions",
"participant2ShortName": "Lions",
"participant2Abbr": null
},
"scores": {},
"clock": {
"currentPeriod": null,
"currentTime": null,
"remainingTime": null,
"remainingTimeInPeriod": null,
"stopped": null
},
"expectedPeriods": 4,
"periodLength": 15,
"externalProviders": {
"betgeniusId": null,
"betradarId": 67432516,
"flashscoreId": "hzkPCh9e",
"mollybetId": "2026-01-10,21618,79446",
"oddinId": null,
"opticoddsId": "2026011039A14E46",
"pinnacleId": 1621898317,
"sofascoreId": null,
"lsportsId": null,
"txoddsId": null
},
"odds": {},
"bookmakers": {
"stake": {
"bookmaker": "stake",
"bookmakerFixtureId": "46173997-xx-yy",
"fixturePath": null,
"hasOdds": false,
"staleOdds": false,
"staleOddsResponseCode": null,
"suspended": false,
"participantsRotated": false,
"meta": null,
"updatedAt": "2026-01-05T05:16:44.746812+00:00"
}
}
}
]Fixtures Odds Main
Get current main odds for multiple fixtures.
Lookup mode: provide exactly one of:
tournamentId(recommended)fixtureIds(fast path)
If since is provided, returns odds updates with changedAt >= since.
curl --request GET \
--url 'https://v5.oddspapi.io/en/fixtures/odds/main?apiKey='import requests
url = "https://v5.oddspapi.io/en/fixtures/odds/main?apiKey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://v5.oddspapi.io/en/fixtures/odds/main?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/odds/main?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/odds/main?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/odds/main?apiKey=")
.asString();require 'uri'
require 'net/http'
url = URI("https://v5.oddspapi.io/en/fixtures/odds/main?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[
{
"fixtureId": "id1400003160574217",
"status": {
"live": false,
"statusId": 0,
"statusName": "Pre-Game"
},
"sport": {
"sportId": 14,
"sportName": "American Football"
},
"tournament": {
"tournamentId": 31,
"tournamentName": "NFL",
"categoryName": "USA"
},
"season": {
"seasonId": null,
"seasonName": null,
"seasonRound": null
},
"venue": {
"venueId": null,
"venueName": null,
"venueLocation": null
},
"startTime": 1766698200,
"trueStartTime": null,
"trueEndTime": null,
"participants": {
"participant1Id": 4423,
"participant1RotNr": null,
"participant1Name": "Minnesota Vikings",
"participant1ShortName": "Vikings",
"participant1Abbr": null,
"participant2Id": 4419,
"participant2RotNr": null,
"participant2Name": "Detroit Lions",
"participant2ShortName": "Lions",
"participant2Abbr": null
},
"scores": {},
"clock": {
"currentPeriod": null,
"currentTime": null,
"remainingTime": null,
"remainingTimeInPeriod": null,
"stopped": null
},
"expectedPeriods": 4,
"periodLength": 15,
"externalProviders": {
"betgeniusId": null,
"betradarId": 67432516,
"flashscoreId": "hzkPCh9e",
"mollybetId": "2026-01-10,21618,79446",
"oddinId": null,
"opticoddsId": "2026011039A14E46",
"pinnacleId": 1621898317,
"sofascoreId": null,
"lsportsId": null,
"txoddsId": null
},
"odds": {},
"bookmakers": {
"stake": {
"bookmaker": "stake",
"bookmakerFixtureId": "46173997-xx-yy",
"fixturePath": null,
"hasOdds": false,
"staleOdds": false,
"staleOddsResponseCode": null,
"suspended": false,
"participantsRotated": false,
"meta": null,
"updatedAt": "2026-01-05T05:16:44.746812+00:00"
}
}
}
]Authorizations
Your API key (query-based auth for v5).
Query Parameters
Single tournamentId. Required if fixtureIds is not provided.
Comma/space-separated fixtureIds (fast path). Required if tournamentId is not provided.
Comma/space-separated bookmaker slugs (default: all).
changedAt >= since (ms). If provided, returns also inactive odds.
Response
Returns an array of fixtures (fixture meta + odds + bookmaker meta).
Fixture identifier: {prefix}{sportId}{tournamentId}{nativeId} — see Core Concepts → ID structure.
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, …).
Show child attributes
Show child attributes
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. Contains only bookmakers that currently offer valid realtime odds for this fixture. Present on fixture and odds endpoints; omitted on CLV, historical-odds and settlement responses.
Show child attributes
Show child attributes