Bulk Ban
Creates a non-expiring ban with one selected reason for each uploaded user and removes active sessions.
Operator and engineering guide for bulk banning users, applying account restrictions, and creating the same note for multiple users.
Bulk actions are available from the Admin user search page under Bulk Actions. All three actions share one CSV format and a preview-before-processing workflow. Access is limited to Admin and Super Admin roles.
Creates a non-expiring ban with one selected reason for each uploaded user and removes active sessions.
Disables one or more capabilities for every uploaded user, including optional forced password reset.
Adds one shared internal note to every uploaded user after confirming that all users exist.
The UI intentionally separates configuration, verification, and processing so an operator can inspect the selected users before a destructive action runs.
Open User Administration → Users → Bulk Actions, then select Ban, Restrict, or User Notes.
Select the reason/restrictions or enter the note, then upload the user CSV.
Review the selected users, total count, and action details shown in the preview table.
Run the operation and inspect the final result or validation/server error.
A downloadable template is available in every dialog. Only userId affects the backend request; the optional columns make the preview easier for an operator to verify.
| Column | Required | Validation and purpose |
|---|---|---|
userId | Yes | Must be a valid UUID. Duplicate IDs are rejected before processing. |
user | No | Username displayed in the preview. username is also accepted as a header. |
name | No | Human-readable name displayed in the preview. |
email | No | Used as a preview fallback when the username is empty. |
accounts | No | Informational account count. account and accountCount are accepted headers. |
userId,user,name,email,accounts
9c28c670-52ef-4303-a849-9bb5d666d366,john_doe,John Doe,john@example.com,1
Bulk Ban applies the same non-expiring ban reason to every user. Users are processed sequentially, and an individual failure does not stop subsequent users.
players-requestself-exclusionongoing-checkscompany-decisioncompliance-decisionfraud-detectionchargebackuserBan.bulkBan audit action./user-bans/bulk-ban{
"userIds": ["9c28c670-52ef-4303-a849-9bb5d666d366"],
"reason": "company-decision"
}
At least one restriction must be selected before a CSV can be uploaded. Multiple restrictions can be applied in the same request.
| Admin option | API value | Effect |
|---|---|---|
| Restrict pay-ins | disableDeposit | Sets canDeposit to false. |
| Restrict payouts | disableRedeem | Sets canRedeem to false. |
| Restrict chat | disableChat | Sets canChat to false. |
| Restrict betting | disableBet | Sets canBet to false. |
| Force password reset | forcePasswordReset | Sets mandatory password reset. Users without an email profile return an error. |
userState.bulkRestrict audit action./user-states/bulk-restrict{
"userIds": ["9c28c670-52ef-4303-a849-9bb5d666d366"],
"actions": ["disableDeposit", "disableRedeem"]
}
Bulk User Notes adds the same internal note to all users in the CSV. The note is trimmed before submission and must contain between 1 and 3,000 characters.
userNote.bulkCreate audit action./user-notes/bulk{
"userIds": ["9c28c670-52ef-4303-a849-9bb5d666d366"],
"text": "User contacted support about duplicate accounts."
}
Understanding which errors are file-level, user-level, or request-level is important before retrying a bulk action.
| Stage | Behavior | Operator action |
|---|---|---|
| CSV parsing | Malformed CSV or unreadable file shows a parsing error. Nothing is sent to the backend. | Correct the file and upload again. |
| CSV validation | Invalid/duplicate UUIDs or an empty file show validation errors. Nothing is processed. | Correct every reported row before retrying. |
| Ban/restrict user result | Each user returns success or error; processing continues for later users. | Review failed rows and retry only users whose current state was verified. |
| Bulk notes request | If any user does not exist, the entire request fails and no notes are created. | Remove/correct missing IDs, then submit again. |
| Request/server failure | The UI shows a server error instead of per-user results. | Verify user state before retrying; part or all of a ban/restrict batch may already have completed. |
Bulk Ban and Bulk Restrict use the same response envelope. The actions array reflects the operation attempted for that user.
{
"results": [
{
"userId": "9c28c670-52ef-4303-a849-9bb5d666d366",
"actions": ["disableDeposit", "disableRedeem"],
"result": "success",
"message": "Restriction applied successfully"
}
]
}