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==..."
}
| Field | Type | Required | Description |
|---|---|---|---|
startDate | string | Yes | Start time (ISO 8601 format) |
endDate | string | Yes | End time (ISO 8601 format) |
agentId | string | Yes | Agent ID (must be the same as the agentId used during /v2/auth authentication) |
betSource | number | No | Filter type, default is 1, 1: Regular bets and items, 2: Operator Cards |
offset | number | Yes | Offset 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"
}
| Field | Type | Description |
|---|---|---|
data | object | Player report list |
data.rows[].agentId | string | Agent ID |
data.rows[].brand | string | Brand, fixed as 'VP' |
data.rows[].username | string | Player Account |
data.rows[].currency | string | Currency |
data.rows[].count | number | Number of Bets |
data.rows[].actualBetAmt | string | Actual Bet Amount |
data.rows[].validBetAmt | string | Valid Bet Amount |
data.rows[].winAmt | string | Win Amount |
data.rows[].ggr | string | Games netwin |
data.rows[].jackpotWin | string | Jackpot Win Amount |
data.rows[].jackpotContribute | string | Jackpot Contribution Amount |
data.rows[].lastStatisticsTime | string | Last Statistics Time |
data.totalRowsNumber | Number | Total number of records |
logUUID | string | Request tracking ID for troubleshooting and log queries |
Error Response
When the request fails, the corresponding error code will be returned.
Error Codes
| Code | Description | Handling Suggestion |
|---|---|---|
| 11 | Parameters error | Please ensure the request parameters are complete and correctly formatted |
| 77 | Too many request | Request 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
- 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
- Time Range: The time Range set between startDate and endDate cannot exceed 7 days
- Call Frequency: Each agentId call frequency is a maximum of 1 per second
- 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:00
04:01 will actually return data for 04:0005:00 - 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