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, 5 per page
Prematch or live
oddsType selects between prematch and
live odds. Omit it and you get prematch.
The two refresh at different rates. Prematch odds refresh multiple times a day and live odds once every 10 minutes.
Querying
At least one primary query parameter must be specified. timezone,
limit, offset and oddsType are secondary and do
not count on their own.
The most popular approach is matchId, which returns the odds for one match.
Alternatively use date with timezone to fetch all odds for a
given day. League and bookmaker filters narrow it further, and bookmaker ids come from
bookmakers.
Supported markets
| Market | Outcomes |
|---|---|
| 3-Way Moneyline | Home, Draw or Away. |
| Moneyline |
Home or Away. Offered where a match has no three way
line, and there is no way for the game to end in a draw.
|
| Total Points |
Complex. Variants such as "Total Points 204.5" or "Total Points
209.5". Each resolves to Over or Under.
|
| Odd or Even | Whether the score of both teams is Odd or Even. |
| Spread |
Complex. Variants such as "Spread -28.5/+28.5" or "Spread
-21.25/+21.25". Each resolves to Home or Away.
|
A complex market is split into variants, and each variant carries its
own label in market, such as Total Points 161.5. Read the
variant label rather than assuming one entry per market.
How odds are grouped
Each result carries a matchId and an odds list. Every entry in
odds has a bookmakerId, a bookmakerName when
present, a type of prematch or live, the market and its
values.
Each value is a selection with a value label such as Home and
its odd price.
If you only display one bookmaker, filter by bookmakerId or
bookmakerName when you request rather than after.
Parameters
| Parameter | Type | Description |
|---|---|---|
oddsTypeoptional |
string |
Defines whether live or prematch odds will be returned.e.g. prematch
|
leagueIdoptional |
number | No description in the spec. |
leagueNameoptional
|
string | 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. 75
|
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. Powbet
|
dateoptional |
string | Date that follows the YYYY-MM-DD format. |
Request
curl --request GET \
--url 'https://basketball.highlightly.net/odds?oddsType=prematch&bookmakerId=75' \
--header 'x-rapidapi-key: YOUR_API_KEY'
const params = new URLSearchParams({
oddsType: 'prematch',
bookmakerId: '75'
})
const response = await fetch(`https://basketball.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://basketball.highlightly.net/odds',
params={
'oddsType': 'prematch',
'bookmakerId': '75',
},
headers={
'x-rapidapi-key': os.environ['HIGHLIGHTLY_API_KEY'],
},
timeout=10,
)
response.raise_for_status()
data = response.json()
Response
dataBasketballOddsResponse[]required9 fields
matchIdnumberrequired
oddsBasketballMarketResponse[]required7 fields
bookmakerIdnumberrequired
bookmakerNamestring
typestringrequired
marketstringrequired
valuesBasketballMarketSelectionResponse[]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": 298649022,
"odds": [
{
"bookmakerId": 75,
"bookmakerName": "Powbet",
"type": "prematch",
"market": "Total Points 161.5",
"values": [
{
"odd": 1.75,
"value": "Over"
}
]
}
]
}
],
"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. |