For the complete documentation index, see llms.txt. This page is also available as Markdown.

Bet Builders

Sport bet builders related endpoints

get
/api/sports/bet_builders/recommended

Returns personalized bet builder recommendations.

Produces recommended bet builders based on the provided input.

If the event_id parameter is passed, then count bet builders for the given event will be generated.

If an event_id is not provided, then count bet builders will be generated. In that case for each event its associated confidence will be also returned.

The amount of bet builders to generate per event will be dynamically calculated based on the personalization score of each event, promoting the most recommended ones. The query parameter max_count_per_event can be used to apply an upper limit on that dynamically calculated number.

The selections picked are the most relevant to the given user from the supported ones. Validation steps are also applied to ensure that the produced bet builders contain only valid and combinable selections.

Supported data providers

The current endpoint is available for specific data providers only, which are:

`Igt`

- AmericanFootball - Baseball - Basketball - IceHockey

`Kambi`

- AmericanFootball - Baseball - Basketball - Darts - Football - IceHockey - Tennis

`Openbet`

- Baseball - Basketball - Football

`SR`

- AmericanFootball - Baseball - Basketball - Cricket - Football - IceHockey - MMA - Tennis - Volleyball

Contact the API team for integration with other data providers.

Supported markets

Only a subset of the available markets can be used and combined in a bet builder. Currently the supported markets are the following:

`AmericanFootball`

- Match result - Xth half result - Xth quarter result - Winner - Double chance - Handicap - Xth half handicap - Xth quarter handicap - Asian handicap - Total points - Xth half total points - Xth quarter total points - Home Team total points - Away Team total points - Total touchdowns - Total field goals - Total turnovers - Total sacks - Odd/Even points - 1st half odd/even points - Winning margin - Will there be Overtime - Last touchdown scorer - Player total touchdowns - Player total touchdown passes - Player total receptions - Player total field goals - Player total kicking points - Player total interceptions - Player total receiving touchdowns - Player total receiving yards - Player total rushing attempts - Player total rushing touchdowns - Player total rushing yards - Player total passing touchdowns - Player total passing yards - Player total pass attempts - Player total pass completions - Player longest reception - Player longest pass completion

`Baseball`

- Match Result - Winner - Handicap - Total runs - Home total runs - Away total runs - Total home runs - Home total home runs - Away total home runs - Total runs odd or even - Total hits - Player total runs - Player total home runs - Player total hits - Player total bases - Player total strikeouts - Player total RBIs

`Basketball`

- Match Result - Winner - Match result - 1st half - Match result - 1st quarter - Total points - Home total points - Away total points - Total points - 1st half - Home total points - 1st half - Away total points - 1st half - Total points - 1st quarter - Home total points - 1st quarter - Away total points - 1st quarter - Player total points - Player total assists - Player total rebounds - Player total blocks - Player total steals - Player total 3-points made

`Cricket`

- Match winner - Total match fours - Total match sixes - Highest first over - Highest opening partnership - Most fours - Batter milestones - Top batter in match - Top bowler in match - Team of top batter - Team of top bowler

`Darts`

- Checkout Total Points - Leg X - Leg X Winner - Result after X Legs - Match Odds (match result) - Full time - Total Legs - Over/Under - Total 180s - Over/Under - Player's Total 180s - Over/Under - Most 180s - Leg Handicap - 180 in Leg X - Player to score 180 in Leg X - 180s Handicap - Correct Score

`Football`

- Match result - Match result - 1st half - Match result - 2nd half - Double chance - Double chance - 1st half - Draw no bet - 2nd half - Three way handicap - 2nd half - Both teams to score - Both teams to score - 1st half - Both teams to score - 2nd half - Total goals - Home total goals - Away total goals - Total goals - 1st half - Home total goals - 1st half - Away total goals - 1st half - Total goals - 2nd half - Home total goals - 2nd half - Away total goals - 2nd half - Total cards - Home total cards - Away total cards - Total corners - Home total corners - Away total corners - Corners 1x2 - Player total goals - Player total assists - Player total shots on target - Player total shots - Player total passes - Player total tackles - Goal range - Home clean sheet - Away clean sheet - Home clean sheet - 2nd half - Away clean sheet - 2nd half - Xth player to score - Penalty shootout winner - Penalty shootout xth penalty scored - Penalty shootout xth goal - Penalty shootout winning margin - Penalty shootout total goals - Penalty shootout home total goals - Penalty shootout away total goals - Penalty shootout odd/even - Penalty shootout home odd/even - Penalty shootout away odd/even - First half total bookings - Home team first half total bookings - Away team first half total bookings - First half total corners - Home team first half total corners - Away team first half total corners - Player to be carded

