Smart Search

Smart search endpoints

get
/api/search

Returns personalized search results for sport events and casino games.

For sports

The endpoint supports searches based on both participant/country/league similarity and user preferences.The returned results are events that include at least one participant/country/league that has string similarities with the searched token. Using the mode option, the ranking of these events can be based on the user preferences or on event popularity in addition to the string similarity. We also support events filtering by providing a score threshold.

Only events starting between the requested time range will be considered.

For casino

The endpoint supports searches based on game's name, category, studio and vaix tags.The returned results are casino games that include at least one field that has string similarities with the searched token.

Spelling mistakes, whitespace, typos and many more filters are supported by default for sport and casino product.

Picking the correct date parameters for sport events

Most of the times it is advised to use a tight date range (ex. 1 week). This avoids season bets and also boosts events that are starting the following days where the player may be more interested.

Search product

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

The search pattern.

productstring · enumRequired

The product to search for.

Possible values:
countinteger · min: 1Optional

Number of events to return.

Default: 50Example: 5
brandstringOptional

The brand of the operator.

fromstring · date-timeOptional

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

from_offsetstringOptional

How many minutes/hours/days to shift from. Use a negative value for a backwards shift, or a positive value for a forwards shift. The value must be in range [-7d - 7d].

Default: 0Example: -3hPattern: ^[+-]?[0-9]+([.][0-9]+)?[smhd]?$
score_thresholdnumber · max: 1Optional

Filters events based on their calculated score. If not set defaults to 0.5. The value must be in range [0.0-1.0].

to_offsetstringOptional

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

Default: 7dExample: 7dPattern: ^[+-]?[0-9]+([.][0-9]+)?[smhd]?$
modestring · enumOptional

Decides whether the smart search results will be returned as is, mixed by popular events, or mixed by user recommendations (default). When mode is recommended, user must also be provided, otherwise the results will fall back to popular mode.

Default: recommendedPossible values:
filtersstring · enumOptional

A mix of sports and casino filters. This parameter is useful to specify specific filters on the data you want to return. The appropriate filters for the product in use should be applied. Sports and Casino filters cannot be mixed, otherwise an error response will be returned.

Example: country:eq:Germany;sport:eq:SoccerPossible values:
userstringOptional

The user to get recommendations for.

Default: 0
languagestringOptional

The language to perform searches for. Depends on the available translations and will be ignored if the provided language is invalid.

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.

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. markets,event_id.

Default: ["markets","event_id","event_type","begin","country","country_id","league","league_id","sport","sport_id","participants","participant_ids","status","score","game_id","game_name","game_studio","category","vaix_tags","tags","channels","game_image_url","rec_score","has_avalanche","has_bonus","has_buy","has_jackpot","is_live","has_megaways","has_sticky","has_fixed","has_free_spin","has_wilds","has_gamble","has_respin","has_scatter","has_symbols_collection","has_symbols_mega","has_symbols_expanding","has_symbols_mystery","has_multiplier","has_wilds_random","has_wilds_walking"]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
get
/api/search
GET /api/search?token=text&product=sport HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
  "data": {
    "games": [
      {
        "game_id": "legacy_of_ra_megaways_ogs",
        "game_name": "Legacy of Ra Megaways",
        "score": 0.8681480848499998
      },
      {
        "game_id": "mega_flip_de_quickspin",
        "game_name": "Mega Flip DE",
        "score": 0.851773132525
      },
      {
        "game_id": "rock_the_reels_megaways_de_ogs",
        "game_name": "Rock the Reels Megaways DE",
        "score": 0.8293675892999999
      },
      {
        "game_id": "buffalo_power_megaways_quickspin",
        "game_name": "Buffalo Power Megaways",
        "score": 0.8087278390499999
      },
      {
        "game_id": "eye_of_horus_megaways_de_ogs",
        "game_name": "Eye of horus Megaways DE",
        "score": 0.8045928919499999
      }
    ]
  },
  "status": "success"
}

Get smart search requests

get
/api/search/searches

Returns the smart search requests made by a user.

This endpoint helps you retrieve the search queries a user has performed, optionally applying filters and sorting. Supports filtering by uniqueness and without uniqueness.

Example

$ curl --request GET \
  --url "http://api.vaix.ai/api/search/searches?user=user123&order_by=-timestamp&count=5"

The above will return the 5 most recent search requests for user user123 sorted by most recent first.

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

The user to get searches for.

uniquebooleanOptional

If set (default), only unique search terms will be returned. Otherwise all matching searches will be returned.

Default: true
filtersstring · enumOptional

Optional filtering of the searches to retrieve. It expects a string adhering to the filtering format, as described in the filtering section.

You can also use days_since_search (e.g. days_since_search:eq:30) instead of explicit timestamp ranges.

Example: location:eq:homepage;days_since_search:lt:20Possible values:
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. +timestamp,-location.

Default: -timestampPossible values:
countinteger · max: 100Optional

Maximum number of results.

Default: 20
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
get
/api/search/searches
GET /api/search/searches?user=text HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
  "data": [
    {
      "location": "text",
      "raw_search_token": "text",
      "timestamp": "2025-11-18T14:17:37.924Z",
      "user_id": "text"
    }
  ],
  "status": "success"
}

Was this helpful?