Skip to main content
Flagging messages allows users to report inappropriate content to moderators or administrators. CometChat provides methods to flag messages with specific reasons and retrieve available flag reasons configured in your dashboard.

Flag a Message

In other words, as a user, how do I report a message? To flag a message, you can use the flagMessage() method. This method takes the message ID and a payload containing an optional reason ID and remark.
  • Kotlin
  • Java
        val id = 0L; // Id of the message to be flagged
        val flagDetail = FlagDetail()
        flagDetail.reasonId = "spam" // Required: Reason ID for flagging the message
        flagDetail.remark = "This message contains promotional content" // Optional: Additional remarks
        CometChat.flagMessage(id, flagDetail, object : CometChat.CallbackListener<String?>() {
            override fun onSuccess(s: String?) {
                Log.i(TAG, "onSuccess: Message flagged successfully: $s")
            }

            override fun onError(e: CometChatException?) {
                Log.i(TAG, "onError: Message flagging failed with error: ${e?.message}")
            }
        })

Parameters

ParameterTypeRequiredDescription
idlongYesThe ID of the message to be flagged
flagDetailFlagDetailYesContains flagging details
flagDetail.setReasonIdStringYesID of the flag reason (from getFlagReasons)
flagDetail.setRemarkStringNoAdditional context or explanation

Response

On successful flagging, you’ll receive a response object:
{
  "message": "Message {id} has been flagged successfully."
}

Get Flag Reasons

In other words, what are the available reasons for flagging a message? Before flagging a message, you can retrieve the list of available flag reasons using the getFlagReasons() method. These reasons are configured in the CometChat Dashboard.
  • Java
  • Kotlin
        CometChat.getFlagReasons(new CometChat.CallbackListener<List<FlagReason>>() {
            @Override
            public void onSuccess(List<FlagReason> reasons) {
                Log.e(TAG, "Flag Reasons fetched: " + reasons);
            }

            @Override
            public void onError(CometChatException e) {
                Log.e(TAG, "Error fetching Flag Reasons: " + e.getMessage());
            }
        });