Analytics
CRM analytics related endpoints
Returns metrics relevant to betting activity per sport or league.
By default betting activity will be calculated per sport. If you wish to aggregate by league, you need to pass the group_by=league query parameter.
The metrics are calculated per sport and include values such as total_bets, total_betted_events, total_uaps.
Data for specific time period
Use the activity_on filter, to fetch results for the desired time period, and the grouping_interval parameter to group them on the desired interval.
Time intervals format
The activity_on field is a date field, in the format YYYY-MM-DD which represents the date of the activity. Given on the requested interval, the meaning of the activity_on will vary.
day: Returns results for a given date, e.g.2025-06-10.week: Returns results for a given week. The returned date represents the start day of this week (Monday based), e.g.2025-09-15.month: Returns results for a given month where the returned date represents the start date of this month, e.g.2025-06-01for June 2025.overall: Returns metrics aggregated across the requested time period.
Optional filtering of the results. It expects a string adhering to the filtering format, as described in the filtering section.
The time interval for grouping the results.
monthPossible values: The dimension over which betting activity will be aggregated, can be one
of sport, league
sportPossible values: Custom client header, the value should be the name of the group the user belongs to
Authentication method to be used, supported values [vaix, iam]. Defaults to vaix
OK
Bad Request
Unauthorized
Forbidden
Not Acceptable
Request Entity Too Large
Unprocessable Entity
Too Early
Internal Server Error
GET /api/crm/analytics/betting/sports HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
"data": [
{
"activity_on": "2025-03-01",
"sport": "Soccer",
"sport_id": "sr:sport:1",
"subtenant_id": "6306",
"tenant_id": "40009",
"total_bets": 44,
"total_betted_events": 9,
"total_tickets": 35,
"total_uaps": 30
},
{
"activity_on": "2025-03-01",
"sport": "Tennis",
"sport_id": "sr:sport:5",
"subtenant_id": "6306",
"tenant_id": "40009",
"total_bets": 4,
"total_betted_events": 3,
"total_tickets": 4,
"total_uaps": 4
},
{
"activity_on": "2025-03-02",
"sport": "Soccer",
"sport_id": "sr:sport:1",
"subtenant_id": "6306",
"tenant_id": "40009",
"total_bets": 226,
"total_betted_events": 7,
"total_tickets": 172,
"total_uaps": 107
},
{
"activity_on": "2025-03-02",
"sport": "Basketball",
"sport_id": "sr:sport:2",
"subtenant_id": "6306",
"tenant_id": "40009",
"total_bets": 65,
"total_betted_events": 4,
"total_tickets": 34,
"total_uaps": 18
}
],
"status": "success"
}Returns sports related overall activity metrics.
Includes sports related activity metrics, grouped on the specified interval.
The calculated metrics include uaps, first_time_uaps and various monetary stats for tickets.
Local and standardized currency
Notice that monetary related metrics are all returned for each local currency the operator supports.
Along with that, aggregated metrics for the standardized currency (EUR) will also be returned.
For example, if an operator supports USD and MXN currencies, the results will include:
Statistics only regarding activity using
USDcurrency.Statistics only regarding activity using
MXNcurrency.Aggregated statistics regarding activity across all currencies. In that case, all values will be converted and aggregated to
EURcurrency.
Data for specific time period
Use the activity_on filter, to fetch results for the desired time period, and the grouping_interval parameter to group them on the desired interval.
Time intervals format
The activity_on field is a date field, in the format YYYY-MM-DD which represents the date of the activity. Given on the requested interval, the meaning of the activity_on will vary.
day: Returns results for a given date, e.g.2025-06-10.week: Returns results for a given week where the returned date represents the starting day of the week (Monday), e.g.2025-09-15.month: Returns results for a given month where the returned date represents the start date of this month, e.g.2025-06-01for June 2025.
Optional filtering of the results. It expects a string adhering to the filtering format, as described in the filtering section.
The time interval for grouping the results.
monthPossible values: The columns to sort the results by. It expects a string adhering to
the ordering format, as described in the ordering section, e.g.
+tenant_id,-subtenant_id.
+tenant_id,+subtenant_id,+currency,+local,-activity_onPossible values: Custom client header, the value should be the name of the group the user belongs to
Authentication method to be used, supported values [vaix, iam]. Defaults to vaix
OK
Bad Request
Unauthorized
Forbidden
Not Acceptable
Request Entity Too Large
Unprocessable Entity
Too Early
Internal Server Error
GET /api/crm/analytics/sports_activity HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
"data": [
{
"activity_on": "2025-05-02",
"currency": "MXN",
"double_leg_ticket_count": 117,
"double_leg_ticket_prize": 5173450.944182084,
"double_leg_ticket_stake": 218285.57,
"first_time_uaps": 0,
"local": true,
"other_leg_ticket_count": 150,
"other_leg_ticket_prize": 15441801.609330498,
"other_leg_ticket_stake": 73128.56999999999,
"single_leg_ticket_count": 347,
"single_leg_ticket_prize": 1568883.5508488524,
"single_leg_ticket_stake": 718601.37,
"subtenant_id": "6306",
"tenant_id": "40009",
"total_prize": 1055993.8835203429,
"total_stake": 1068123.0100000005,
"triple_leg_ticket_count": 50,
"triple_leg_ticket_prize": 19407908.236760862,
"triple_leg_ticket_stake": 58107.49999999999,
"uaps": 204
},
{
"activity_on": "2025-05-01",
"currency": "MXN",
"double_leg_ticket_count": 149,
"double_leg_ticket_prize": 3202205.964256444,
"double_leg_ticket_stake": 249308.93000000005,
"first_time_uaps": 0,
"local": true,
"other_leg_ticket_count": 166,
"other_leg_ticket_prize": 5943027.717576457,
"other_leg_ticket_stake": 134270.27000000002,
"single_leg_ticket_count": 428,
"single_leg_ticket_prize": 1259718.9843565708,
"single_leg_ticket_stake": 633805.97,
"subtenant_id": "6306",
"tenant_id": "40009",
"total_prize": 716029.7967394461,
"total_stake": 1114966.81,
"triple_leg_ticket_count": 103,
"triple_leg_ticket_prize": 8182438.145589585,
"triple_leg_ticket_stake": 97581.63999999998,
"uaps": 221
}
],
"status": "success"
}Returns metrics relevant to user cohorts.
For each cohort period, metrics for the following activity periods are returned. For example, if the cohort period is 2025-01-01, metrics for the activity periods of 2025-01-01, 2025-02-01, 2025-03-01, etc. are returned. Notice that through filters you can get data for the desired cohort and activity periods.
User type
The cohorts are calculated per user type.
Use the user_type filter to get data for the desired user type.
Available user types are:
new: Users who firstly registered during the cohort period.active: Users who were active during the cohort period.
Data for specific time period
Use the cohort_on filter, to fetch results for the desired cohort period, activity_on filter to fetch results for the desired activity period based on each cohort.
Time intervals format
The cohort_on and activity_on fields are date fields, in the format YYYY-MM-DD which represents the date of the cohort and activity respectively.
If the results are grouped on monthly intervals, the returned dates represent the start date of the month, e.g. 2025-06-01 for June 2025. Similarly if the results are grouped on weekly intervals then the returned dates represent the start of the corresponding week.
Optional filtering of the results. It expects a string adhering to the filtering format, as described in the filtering section.
The columns to sort the results by. It expects a string adhering to
the ordering format, as described in the ordering section, e.g.
+tenant_id,-subtenant_id.
+tenant_id,+subtenant_id,+user_type,+cohort_on,+activity_onPossible values: The time interval for grouping the results.
monthPossible values: Custom client header, the value should be the name of the group the user belongs to
Authentication method to be used, supported values [vaix, iam]. Defaults to vaix
OK
Bad Request
Unauthorized
Forbidden
Not Acceptable
Request Entity Too Large
Unprocessable Entity
Too Early
Internal Server Error
GET /api/crm/analytics/user_cohorts HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
"data": [
{
"activity_on": "2025-03-01",
"cohort_on": "2025-03-01",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 1040,
"user_type": "active"
},
{
"activity_on": "2025-04-01",
"cohort_on": "2025-03-01",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 509,
"user_type": "active"
},
{
"activity_on": "2025-05-01",
"cohort_on": "2025-03-01",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 376,
"user_type": "active"
},
{
"activity_on": "2025-06-01",
"cohort_on": "2025-03-01",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 321,
"user_type": "active"
}
],
"status": "success"
}Returns metrics relevant to user lifecycles.
Lifecycle stages
The following lifecycle stages are defined:
active: Users who have been active during the activity period.new: Users who firstly registered during the activity period.dormant: Users who have not been active for a period of time.lapsed: Users who have not been active for a longer period of time.reactivated: Users who were previously dormant or lapsed but have become active again during the activity period.
Use the lifecycle_status filter to get data for the desired lifecycle stage.
Users transitioning between lifecycle stages
It is possible that during the same activity period, a user transitions between different lifecycle stages. For example, a user may be active on 2025-08-12 but change to dormant on 2025-08-20 if they do not perform any activity after that date.
In such case, only the latest lifecycle stage for the user within the activity period will be considered for the metrics calculation. In the above example, the user will be counted as dormant for the activity period of August 2025.
Data grouping options
You can control how data is grouped using two parameters:
Use the
activity_onfilter to fetch results for the desired time period.Use the
grouping_intervalparameter to group data as either weekly or monthly aggregates. The default ismonthif not specified.
Data for specific time period
The activity_on field is a date field, in the format YYYY-MM-DD which represents the date of the activity. Given on the requested interval, the meaning of the activity_on will vary.
week: Returns results for a given week where the returned date represents the starting day of the week (Monday), e.g.2025-09-15.month: Returns results for a given month where the returned date represents the start date of this month, e.g.2025-06-01for June 2025.
Optional filtering of the results. It expects a string adhering to the filtering format, as described in the filtering section.
The columns to sort the results by. It expects a string adhering to
the ordering format, as described in the ordering section, e.g.
+tenant_id,-subtenant_id.
+tenant_id,+subtenant_id,+activity_on,+lifecycle_statusPossible values: The time interval for grouping the results.
monthPossible values: Custom client header, the value should be the name of the group the user belongs to
Authentication method to be used, supported values [vaix, iam]. Defaults to vaix
OK
Bad Request
Unauthorized
Forbidden
Not Acceptable
Request Entity Too Large
Unprocessable Entity
Too Early
Internal Server Error
GET /api/crm/analytics/user_lifecycles HTTP/1.1
Host: api.vaix.ai
Authorization: Bearer YOUR_SECRET_TOKEN
x-vaix-client-id: text
Accept: */*
{
"data": [
{
"activity_on": "2025-08-01",
"lifecycle_status": "active",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 710
},
{
"activity_on": "2025-08-01",
"lifecycle_status": "dormant",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 9592
},
{
"activity_on": "2025-08-01",
"lifecycle_status": "lapsed",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 4494
},
{
"activity_on": "2025-08-01",
"lifecycle_status": "new",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 1344
},
{
"activity_on": "2025-08-01",
"lifecycle_status": "reactivated",
"subtenant_id": "6306",
"tenant_id": "40009",
"user_count": 579
}
],
"status": "success"
}Was this helpful?