# Moderation

Stream Chat has support for several moderation actions, such as flagging, muting, banning and shadow banning. You can find more details about the available low-level client moderation tools on this [page](/chat/docs/ios-swift/moderation/).

You can moderate flagged messages and users through Stream's [moderation dashboard](/chat/docs/javascript/moderation/).

### Moderation Categories

For each channel type, you can enable AI moderation, consisting of 4 moderation categories:

- Semantic Filters
- Commercial Spam
- Platform Circumvention
- Blocklists

![Dashboard moderation categories](@chat-sdk/react-native/v9-latest/_assets/guides/moderation/moderation-dashboard.png)

For each moderation category, you can configure an action that will be performed after a message falls into that category.

The available actions are:

- Flag
- Block
- Bounce
- Bounce then flag
- Bounce then block

### React Native SDK Handling

In the React Native SDK, you can check if a message was moderated, by checking the `moderation_details` value in the chat message, which is not defined or `undefined` for regular messages.

If a message is blocked by moderation, the message `type` is `error` and the message text contains `Message was blocked by moderation policies`.

If a message is bounced by moderation, the message `type` is `error` and the message `moderation_details` value is defined.

### UI Components handling

The React Native SDK handles the bounced messages by default. When a message is bounced, there is a visual indicator on the message view to reflect that.

![Bounced message](@chat-sdk/react-native/v8/_assets/guides/moderation/bounced-message.png)

When you press/long press on a message, you can perform several default actions on it, such as editing and deleting it, as well as trying to resent it.

![Bounced message actions](@chat-sdk/react-native/v8/_assets/guides/moderation/bounced-message-action.png)

<admonition type="note">

When you try to resend a message when bounced, if the bounced then flag settings is applied, the message will be marked as flag after being sent the second time.

When you try to resend a message when bounced, if the bounced then blocked settings is applied, the message will be blocked after being sent the second time.

</admonition>

You can customize the default actions on the bounced message action handler component, that is, [MessageBounce](/chat/docs/sdk/react-native/v6/ui-components/message-bounce/) component by passing it to the [`Channel`](/chat/docs/sdk/react-native/v6/core-components/channel#messagebounce/) component.


---

This page was last updated at 2026-05-13T13:38:48.158Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/v6/guides/moderation/](https://getstream.io/chat/docs/sdk/react-native/v6/guides/moderation/).