`IceHockey`

- Match result - Winner - Handicap - Handicap(incl. overtime and penalties) - 3-Way handicap - Both teams to score - Total goals - Home total goals - Away total goals - Player total goals - Xth goal - Xth period total goals - Xth period winner - Xth period home total goals - Xth period away total goals

`MMA`

- 1x2 - Winner - Total Rounds - Winning Method - Winning Method (Double Chance) - Will the fight go the distance - Winner & exact rounds - Home competitor total head strikes - Away competitor total head strikes - Home competitor total head strikes at round - Away competitor total head strikes at round - Home competitor exact knockdowns at round - Away competitor exact knockdowns at round

`Tennis`

- Winner - Winner - Xth set - Result - Games - Game handicap - Game handicap - Xth set - Set handicap - Total sets - Total games - Total games - Xth set - Home player total games - Away player total games - Home player to win a set - Away player to win a set - Set to nil - Tiebreak occurrence - Exact sets - Total games odd or even - Total games odd or even - Xth set - Correct score - Correct score - Xth set - Player to win Xth set

`Volleyball`

- Winner - Set handicap - Point handicap - Total points - Total sets - Competitor1 total - Competitor2 total - Odd/even - Exact sets - Double result (1st set/match) - xth set - winner - xth set - point handicap - xth set - total points - xth set - odd/even - xth set - xth point - xth set - race to x points - Competitor1 to win a set - Competitor2 to win a set - Will there be a 4th set - Will there be a 5th set - How many sets decided by extra points - Competitor1 to win exactly 1 set - Competitor2 to win exactly 1 set - Competitor1 to win exactly 2 sets - Competitor2 to win exactly 2 sets

Notice that the above list contains the algorithm's supported markets. It is the responsibility of the operator to provide VAIX with the markets listed, or at least a subset of them, in order for them to be used.

Personalized bet builder length

The option to dynamically calculate the bet builder's length based on the user's preferences is supported, using the personalized_length parameter. If used, the length of each bet builder will be calculated based on the user's historical preferences and behavior.

Notice that in that case, the given length parameter will be ignored.

Length of produced bet builder

There is the possibility that a bet builder with length less than the requested one will be returned, in case the markets offered for the given event are insufficient or not combinable.

Mostly applicable to cases where a big bet builder length is requested (> 6).

Integration concerns

Getting two recommender bet builders with 3 selections

In this example we get two recommender bet builders containing 3 selections each for the event with id sr:match:40781327, for the user with id 1.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
event_idstringOptional

The event id to get a bet builder for. If not set then the top count recommended events of the given user will be picked and bet builders for them will be generated.

Example: sr:match:23150637
countinteger · min: 1 · max: 20Optional

How many bet builders to produce in total.

Default: 1Example: 1
max_count_per_eventinteger · min: 1 · max: 10Optional

Optional upper limit to the amount of bet builders to generate per event. Since the number of bet builders to generate per event is dynamically calculated based on their confidence (so more bet builders are generated for highly recommended events), this parameter can be used to apply a limit, for example if one wants only one bet builder per event regardless of their personalization score. If not set, it will be ignored.

Example: 1
fromstring · date-timeOptional

The minimum event's starting datetime. If not explicitly set it defaults to now.

from_offsetstringOptional

Considers events starting after the from timestamp plus the given minutes/hours/days. If not set defaults to 0 minutes. The value must be in range [-7d - 7d].

Default: 0Example: -3hPattern: ^[+-]?[0-9]+([.][0-9]+)?[smhd]?$
to_offsetstringOptional

Considers events starting till the from timestamp plus the given minutes/hours/days. If not set defaults to one day (24 hours). The value must be in range [-7d - 7d].

Default: 2dExample: 2dPattern: ^[+-]?[0-9]+([.][0-9]+)?[smhd]?$
lengthinteger · min: 2 · max: 10Optional

The bet builder length.

Default: 2Example: 2
filtersstring · enumOptional

Optional filtering on the events and markets to consider. The event related filters are ignored in case the event_id parameter is provided. It expects a string adhering to the filtering format, as described in the filtering section, e.g. market_status:eq:OPEN.

Possible values:
include_oddsbooleanOptional

If set to true, the odds of the bet builder will be calculated and included in the response. Only applicable if configured for your token.

Default: false
align_team_marketsbooleanOptional

If set to true, ensures that player props and team-level markets in each bet builder are aligned to the same team. Team-neutral markets like totals (over/under) are always included.

