Odds Comparison (API v4)
All requests must be authenticated by sending the API key in the apiKey
query parameter. Please contact your account
manager to receive your personal API key.
We are strongly recommend to use gzip or deflate compression for all requests. It will reduce traffic usage and response
time. To enable compression, add Accept-Encoding: gzip, deflate
header to your requests. Before adding this header,
make sure your HTTP client supports compression.
-
Live:
https://api-lv.oddsmarket.org
-
Prematch:
https://api-pr.oddsmarket.org
https://api-lv.oddsmarket.org/v4/odds_comparison/countries?apiKey=YOUR_API_KEY
https://api-pr.oddsmarket.org/v4/odds_comparison/sports?apiKey=YOUR_API_KEY
Can be used to build a list of countries. It is recommended to cache this data on your side.
GET /v4/odds_comparison/countries
[
{
"id": 2,
"name": "Italy",
"code": "it",
"slug": "italy"
},
{
"id": 3,
"name": "Brazil",
"code": "br",
"slug": "brazil"
}
]
Can be used to get country names by IDs. It is recommended to cache this data on your side.
GET /v4/odds_comparison/countries/{ids}
Parameter | Description | Type | Required |
---|---|---|---|
ids | List of Country IDs | SMALLINT[] | Yes |
[
{
"id": 2,
"name": "Italy",
"code": "it",
"slug": "italy"
}
]
Can be used to build a list of leagues. By default, only leagues with active events are returned.
GET /v4/odds_comparison/leagues?countryId=3&sportId=7
Parameter | Description | Type | Required | Default |
---|---|---|---|---|
countryId | Country ID | SMALLINT | *No | |
sportId | Sport ID | SMALLINT | *No | |
onlyActive | Filter leagues by active events | BOOLEAN | *No | true |
* at least one of these parameters is required.
[
{
"id": 3945,
"sportId": 7,
"name": "Brazil. Cup"
}
]
Can be used to get league names by IDs. It is recommended to cache this data on your side.
GET /v4/odds_comparison/leagues/{ids}
Parameter | Description | Type | Required |
---|---|---|---|
ids | List of League IDs | INT[] | Yes |
[
{
"id": 3945,
"sportId": 7,
"name": "Brazil. Cup"
}
]
Can be used to build a list of sports. It is recommended to cache this data on your side.
GET /v4/odds_comparison/sports
[
{
"id": 2,
"name": "Basketball",
"slug": "basketball"
},
{
"id": 7,
"name": "Soccer",
"slug": "soccer"
},
{
"id": 10,
"name": "American Football",
"slug": "american-football"
}
]
Can be used to get sport names by IDs. It is recommended to cache this data on your side.
GET /v4/odds_comparison/sports/{ids}
Parameter | Description | Type | Required |
---|---|---|---|
ids | List of Sport IDs | SMALLINT[] | Yes |
[
{
"id": 2,
"name": "Basketball",
"slug": "basketball"
}
]
Returns a list of bookmakers and bookmaker clones. Can be used to determine bookmaker IDs for other endpoints.
GET /v4/odds_comparison/bookmakers
Parameter | Description | Type | Required | Default |
---|---|---|---|---|
includeBookmakerClones | Include bookmaker clones | BOOLEAN | No | true |
[
{
"id": 1,
"name": "Bookmaker 1",
"url": "https://bookmaker1.example/"
},
{
"id": 2,
"name": "Bookmaker 2",
"url": "https://bookmaker2.example/"
},
{
"id": -1,
"name": "Bookmaker 3",
"url": "https://bookmaker3.example/"
}
]
Note: id
can be negative for bookmaker clones.
Can be used to get bookmaker names by IDs. It is recommended to cache this data on your side.
GET /v4/odds_comparison/bookmakers/{ids}
Parameter | Description | Type | Required |
---|---|---|---|
ids | List of Bookmaker IDs | SMALLINT[] | Yes |
[
{
"id": 1,
"name": "Bookmaker 1",
"url": "https://bookmaker1.example/"
}
]
Returns the number of events for specified bookmakers, markets and periods. Can be used to filter countries, leagues and sports by the number of events.
GET /v4/odds_comparison/events/count?countryIds=2,3&leagueIds=5302,3946,3945,5271&sportIds=2,7&bookmakerIds=200,255
Parameter | Description | Type | Required |
---|---|---|---|
leagueIds | List of League IDs | INT[] | *No |
sportIds | List of Sport IDs | SMALLINT[] | *No |
countryIds | List of Country IDs | SMALLINT[] | *No |
bookmakerIds | List of Bookmaker IDs to count events | SMALLINT[] | Yes |
marketIds | List of Market IDs to count events | SMALLINT[] | No |
periodIdentifiers | List of Period identifiers to count events | SMALLINT[] | No |
* at least one of these parameters is required.
{
"total": 10,
"leagues": {
"5302": 7,
"3946": 2,
"3945": 1,
"5271": 0
},
"sports": {
"2": 2,
"7": 8
}
}
The main endpoint to get events and odds. Can be used to build a list of events and odds for specified bookmakers, markets and periods.
GET /v4/odds_comparison/events?leagueIds=4780&bookmakerIds=200,255&marketIds=1&periodIdentifiers=0
Parameter | Description | Type | Required |
---|---|---|---|
eventIds | List of Event IDs (countryIds, leagueIds, sportIds will be ignored) | BIGINT[] | *No |
leagueIds | List of League IDs | INT[] | *No |
sportIds | List of Sport IDs | SMALLINT[] | *No |
countryIds | List of Country IDs | SMALLINT[] | *No |
startedFrom | Filter by start datetime (event must be started after this timestamp) | BIGINT (milliseconds since epoch) | No |
startedTo | Filter by start datetime (event must be started before this timestamp) | BIGINT (milliseconds since epoch) | No |
nameContains | Filter by name | VARCHAR | No |
bookmakerIds | List of Bookmaker IDs to filter events by availability for one of specific Bookmaker IDs | SMALLINT[] | Yes |
marketIds | List of Market IDs to fetch outcomes in specified markets | SMALLINT[] | No |
periodIdentifiers | List of Period identifiers to fetch outcomes for specified periods | SMALLINT[] | No |
includeLiveStatus | Include live status (isLive field) in response (prematch only) |
BOOLEAN | No |
* at least one of these parameters is required.
[
{
"id": 55195165,
"name": "Montana - Marek Dupnitsa",
"score": "0:0 (0:0)",
"leagueId": 4304,
"leagueName": "Bulgaria. B PFG",
"sportId": 7,
"sportName": "Soccer",
"homeId": 1841,
"homeName": "Montana",
"awayId": 102631,
"awayName": "Marek Dupnitsa",
"startedAt": 1701705600000,
"isLive": true,
"bookmakers": [
{
"id": 1,
"rawId": "1582979022",
"directLink": "1582979022"
}
],
"markets": [
{
"marketId": 1,
"marketTitle": "1X2",
"outcomes": [
{
"marketAndBetTypeId": 12,
"betTypeTitle": "X",
"marketAndBetTypeParam": 0.0,
"periodIdentifier": 0,
"periodName": "match",
"playerId1": 0,
"playerId2": 0,
"values": [
{
"bookmakerId": 1,
"odds": 2.28,
"oddsLay": 1.96
},
{
"bookmakerId": 2,
"odds": 2.6
},
{
"bookmakerId": -65,
"odds": 2.28
}
]
}
]
}
]
}
]
Field | Description | Type |
---|---|---|
root | List of events | Event[] |
Field | Description | Type | Optional |
---|---|---|---|
id | Event ID | BIGINT | false |
name | Event name | VARCHAR | false |
score | Current score | VARCHAR | true |
leagueId | League ID | INT | false |
leagueName | League name | VARCHAR | false |
sportId | Sport ID | SMALLINT | false |
sportName | Sport name | VARCHAR | false |
homeId | Home team ID | INT | false |
homeName | Home team name | VARCHAR | false |
awayId | Away team ID | INT | false |
awayName | Away team name | VARCHAR | false |
startedAt | Start date | BIGINT (milliseconds since epoch) | false |
isLive | Indicates the status of live event (prematch only). Available when includeLiveStatus set to true. May be absent if live event has not yet beet created. |
BOOLEAN | true |
bookmakers | List of bookmakers with raw IDs and direct links | EventBookmaker[] | false |
markets | List of available markets | EventMarket[] | false |
Field | Description | Type | Optional |
---|---|---|---|
id | Bookmaker ID | SMALLINT | false |
rawId | Event ID from bookmaker | VARCHAR | true |
directLink | Direct link | VARCHAR | true |
Field | Description | Type | Optional |
---|---|---|---|
marketId | Market ID | SMALLINT | false |
marketTitle | Market title | VARCHAR | false |
outcomes | Event outcomes container | EventOutcome[] | false |
Field | Description | Type | Optional |
---|---|---|---|
marketAndBetTypeId | Market and bet type ID | SMALLINT | false |
betTypeTitle | Bet type title | VARCHAR | false |
marketAndBetTypeParam | Market and bet type parameter (nominal) | FLOAT | false |
periodIdentifier | Period identifier | SMALLINT | false |
periodName | Period name | VARCHAR | false |
playerId1 | Player ID 1 | INT | true |
playerName1 | Player name 1 | VARCHAR | true |
playerId2 | Player ID 2 | INT | true |
playerName2 | Player name 2 | VARCHAR | true |
DEPRECATED. List of odds by bookmakers | Map from bookmaker ID (SMALLINT) to odds (FLOAT) | false | |
DEPRECATED. List of lay odds (price) value of the reverse outcome in decimal format. Valid only for betting exchanges. | Map from bookmaker ID (SMALLINT) to lay odds (FLOAT) | true | |
values | List of EventOutcomeValue | EventOutcomeValue[] | false |
Field | Description | Type | Optional |
---|---|---|---|
bookmakerId | Bookmaker ID | SMALLINT | false |
odds | Bookmaker odds | FLOAT | false |
oddsLay | Bookmaker lay odds (price) value of the reverse outcome in decimal format. Valid only for betting exchanges. | FLOAT | true |
Betting exchanges
have back price and lay price
on each outcome. odds
field contains back prices, oddsLay
contains lay prices.
To calculate reverse price, you need to use the following formula:
{back price} = 1 / (1 - 1 / {lay price})
Returns a list of available markets (without odds) for specified event ID. Can be used to build a list of markets.
GET /v4/odds_comparison/events/{eventId}/markets?bookmakerIds=200,255
Parameter | Description | Type | Required |
---|---|---|---|
eventId | Event ID | BIGINT | Yes |
bookmakerIds | List of Bookmaker IDs to filter markets | SMALLINT[] | Yes |
periodIdentifiers | List of Period identifiers to filter markets | SMALLINT[] | No |
[
{
"marketId": 1,
"marketTitle": "1X2",
"outcomes": [
{
"marketAndBetTypeId": 12,
"betTypeTitle": "X",
"marketAndBetTypeParam": 0.0,
"periodIdentifier": 0,
"periodName": "match",
"playerId1": 0,
"playerId2": 0
}
]
}
]
Similar to markets in Events response, but without bookmakers
field.
Field | Description | Type |
---|---|---|
root | List of markets | Market[] |
Field | Description | Type | Optional |
---|---|---|---|
marketId | Market ID | SMALLINT | false |
marketTitle | Market title | VARCHAR | false |
outcomes | Market outcomes container | MarketOutcome[] | false |
Field | Description | Type | Optional |
---|---|---|---|
marketAndBetTypeId | Market and bet type ID | SMALLINT | false |
betTypeTitle | Bet type title | VARCHAR | false |
marketAndBetTypeParam | Market and bet type parameter (nominal) | FLOAT | false |
periodIdentifier | Period identifier | SMALLINT | false |
periodName | Period name | VARCHAR | false |
playerId1 | Player ID 1 | INT | true |
playerName1 | Player name 1 | VARCHAR | true |
playerId2 | Player ID 2 | INT | true |
playerName2 | Player name 2 | VARCHAR | true |
This section describes API v4.
If you are using API v3 go to API v3 documentation root page.