API Documentation
GetFixtures
The endpoint {fixtures} allows you to retrieve active fixtures in one sport from one country. Active fixtures are all fixtures in a state before and up to 2 hours after their cut-off date. Mandatory input parameters are the Sport ID and the Country. The fixtures are returned together with their markets, options, and prices. The refresh interval for this endpoint is 2 seconds.
Betting Insights (optional enrichment)
Betting Insights are not a standalone endpoint. They are an optional enrichment of this fixtures response, requested with the isBettingInsightsEnabled query parameter. When enabled and supported, each eligible fixture is enriched with a bettingInsights object describing the distribution of bets across market options.
Eligibility — Even with isBettingInsightsEnabled=true, a fixture is enriched only when all of the following server-side conditions are met (configured via BettingInsightsConfig):
- The requesting Login Domain ID is in SupportedLoginDomainIds.
- The fixture's trading partition (version) is in SupportedTradingPartitionIds (pre-match only).
- The fixture's sport + competition pair is listed in SupportedSportCompetitionIds.
- The fixture is not in-play.
Insights are computed only for main markets, and only for markets that have more than one option and whose total bet weight exceeds the configured MinimumBetThreshold. Results are cached in memory per sportId-fixtureId for CacheDurationMinutes.
Example (enriched fixture excerpt)
{
"bettingInsights": {
"marketOptions": [
{
"marketId": "123456",
"options": [
{ "optionId": "1", "percentageBets": 0.72 },
{ "optionId": "2", "percentageBets": 0.28 }
]
}
]
}
}
Behavior notes — The upstream Bestseller API is queried per fixture with the fixture's sport, competition, and main-market IDs; the raw option weights are aggregated into percentageBets. Markets with a single option, or whose combined weight does not exceed MinimumBetThreshold, are excluded. If the Bestseller API returns no data (or is unreachable), the fixture is returned without a bettingInsights object rather than failing the request.
Configuration reference (BettingInsightsConfig)
| Setting | Type | Default | Description |
|---|---|---|---|
| SupportedLoginDomainIds | int[] | Login domains allowed to receive insights. | |
| SupportedTradingPartitionIds | int[] | Trading partitions (versions) eligible for insights; pre-match only. | |
| SupportedSportCompetitionIds | map<int,int[]> | Allowed competition IDs per sport ID. | |
| BestsellerApiBaseUrl | string | Base URL of the upstream Bestseller service. | |
| MaxBestsellerOptions | int | 50 | Max option items requested from Bestseller per call. |
| MinimumBetThreshold | int | 0 | Minimum total market weight required for a market to be included. |
| CacheDurationMinutes | int | 10 | In-memory cache lifetime per sportId-fixtureId. |
| CountryIdOverride | int? | Optional country segment for the Bestseller URL. | |
| EnableLogging | bool | false | Enables verbose insight-flow logging. |
Request
GET /offer/api/{sportId}/{country}/fixtures[?language&competitionIds&fixtureIds&isInPlay&onlyMainMarkets&since&marketsFilterCriteria&isBettingInsightsEnabled]
Parameters
| Name | Type | Default | Notes |
|---|---|---|---|
| *sportId | The unique ID of the sport. Mandatory. |
||
| *country | The country's Alpha-2 code, as defined in ISO 3166. Mandatory. See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes for details. |
||
| language | en | The Language Code as defined in the list of supported language codes. If not specified, "en" is assumed. |
|
| competitionIds | A list of Competition IDs. Make sure that the competitions are defined for the specified sport. |
||
| fixtureIds | A list of unique IDs of fixtures. Optional. Limits the response to the fixtures with the given IDs. |
||
| isInPlay | A filter for including only fixtures in pre-match ({false}) or in-play ({true}) state. If not specified, both are included. |
||
| onlyMainMarkets | True | A filter to include only markets previously defined as main markets, including the balanced line markets. |
|
| since | A timestamp in UTC time. Data is retrieved from this point up to now. Format: {yyyyMMddHHmmss}. |
||
| marketsFilterCriteria | Use this filter to return markets based on input, If pass Visible then It will return only visible markets |
||
| isBettingInsightsEnabled | False | When {true}, eligible fixtures in the response are enriched with a bettingInsights object describing the distribution of bets across market options. When {false} (default), no insights are added. A fixture is enriched only when it meets the server-side eligibility rules (supported login domain, supported trading partition (pre-match only), supported sport/competition, and not in-play), and insights are computed only for main markets with more than one option. |
Responses
| Status Code | Type | Description | Samples |
|---|---|---|---|
| 200 |
|
Success |
GetFixtureIndex
The endpoint {fixtureIndex} allows you to retrieve an overview of the active fixtures in one sport from one country. "Active" fixtures are all fixtures in a state before and up to 2 hours after their cut-off date. Mandatory input parameters are the Sport ID and the Country Code. The fixtures are returned without markets, options, and prices. The refresh interval for this endpoint is 2 seconds.
Request
GET /offer/api/{sportId}/{country}/fixtureIndex[?language&competitionIds&fixtureIds&isInPlay&since]
Parameters
| Name | Type | Default | Notes |
|---|---|---|---|
| *sportId | The unique ID of the sport. Mandatory. |
||
| *country | The country's Alpha-2 code, as defined in ISO 3166. Mandatory. See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes for details. |
||
| language | en | The Language Code as defined in the list of supported language codes. If not specified, "en" is assumed. |
|
| competitionIds | A list of Competition IDs. Make sure that the competitions are defined for the specified sport. |
||
| fixtureIds | A list of unique IDs of fixtures. Optional. Limits the response to the fixtures with the given IDs. |
||
| isInPlay | A filter for including only fixtures in pre-match ({false}) or in-play ({true}) state. If not specified, both are included. |
||
| since | A timestamp in UTC time. Data is retrieved from this point up to now. Format: {yyyyMMddHHmmss}. |
Responses
| Status Code | Type | Description | Samples |
|---|---|---|---|
| 200 |
|
Success |
GetCompetitions
The endpoint {competitions} allows you to retrieve the available competitions in one sport from one country. Mandatory input parameters are the Sport ID and the Country Code. The refresh interval for this endpoint is 1 second.
Request
GET /offer/api/{sportId}/{country}/competitions[?participants&language]
Parameters
| Name | Type | Default | Notes |
|---|---|---|---|
| *sportId | The unique ID of the sport. Mandatory. |
||
| *country | The country's Alpha-2 code, as defined in ISO 3166. Mandatory. |
||
| participants | A filter for including the list of participants (teams/players) in the competition ({true}) or not ({false}). Optional. If not specified, the list is not included. |
||
| language | en | The Language Code as defined in the list of supported language codes. If not specified, "en" is assumed. |
Responses
| Status Code | Type | Description | Samples |
|---|---|---|---|
| 200 |
|
Success |
GetSports
The endpoint {sports} allows you to retrieve available sports in one country. Mandatory input parameter is the Country Code. The refresh interval for this endpoint is 1 second.
Request
GET /offer/api/{country}/sports[?language]
Parameters
| Name | Type | Default | Notes |
|---|---|---|---|
| *country | The country's Alpha-2 code, as defined in ISO 3166. |
||
| language | en | The Language Code as defined in the list of supported language codes. If not specified, "en" is assumed. |
Responses
| Status Code | Type | Description | Samples |
|---|---|---|---|
| 200 |
|
Success |
GetSupportedLanguageCodes
The endpoint {languageCodes} allows you to retrieve the complete list of supported language codes.
Request
GET /offer/api/languageCodes
Responses
| Status Code | Type | Description | Samples |
|---|---|---|---|
| 200 | array | Success |
GetScoreboards
The endpoint {scoreboards} allows you to retrieve the basic scoreboard information for fixtures: the current state of a fixture, the period the event is in and the current score (if applicable for this type of fixture), and the elapsed minutes and seconds. Mandatory input parameters are the Sport ID, and the Country. The refresh interval for this endpoint is 2 seconds.
Request
GET /offer/api/{sportId}/{country}/scoreboards[?competitionIds&fixtureIds&since]
Parameters
| Name | Type | Default | Notes |
|---|---|---|---|
| *sportId | The unique ID of the sport. Mandatory. |
||
| *country | The country's Alpha-2 code, as defined in ISO 3166. Mandatory. See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes for details. |
||
| competitionIds | A list of Competition IDs. Make sure that the competitions are defined for the specified sport. |
||
| fixtureIds | A list of unique IDs of fixtures. Optional. Limits the response to the fixtures with the given IDs. |
||
| since | A timestamp in UTC time. Data is retrieved from this point up to now. Format: {yyyyMMddHHmmss}. |
Responses
| Status Code | Type | Description | Samples |
|---|---|---|---|
| 200 |
|
Success |
GetPreCreatedBuildBets
The endpoint {preCreatedBuildBets} retrieves all pre-created BuildBet (Same Game Parlay) markets available across all sports. Returns pre-created BuildBet markets, optionally filtered by fixture, minimum number of legs, and BuildBet-tab visibility. The response is wrapped in the standard result envelope and includes a next link (in the envelope links) for continuation.
Note: Pre-created BuildBets are served only when the feature is enabled on the server (EnableSGPBetBuilderMarkets). When disabled, the endpoint returns an empty result set.
Examples
GET /offer/api/preCreatedBuildBets?totalLegs=3&visibleOnBetBuilderTabEnabled=true
GET /offer/api/preCreatedBuildBets?fixtureIds={fixtureId}&totalLegs=2
Behavior notes
Data is read from the server-side BuildBet index (Redis) and filtered in this order:
- Match against the requested fixtureIds (if any).
- Keep only legs matching visibleOnBetBuilderTabEnabled.
- Keep only markets whose remaining leg count is greater than or equal to totalLegs.
- Drop markets that have no legs left after filtering.
When caching is enabled, a cache header is applied using the PreCreatedBuildBets cache setting.
Request
GET /offer/api/preCreatedBuildBets[?totalLegs&fixtureIds&visibleOnBetBuilderTabEnabled]
Parameters
| Name | Type | Default | Notes |
|---|---|---|---|
| totalLegs | 0 | Returns only BuildBet markets whose number of available legs is greater than or equal to the provided value. |
|
| fixtureIds | A list of fixture IDs, provided in full (compound) format. When supplied, only BuildBets for the matching fixtures are returned. |
||
| visibleOnBetBuilderTabEnabled | True | Filters the legs included in a fixture by their BuildBet-tab visibility. When {true} (default), only legs flagged as visible on the BuildBet tab are returned; when {false}, only legs not flagged visible are returned. |
Responses
| Status Code | Type | Description | Samples |
|---|---|---|---|
| 200 |
|
Success |
Definitions
FixtureResultEnvelope
| Name | Type | Notes |
|---|---|---|
| items |
|
|
| count | integer (int32) | |
| links | object | |
| type |
|
Fixture
| Name | Type | Notes |
|---|---|---|
| markets |
|
|
| id |
|
|
| name |
|
|
| version |
|
|
| startDateUtc | string (date-time) | |
| cutOffDateUtc | string (date-time) | |
| isInPlay | boolean | |
| isDisplayed | boolean | |
| isOpenForBetting | boolean | |
| isPlannedInPlay | boolean | |
| state | string | |
| type | string | |
| fixtureGroupId | integer (int32) | |
| competition |
|
|
| region |
|
|
| participantType | string | |
| participants |
|
|
| bettingInsights |
|
Market
| Name | Type | Notes |
|---|---|---|
| id | integer (int64) | |
| name |
|
|
| marketType | string | |
| happening | string | |
| period | string | |
| subPeriod | string | |
| value | number (double) | |
| isDisplayed | boolean | |
| isOpenForBetting | boolean | |
| isBalancedLine | boolean | |
| options |
|
SignedTranslation
| Name | Type | Notes |
|---|---|---|
| text | string | |
| sign | string | |
| shortText | string | |
| shortTextSign | string |
Option
| Name | Type | Notes |
|---|---|---|
| id | integer (int64) | |
| name |
|
|
| price |
|
|
| isDisplayed | boolean | |
| isOpenForBetting | boolean |
Price
| Name | Type | Notes |
|---|---|---|
| fraction |
|
|
| odds | number (double) | |
| usOdds | number (double) |
Fraction
| Name | Type | Notes |
|---|---|---|
| numerator | integer (int32) | |
| denominator | integer (int32) |
CompoundIdentifier
| Name | Type | Notes |
|---|---|---|
| full | string | |
| entityId | integer (int64) |
ObjectVersion
Enum Values
12
Tag
| Name | Type | Notes |
|---|---|---|
| id | integer (int64) | |
| name |
|
Translation
| Name | Type | Notes |
|---|---|---|
| text | string | |
| shortText | string |
Participant
| Name | Type | Notes |
|---|---|---|
| id | integer (int64) | |
| name |
|
|
| participantTag | string |
BettingInsights
| Name | Type | Notes |
|---|---|---|
| marketOptions |
|
BettingInsightsMarketOption
| Name | Type | Notes |
|---|---|---|
| marketId | string | |
| options |
|
BettingInsightsOption
| Name | Type | Notes |
|---|---|---|
| optionId | string | |
| percentageBets | number (double) |
ResponseType
FixtureIndexResultEnvelope
| Name | Type | Notes |
|---|---|---|
| items |
|
|
| count | integer (int32) | |
| links | object | |
| type |
|
FixtureIndex
| Name | Type | Notes |
|---|---|---|
| id |
|
|
| name |
|
|
| version |
|
|
| startDateUtc | string (date-time) | |
| cutOffDateUtc | string (date-time) | |
| isInPlay | boolean | |
| isDisplayed | boolean | |
| isOpenForBetting | boolean | |
| isPlannedInPlay | boolean | |
| state | string | |
| type | string | |
| fixtureGroupId | integer (int32) | |
| competition |
|
|
| region |
|
|
| participantType | string | |
| participants |
|
CompetitionResultEnvelope
| Name | Type | Notes |
|---|---|---|
| items |
|
|
| count | integer (int32) | |
| links | object | |
| type |
|
Competition
| Name | Type | Notes |
|---|---|---|
| id | integer (int32) | |
| version |
|
|
| region |
|
|
| name |
|
|
| type | string | |
| competitionGroupId | integer (int32) |
SportResultEnvelope
| Name | Type | Notes |
|---|---|---|
| items |
|
|
| count | integer (int32) | |
| links | object | |
| type |
|
Sport
| Name | Type | Notes |
|---|---|---|
| id | integer (int64) | |
| name |
|
ScoreboardResultEnvelope
| Name | Type | Notes |
|---|---|---|
| items |
|
|
| count | integer (int32) | |
| links | object | |
| type |
|
Scoreboard
| Name | Type | Notes |
|---|---|---|
| id |
|
|
| version |
|
|
| period | string | |
| state | string | |
| score | string | |
| time |
|
|
| happenings |
|
ScoreboardTime
| Name | Type | Notes |
|---|---|---|
| minutes | integer (int32) | |
| seconds | integer (int32) | |
| isRunning | boolean |
Happening
| Name | Type | Notes |
|---|---|---|
| id | integer (int64) | |
| type | string | |
| value | string | |
| timer |
|
HappeningTimer
| Name | Type | Notes |
|---|---|---|
| minutes | integer (int32) | |
| seconds | integer (int32) |
BuildBetResultEnvelope
| Name | Type | Notes |
|---|---|---|
| items |
|
|
| count | integer (int32) | |
| links | object | |
| type |
|
BuildBet
| Name | Type | Notes |
|---|---|---|
| mainFixtureId | string | |
| legOptions |
|
LegOption
| Name | Type | Notes |
|---|---|---|
| visibleOnBetBuilderTabEnabled | boolean |