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

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/player similarity and user preferences.The returned results are events that include at least one participant/country/league/player 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.

Note that the endpoint supports searching for player related markets as well. For example, searching for "Salah" will return events that include markets related to the player. The player markets are included in the markets field of the response.

For example:

{
  "begin": "2024-02-04T16:30:00Z",
  "country": "England",
  "country_id": "sr:category:1",
  "event_id": "sr:match:41763283",
  "event_type": null,
  "league": "Premier League",
  "league_id": "sr:tournament:17",
  "markets": [
    {
      "event_id": "sr:match:41763283",
      "id": "uof:1/sr:sport:1/38/sr:player:244391?goalnr=1",
      "market": "goalnr=1",
      "market_id": null,
      "market_type": "First Goal Scorer",
      "market_type_id": 38,
      "outcome": "244391",
      "player_id": "sr:player:244391",
      "player_name": "Mahamed Salah",
      "properties": {
        "player": "Mahamed Salah",
        "player_id": "sr:player:244391"
      },
      "quote": 4,
      "score": 0.97957602445,
      "status": null
    }
  ],
  "participant_ids": [
    "sr:competitor:42",
    "sr:competitor:44"
  ],
  "participants": [
    "Arsenal FC",
    "Liverpool FC"
  ],
  "score": 0.97957602445,
  "sport": "Soccer",
  "sport_id": "sr:sport:1",
  "status": "closed"
}

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:
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:
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.

search_modestring · enumOptional

Controls what type of results to return. Only applicable when product=sport.

Available options:

  • all (default): Returns both event and player market results.
  • player_markets: Returns only player market results (e.g., searching for "Salah" will only return player-related market results).
  • events: Returns only event results without player markets, filtering out player market matches and returning only events that matched on event-level fields (participant, league, sport, country, etc.).
Default: allExample: player_marketsPossible 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.

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","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:
locationstringOptional

The location of the page where the request takes place.

Example: inplay_widget
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

dataone ofOptional
or
statusstring · enumOptional

The status of the request

Possible values:
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": {
    "events": [
      {
        "begin": "2024-02-05T19:45:00Z",
        "country": "Italy",
        "country_id": "sr:category:31",
        "event_id": "sr:match:42134563",
        "event_type": null,
        "league": "Serie A",
        "league_id": "sr:tournament:23",
        "markets": [],
        "participant_ids": [
          "sr:competitor:2702",
          "sr:competitor:2719"
        ],
        "participants": [
          "AS Roma",
          "Cagliari Calcio"
        ],
        "score": 0.95474312305,
        "sport": "Soccer",
        "sport_id": "sr:sport:1",
        "status": "closed"
      },
      {
        "begin": "2024-02-04T17:30:00Z",
        "country": "Spain",
        "country_id": "sr:category:32",
        "event_id": "sr:match:41893345",
        "event_type": null,
        "league": "LaLiga",
        "league_id": "sr:tournament:8",
        "markets": [],
        "participant_ids": [
          "sr:competitor:2816",
          "sr:competitor:2859"
        ],
        "participants": [
          "Real Betis Seville",
          "Getafe CF"
        ],
        "score": 0.7233814,
        "sport": "Soccer",
        "sport_id": "sr:sport:1",
        "status": "closed"
      },
      {
        "begin": "2024-02-04T20:00:00Z",
        "country": "Spain",
        "country_id": "sr:category:32",
        "event_id": "sr:match:41893357",
        "event_type": null,
        "league": "LaLiga",
        "league_id": "sr:tournament:8",
        "markets": [],
        "participant_ids": [
          "sr:competitor:2829",
          "sr:competitor:2836"
        ],
        "participants": [
          "Real Madrid",
          "Atletico Madrid"
        ],
        "score": 0.70087258345,
        "sport": "Soccer",
        "sport_id": "sr:sport:1",
        "status": "closed"
      },
      {
        "begin": "2024-02-03T18:00:00Z",
        "country": "France",
        "country_id": "sr:category:7",
        "event_id": "sr:match:42005647",
        "event_type": null,
        "league": "Ligue 2",
        "league_id": "sr:tournament:182",
        "markets": [],
        "participant_ids": [
          "sr:competitor:1684",
          "sr:competitor:6925"
        ],
        "participants": [
          "Angers SCO",
          "Rodez Aveyron Football"
        ],
        "score": 0.6513504570666667,
        "sport": "Soccer",
        "sport_id": "sr:sport:1",
        "status": "closed"
      }
    ]
  },
  "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.

For user 0 the endpoint returns the most recent searches or suppresses them. Behavior depends on the fallback_mode parameter:

  • fallback_mode=ignore (default): Returns an empty list.

  • fallback_mode=recent: Returns recent searches from all users across the system.

# Get recent searches from all users
$ curl --request GET \
--url "http://api.vaix.ai/api/search/searches?user=0&fallback_mode=recent&count=10"

# Ignore searches for all users (default behavior)
$ curl --request GET \
--url "http://api.vaix.ai/api/search/searches?user=0"
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
userstringOptional

The user to get searches for.

Default: 0
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
fallback_modestring · enumOptional

The handling of searches when user is set to 0 (typical for logged out cases) or no user is provided. Available options are:

  • ignore: Return an empty list.
  • recent: Return recent searches across the site.
Default: ignorePossible values:
locationstringOptional

The location of the page where the request takes place.

Example: inplay_widget
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/search/searches
GET /api/search/searches HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
  "data": [
    {
      "location": "GR",
      "raw_search_token": "panathinaikos",
      "timestamp": "2025-07-14T10:00:01Z",
      "user_id": "user123"
    },
    {
      "location": "UK",
      "raw_search_token": "Manchester United",
      "timestamp": "2025-07-14T10:00:00Z",
      "user_id": "user123"
    },
    {
      "location": "GR",
      "raw_search_token": "Olympiacos",
      "timestamp": "2025-07-13T15:00:00Z",
      "user_id": "user123"
    },
    {
      "location": "GR",
      "raw_search_token": "Blackjack",
      "timestamp": "2025-07-13T14:00:00Z",
      "user_id": "user123"
    }
  ],
  "status": "success"
}

Last updated

Was this helpful?