Defaults to false, where no such check is performed.

Default: false
align_player_marketsbooleanOptional

If set to true, ensures that any player-specific selection in each bet builder is for the same player, while the remaining selections are aligned to that player's team (when they are team-specific). Team-neutral markets like totals (over/under) are always included.

Defaults to false, where no such check is performed.

Default: false
only_player_marketsbooleanOptional

If set to true, returns bet builders that only include player markets. Defaults to false.

Default: false
userstringRequired

The user to get recommended bet builder for.

personalized_lengthbooleanOptional

If true, calculates the bet builder's length dynamically based on user's preferences. Note that if set to true then it ignores the length parameter. Defaults to false.

Default: falseExample: true
order_bystring · enumOptional

The columns to sort the results by. It expects a string adhering to the ordering format, as described in the ordering section, e.g. +league_confidence,-sport_confidence.

Possible values:
fieldsstring · enumOptional

Optional selection of the object fields to retrieve. It expects a comma separated list of strings, as described in the field selection section, e.g. event_id,event_type.

Default: ["event_id","event_type","begin","country","country_id","league","league_id","sport","sport_id","participants","participant_ids","status","confidence","selection_id","bet_offer_id","market","market_id","market_type","market_type_id","uof_external_id","outcome","outcome_id","period","period_id","quote","quote_group","count","confidence"]Possible values:
operatorstringOptional

The operator to use for querying data. Notice that this is applied only if your account has access to multiple operators. In a different case the assigned operator to your account is used and the value of this field is ignored.

bookmaker_idintegerOptional

The bookmaker id to use for querying data. Notice that this is applied only if your account has access to multiple operators. In a different case the assigned operator to your account is used and the value of this field is ignored. Note that this parameter is used together with the sub_bookmaker_id parameter.

sub_bookmaker_idintegerOptional

The sub-bookmaker id to use for querying data. Notice that this is applied only if your account has access to multiple operators. In a different case the assigned operator to your account is used and the value of this field is ignored. Note that this parameter is used together with the bookmaker_id parameter.

event_typesstring · enumOptional

List of event types to consider when generating recommendations. One or more types can be provided. Available options are:

  • match: Standard matches to be considered.
  • seasonal: Seasonal events to be considered.
  • forced_events: Handpicked events to be considered regardless of their start_time.
Default: match,forced_eventsPossible values:
locationstringOptional

The location of the page where the request takes place.

Example: inplay_widget
rawstring · enumOptional

Comma separated list of keywords. If given, this input will be used as user demographics data for the recommendations, e.g country:gr,city:ath.

Possible values:
Header parameters
x-vaix-client-idstringRequired

Custom client header, the value should be the name of the group the user belongs to

x-vaix-authentication-methodstringOptional

Authentication method to be used, supported values [vaix, iam]. Defaults to vaix

Responses
200

OK

application/json

API response

statusstring · enumOptional

The status of the request

Possible values:
get/api/sports/bet_builders/recommended
GET /api/sports/bet_builders/recommended?user=text HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
  "data": [
    {
      "begin": "2026-01-01T00:00:00.000Z",
      "bet_builders": [
        {
          "odds": 1,
          "selections": [
            {
              "bet_offer_id": "text",
              "count": 1,
              "market": "text",
              "market_id": 1,
              "market_type": "text",
              "market_type_id": 1,
              "outcome": "text",
              "outcome_id": 1,
              "period": "text",
              "period_id": 1,
              "quote": 1,
              "quote_group": "text",
              "selection_id": "text",
              "side": "text",
              "uof_external_id": "text"
            }
          ]
        }
      ],
      "confidence": 1,
      "country": "text",
      "country_id": "text",
      "event_id": "text",
      "event_type": "text",
      "league": "text",
      "league_id": "text",
      "participant_ids": [
        "text"
      ],
      "participants": [
        "text"
      ],
      "sport": "text",
      "sport_id": "text",
      "status": "text"
    }
  ],
  "status": "success"
}

Get extended bet builders containing selections

get
/api/sports/bet_builders/extended

Returns bet builders that contain all of the given selection_ids.

In case of multiple input selection ids, the selection must be combinable, otherwise an appropriate error message will be returned and no bet builders will be generated.

The provided selections must belong to the same event. Bet builders are generated using the same logic as the recommended bet builder endpoint, starting from the provided selections and filling the remaining slots with valid, recommended selections.

Getting bet builders containing a selection

In this example we get 2 bet builders of length 3 that contain the selection with id c495ac571a7e4ecf2014abd597d2c1aa.

