Bypass Moderation

Bypass user from moderation lets you exempt specific users from content moderation checks. This is useful for trusted users, such as moderators, bots, or staff accounts, whose content should be published without going through moderation pipelines.

There are three approaches:

  1. Permission-based bypass: Grant the SkipMessageModeration permission to a role. This works for Chat only.
  2. User bypass flag: Set the bypass_moderation flag on a user via the Dashboard or API. This works for Chat, Feeds, Comments, and the Check API.
  3. Server-side writes: Content created from your backend skips moderation unless you set force_moderation: true. This works for Chat, Feeds, and Comments.

Permission-Based Bypass (Chat Only)

Stream's permission system lets you grant the SkipMessageModeration action to specific roles. When a user with this permission sends a message, moderation is skipped entirely.

This approach is scoped to Chat message sending and requires the role-based permission system to be enabled on your app.

To grant SkipMessageModeration to a role in the dashboard:

  1. Open your app and go to Settings → Roles & Permissions
  2. Select the Role (e.g., admin, or a custom trusted_user role)
  3. Under Chat, pick the channel type (e.g., messaging) and open Message moderation
  4. Check Skip Message Moderation
  5. Click Save

Once assigned, any user with that role will bypass moderation when sending messages in channels of the selected channel type.

User Bypass Flag (Chat, Feeds, Comments & Check)

The bypass_moderation flag can be set on individual users. When enabled, moderation is skipped for all content the user creates across Chat messages, Feeds activities, and Feed comments, and for Check calls where the user is the entity_creator_id, whatever the entity type.

Enable or Disable Bypass

  1. Navigate to Settings → Users
  2. Find the user you want to manage
  3. Click on the value in the bypass_moderation column to open a toggle
  4. Toggle the switch to enable or disable bypass for that user
  5. Confirm the change

Changes take effect immediately for any new content the user creates.

The same flag is POST /api/v2/moderation/bypass with target_user_id and enabled.

await client.moderation.bypass({
  target_user_id: "user-123",
  enabled: true,
});

Filter Users by Bypass Status

On the Settings → Users page, use the filter sidebar and select the bypass_moderation filter to quickly find all users with bypass enabled or disabled.

Behavior When Bypass Is Enabled

When bypass_moderation is true for a user:

  • Chat messages: Sent immediately without running any moderation rules (AI text, blocklists, image moderation, etc.)
  • Feeds activities: Published immediately without moderation
  • Feed comments: Posted immediately without moderation
  • Check API: Returns without running any engines, for any entity type
  • Audit log: An audit log entry is created with BypassModeration: true to maintain observability

Bypass does not affect:

  • Manual flags raised by other users
  • Actions taken by human moderators
  • Ban or shadow-ban status

Server-side writes and force_moderation

Content created from your backend skips moderation by default. Set force_moderation: true to moderate a server-side write.

force_moderation is server-side only and ignored when sent from a client-side SDK.