Odds
Retrieve match odds.
- Prematch refresh
- Multiple times a day
- Live refresh
- Once every 10 minutes
- Plan
- Not available on Basic/Free
- Pagination
- limit and offset
Querying
At least one primary query parameter must be specified. timezone,
limit, offset and oddsType are secondary and do
not count on their own. Set oddsType to prematch or
live. Without it, prematch odds are returned.
The most common approach is matchId, which returns every market for one
fixture. Alternatively use date with timezone to fetch all
odds for a given day. League filters (leagueId, leagueName)
and bookmaker filters (bookmakerId, bookmakerName) narrow it
further, and bookmaker ids come from
bookmakers.
Supported markets
| Market | Outcomes |
|---|---|
| Full Time Result | Home or Away. |
| Over/Under |
Complex. Variants such as "Over/Under 376.5" or "Over/Under
378.5". Each resolves to Over or Under.
|
| Odd or Even | Whether the score of both teams is Odd or Even. |
Over/Under is a complex market. It is split into multiple variants, each with its own threshold, so expect more than one Over/Under variant per match.
How odds are grouped
Results are grouped by match. Each match then holds a list of priced markets, and every entry names the bookmaker, says whether it is prematch or live, names the market, and carries its selections.
A selection is a label and a price, so the Full Time Result market arrives as two of
them, Home and Away.
The same market appears once per bookmaker, which is what lets you compare prices. If you only display one bookmaker, filter by its id when you request rather than after, since the unfiltered response multiplies every market by the number of bookmakers covering that match.
Parameters
| Parameter | Type | Description |
|---|---|---|
oddsTypeoptional |
string |
Defines whether live or prematch odds will be returned.e.g. prematch
|
leagueNameoptional
|
string | No description in the spec. |
leagueIdoptional |
number | No description in the spec. |
timezoneoptional |
stringdefault Etc/UTC
|
Valid timezone identifier.e.g. Europe/London
|
bookmakerIdoptional
|
number |
No description in the spec.e.g. 3
|
limitoptional |
numberdefault 5
|
No description in the spec.e.g. 5
|
offsetoptional |
numberdefault 0
|
No description in the spec.e.g. 0
|
matchIdoptional |
number | No description in the spec. |
bookmakerNameoptional
|
string |
No description in the spec.e.g. 22Bet
|
dateoptional |
string | Date that follows the YYYY-MM-DD format. |
Request
curl --request GET \
--url 'https://cricket.highlightly.net/odds?oddsType=prematch&bookmakerId=3' \
--header 'x-rapidapi-key: YOUR_API_KEY'
const params = new URLSearchParams({
oddsType: 'prematch',
bookmakerId: '3'
})
const response = await fetch(`https://cricket.highlightly.net/odds?${params}`, {
headers: {
'x-rapidapi-key': process.env.HIGHLIGHTLY_API_KEY
}
})
if (!response.ok) {
throw new Error(`Highlightly responded ${response.status}`)
}
const data = await response.json()
import os
import requests
response = requests.get(
'https://cricket.highlightly.net/odds',
params={
'oddsType': 'prematch',
'bookmakerId': '3',
},
headers={
'x-rapidapi-key': os.environ['HIGHLIGHTLY_API_KEY'],
},
timeout=10,
)
response.raise_for_status()
data = response.json()
Response
dataCricketOddsResponse[]required9 fields
matchIdstringrequired
oddsCricketMarketResponse[]required7 fields
bookmakerIdnumberrequired
bookmakerNamestring
typestringrequired
marketstringrequired
valuesCricketMarketSelectionResponse[]required2 fields
oddnumberrequired
valuestringrequired
paginationPaginationResponserequired3 fields
totalCountnumberrequiredAvailable number of items, relevant to the provided query.
offsetnumberrequired
limitnumberrequired
planPlanResponserequired2 fields
tierstringrequiredYour current API subscription tier.
messagestringrequiredExplanation message regarding your current tier.
Example response
{
"data": [
{
"matchId": "49774517",
"odds": [
{
"bookmakerId": 3,
"bookmakerName": "22Bet",
"type": "prematch",
"market": "Odd or Even",
"values": [
{
"odd": 1.69,
"value": "Odd"
}
]
}
]
}
],
"pagination": {
"totalCount": 490,
"offset": 20,
"limit": 100
},
"plan": {
"tier": "BASIC",
"message": "Some results might be hidden with FREE tier. Check your API coverage for more information: https://rapidapi.com/highlightly-api-highlightly-api-default/api/sport-highlights-api/details"
}
}
Values are the examples declared in the OpenAPI spec, not a captured live response.
Errors
| Status | Description |
|---|---|
400 |
Bad request descriptive error. |
500 |
Internal server error. |