Skip to main content

Query Player Report (Paginated)

Query statistical reports by player using pagination. Use different offsets to retrieve different data. Each request returns a maximum of 5,000 records.

API Information

  • URL: POST /v2/report/user/offset
  • Authentication: Bearer Token
  • Encryption: Requests are encrypted using AES-256-GCM; responses are returned as plaintext JSON

Request

Request Headers

POST /v2/report/user HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
x-agentid: integratorNBTest04
x-timestamp: 1769746894501
x-nonce: 4ff08bc2a45c6b38068dbcd24296a25b
x-signature: c25f8d23704373e8776cce6d9b10f1fde091c34db80d60523c7e04ff30e54633

Request Parameters

Parameters Before Encryption

{
"startDate": "2026-01-21T07:00:00Z",
"endDate": "2026-01-21T07:30:00Z",
"agentId": "integratorNBTest04",
"betSource": 1,
"offset": 0
}

Encrypted Request Body

{
"cipherText": "G0ZMDELeJwx+7JcIfIFOLJjkSzANPu6krGM2uw==..."
}
FieldTypeRequiredDescription
startDatestringYesStart time (ISO 8601 format)
endDatestringYesEnd time (ISO 8601 format)
agentIdstringYesAgent ID (must be the same as the agentId used during /v2/auth authentication)
betSourcenumberNoFilter type, default is 1, 1: Regular bets and items, 2: Operator Cards
offsetnumberYesOffset value; use 0 for the first query, then increment by 5,000 for subsequent queries

Response

Success Response

{
"code": 0,
"message": "No error.",
"data": {
"rows": [
{
"agentId": "integratorNBTest04",
"brand": "VP",
"username": "VPSysDevTest001",
"currency": "THB",
"count": 96,
"actualBetAmt": "48",
"validBetAmt": "48",
"winAmt": "44.9",
"ggr": "3.1",
"jackpotWin": "0",
"jackpotContribute": "0",
"lastStatisticsTime": "2026-02-02T23:29:44.621Z"
},
{
"agentId": "integratorNBTest04",
"brand": "VP",
"username": "VPSysDevTest002",
"currency": "THB",
"count": 96,
"actualBetAmt": "4",
"validBetAmt": "4",
"winAmt": "4",
"ggr": "3",
"jackpotWin": "0",
"jackpotContribute": "0",
"lastStatisticsTime": "2026-02-02T23:29:44.621Z"
}
],
"totalRowsNumber": "19999"
},
"logUUID": "146c3bf2-ce4b-4154-a550-f3f37c1068fc"
}
FieldTypeDescription
dataobjectPlayer report list
data.rows[].agentIdstringAgent ID
data.rows[].brandstringBrand, fixed as 'VP'
data.rows[].usernamestringPlayer Account
data.rows[].currencystringCurrency
data.rows[].countnumberNumber of Bets
data.rows[].actualBetAmtstringActual Bet Amount
data.rows[].validBetAmtstringValid Bet Amount
data.rows[].winAmtstringWin Amount
data.rows[].ggrstringGames netwin
data.rows[].jackpotWinstringJackpot Win Amount
data.rows[].jackpotContributestringJackpot Contribution Amount
data.rows[].lastStatisticsTimestringLast Statistics Time
data.totalRowsNumberNumberTotal number of records
logUUIDstringRequest tracking ID for troubleshooting and log queries

Error Response

When the request fails, the corresponding error code will be returned.

Error Codes

CodeDescriptionHandling Suggestion
11Parameters errorPlease ensure the request parameters are complete and correctly formatted
77Too many requestRequest rate too high, please try again later

Error Response Example

Parameters Error

{
"code": 11,
"message": "Parameters error",
"logUUID": "24cdc3b9-9fe8-44de-8391-a96863e46954"
}

Too Many Requests

{
"code": 77,
"message": "Too many request, please try again later",
"logUUID": "asdsaggderv"
}

Important Notes

  1. Time Range: To ensure data consistency, the query time range can only be between 90 days before the current time and 2 hours before the current time
  2. Time Range: The time Range set between startDate and endDate cannot exceed 7 days
  3. Call Frequency: Each agentId call frequency is a maximum of 1 per second
  4. Time Segmentation: Queries can only be segmented to hours. If less than an hour, it will be calculated as that hour +1. EX: Querying 04:0004:01 will actually return data for 04:0005:00
  5. Records per Request: A maximum of 5,000 records are returned per request. If the total exceeds 5,000, use a loop with different offset values to fetch in batches