$ curl --request GET \
  --url 'https://api.vaix.ai/api/sports/bet_builders/extended?user=12345&selection_ids=c495ac571a7e4ecf2014abd597d2c1aa&count=2&length=3'
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
selection_idsstringRequired

Comma separated list of selection ids that must all belong to the same event. Returned bet builders will contain all of these selections.

Example: c495ac571a7e4ecf2014abd597d2c1aa
countinteger · min: 1 · max: 20Optional

How many bet builders to return.

Default: 1Example: 5
userstringRequired

The user to get recommended bet builder for.

user_weightnumber · max: 1Optional

The importance of user market preferences when combined with the event weight (popular/trending markets of the event).

Default: 0.95
lengthinteger · min: 2 · max: 10Optional

The bet builder length.

Default: 2Example: 2
filtersstring · enumOptional

Optional filtering on the markets to consider. It expects a string adhering to the filtering format, as described in the filtering section, e.g. market_status:eq:OPEN.

Possible values:
min_confidencenumber · max: 1Optional

The minimum confidence score for all selections to be considered. Any confidence lower than this will be shifted to min_confidence.

Default: 0.05
powernumber · max: 1Optional

The power to apply to the confidence scores. This is used to re-balance the confidence scores of the selections. Lower power means stronger re-balancing, bringing the confidence scores closer to each other.

Default: 0.6
align_team_marketsbooleanOptional

If set to true, ensures that player props and team-level markets in each bet builder are aligned to the same team. Team-neutral markets like totals (over/under) are always included.

Defaults to false, where no such check is performed.

Default: false
align_player_marketsbooleanOptional

If set to true, ensures that any player-specific selection in each bet builder is for the same player, while the remaining selections are aligned to that player's team (when they are team-specific). Team-neutral markets like totals (over/under) are always included.

Defaults to false, where no such check is performed.

Default: false
only_player_marketsbooleanOptional

If set to true, returns bet builders that only include player markets. Defaults to false.

Default: false
fieldsstring · enumOptional

Optional selection of the object fields to retrieve. It expects a comma separated list of strings, as described in the field selection section, e.g. event_id,event_type.

Default: ["event_id","event_type","begin","country","country_id","league","league_id","sport","sport_id","participants","participant_ids","status","confidence","selection_id","bet_offer_id","market","market_id","market_type","market_type_id","uof_external_id","outcome","outcome_id","period","period_id","quote","quote_group","count","confidence"]Possible values:
operatorstringOptional

The operator to use for querying data. Notice that this is applied only if your account has access to multiple operators. In a different case the assigned operator to your account is used and the value of this field is ignored.

bookmaker_idintegerOptional

The bookmaker id to use for querying data. Notice that this is applied only if your account has access to multiple operators. In a different case the assigned operator to your account is used and the value of this field is ignored. Note that this parameter is used together with the sub_bookmaker_id parameter.

sub_bookmaker_idintegerOptional

The sub-bookmaker id to use for querying data. Notice that this is applied only if your account has access to multiple operators. In a different case the assigned operator to your account is used and the value of this field is ignored. Note that this parameter is used together with the bookmaker_id parameter.

Header parameters
x-vaix-client-idstringRequired

Custom client header, the value should be the name of the group the user belongs to

x-vaix-authentication-methodstringOptional

Authentication method to be used, supported values [vaix, iam]. Defaults to vaix

Responses
200

OK

application/json

API response

statusstring · enumOptional

The status of the request

Possible values:
get/api/sports/bet_builders/extended
GET /api/sports/bet_builders/extended?selection_ids=text&user=text HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
  "data": [
    {
      "begin": "2026-01-01T00:00:00.000Z",
      "bet_builders": [
        {
          "odds": 1,
          "selections": [
            {
              "bet_offer_id": "text",
              "count": 1,
              "market": "text",
              "market_id": 1,
              "market_type": "text",
              "market_type_id": 1,
              "outcome": "text",
              "outcome_id": 1,
              "period": "text",
              "period_id": 1,
              "quote": 1,
              "quote_group": "text",
              "selection_id": "text",
              "side": "text",
              "uof_external_id": "text"
            }
          ]
        }
      ],
      "country": "text",
      "country_id": "text",
      "event_id": "text",
      "event_type": "text",
      "league": "text",
      "league_id": "text",
      "participant_ids": [
        "text"
      ],
      "participants": [
        "text"
      ],
      "sport": "text",
      "sport_id": "text",
      "status": "text"
    }
  ],
  "status": "success"
}

Last updated

Was this helpful?