Skip to content

User Data

POST https://{PARTNER_API_URL}/user/profile

This request will be performed when user loads an iFrame and every time we will need additional information for processing user requests on our side. When you receive a request you should perform the following actions on your side:

Request examples

json
{
  "token": "5caa4cabce523c2f7610c50ce9819bfb",
  "requestId": "d9195aef-9492-43dd-88d0-dc1732a37f4e"
}

Response examples

json
{
  "userId": "1999",
  "currency": "USD",
  "currencies": ["USD", "EUR"],
  "isTest": false,
  "customFields": {
    "nickname": "Mr",
    "firstName": "John",
    "lastName": "Smith",
    "email": "[email protected]",
    "birthday": "1995-12-17",
    "gender": "female",
    "phone": "447911123456",
    "isCashOutAllowed": true,
    "isVerified": true,
    "userCountry": "GB",
    "userStatus": "positive",
    "userSessionIp": "10.10.121.120",
    "userSessionCountry": "GB",
    "registrationDate": "2019-09-10 12:00:01",
    "percentMargin": 13.2,
    "avgBet": 12,
    "isAbuser": 1,
    "isVIP": 1
  }
}

The table below describes the parameters:

ParameterTypeDescription
tokenstring
length: 10-64
A string that you generating for each user session to be able to identify and authorize user on backend. The string is passed during frame initialization in the SDK parameters.
userIdstring
length: 1-64
The user’s unique ID on the Partner’s platform.
currencystring
length: 3-5
Currently active currency of the user’s account.
Sets the default currency on the iFrame.
currenciesstring[]The list of available currencies for the user. This list may be shown on the iFrame.
isTestbooleanOptional. If this parameter is missing, a user will be count as isTest = false.
customFieldsCustomFieldsA field holding additional information about a user. This field is optional.
requestIdstring
length: 10-64
A unique id to identify and track this particular request.

The CustomFields parameters are holding additional information about user. Some parts of this information (e.g., nickname, first name, last name) can be displayed in Sportsbook iFrame and may be used within the leader boards (and other additional features) visible for other users. The table below describes the CustomFields parameters:

ParameterTypeDescription
firstNamestringUser’s first name.
lastNamestringUser’s last name.
nicknamestringUser’s nickname.
emailstringUser’s email.
birthdaystringUser’s date of birth.
genderstringUser’s gender. Possible options: female, male, no data.
phonestringUser’s phone number.
isCashOutAllowedbooleanOptional parameter that enables and disables cashout for this user.
isVerifiedbooleanThe verification state of the user on the Partner’s side.
userCountrystringUser’s country code (ISO 3166-1 alpha-2).
userStatusenumAntifraud reputation status of the user in the Sportsbook system.
userSessionIpstringThe IP address of the user’s session.
userSessionCountrystringUser’s session country code (ISO 3166-1 alpha-2).
registrationDatestringUser's registration date in UTC (YYYY-MM-DD hh:mm:ss).
percentMarginfloatValue of the average margin from the Partner’s product on a specific user (int or float).
avgBetfloatThe average sum of the bet (int or float).

Use Case

Multi-Currency Support Requirements and Usage

Overview

Our system supports multiple currencies for a single user. Operators and Aggregators may implement multi-currency handling based on their platform architecture.

Regardless of the chosen integration approach, our system always expects the current active currency in the response to the User Data request (/user/profile). Our system also always includes the currency in all bet-related interactions (placebet, settle, unsettle, rollback).

Standard Approach for Multi-Currency Integration

Flow Description:

  • User open website -> our system calls /user/profile.
  • The Operator/Aggregator returns the user profile, including the current active currency.
  • Our system stores the returned currency.
  • For all subsequent bet-related requests (placebet, settle, unsettle, rollback), our system sends the currency that was active at the moment the bet was placed.

Important Note

If a bet was placed while the user’s active currency was USD, then even if the user later switches to another currency (e.g., EUR), all future operations related to that bet continue using USD, because it was the active currency at the time the bet was placed.

Summary

  • The User Data response (/user/profile) must always include the current active currency.
  • All bet-related requests (placebet, settle, unsettle, rollback) include the currency.
  • The userId must remain constant for the same real user.
  • After each currency change made by the player, the token must be changed, because each userId + currency pair must have a unique token.

Important

WARNING

NOTE: Changing the userId for the same real player when their currency changes is strictly prohibited.

Reason: Our system treats each unique userId as a separate player. Changing it may lead to:

  • broken limits and risk-management rules
  • incorrect or incomplete bet history
  • vulnerability to user fraud
  • potential financial losses

OperatorUser Field Requirements and Usage

Overview

The operatorUser field is used exclusively in scenarios where an Aggregator integrates with our system and acts as an intermediary between us and the Operators connected to that Aggregator.

When requests are routed through an Aggregator, the standard userId field may contain the Aggregator’s internal identifier rather than the actual user ID used in the Operator’s system. To ensure accurate identification and proper request processing, the Aggregator must provide the Operator’s real player ID in the operatorUser field.

The operatorUser field ensures that our system knows the exact user ID used in the Operator’s system, which is necessary for correct processing and for handling Operator support requests.

When Should operatorUser Be Used?

You MUST include the operatorUser field in the following cases: when userId represents the Aggregator’s Internal ID

When operatorUser Is Not Required

If an Operator integrates directly (without an Aggregator) and passes its own user ID using userId, the operatorUser field may be omitted.

Allowed Format:

  • Regex: /^[A-Za-z0-9._~-]+$/

    This pattern allows only URL-safe characters (alphanumeric, ., _, ~, -), preventing issues with encoding, routing, or request parsing.

  • Maximum length: 64 characters

    This limit ensures consistent storage, indexing, and URL stability across all environments.

Response examples with operatorUser:

json
{
  "userId": "1999",
  "currency": "USD",
  "currencies": ["USD", "EUR"],
  "isTest": false,
  "customFields": {
    "nickname": "Mr",
    "firstName": "John",
    "lastName": "Smith",
    "email": "[email protected]",
    "birthday": "1995-12-17",
    "gender": "female",
    "phone": "447911123456",
    "isCashOutAllowed": true,
    "operatorUser": "userId in operator system",
    "isVerified": true,
    "userCountry": "GB",
    "userStatus": "positive",
    "userSessionIp": "10.10.121.120",
    "userSessionCountry": "GB",
    "registrationDate": "2019-09-10 12:00:01",
    "percentMargin": 13.2,
    "avgBet": 12,
    "isAbuser": 1,
    "isVIP": 1
  }
}