Moderation
Promotes a user to moderator in the specified Twitch channel. To demote a moderator, use Remove Moderator.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to promote the specified user in |
| User Name | String | The username of the person to be promoted |
channel:manage:moderators and user:read:email Twitch scopes.
Twitch API Endpoint: POST /helix/moderation/moderators
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster adding the moderator |
| user_id | String | The ID of the user to add as moderator |
Removes moderator status from a user in the specified Twitch channel.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to demote the specified user in |
| User Name | String | The username of the person to be demoted |
channel:manage:moderators and user:read:email Twitch scopes.
Twitch API Endpoint: DELETE /helix/moderation/moderators
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster removing the moderator |
| user_id | String | The ID of the user to remove from moderators |
Promotes a user to VIP in the specified Twitch channel. To remove VIP status, use Remove VIP.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to promote the specified user in |
| User Name | String | The username of the person to be promoted |
channel:manage:vips and user:read:email Twitch scopes.
Twitch API Endpoint: POST /helix/channels/vips
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster adding the VIP |
| user_id | String | The ID of the user to add as VIP |
Removes VIP status from a user in the specified Twitch channel.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to demote the specified user in |
| User Name | String | The username of the person to be demoted |
channel:manage:vips and user:read:email Twitch scopes.
Twitch API Endpoint: DELETE /helix/channels/vips
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster removing the VIP |
| user_id | String | The ID of the user to remove from VIPs |
Starts a raid, which sends the current viewers to the specified target channel after a 90 second countdown.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel to start the raid in |
| Raid Target | String | Channel to raid |
channel:manage:raids Twitch scope. The broadcaster can still cancel the raid before the countdown finishes.
Twitch API Endpoint: POST /helix/raids
| Request Field | Type | Description |
|---|---|---|
| from_broadcaster_id | String | The ID of the broadcaster initiating the raid |
| to_broadcaster_id | String | The ID of the broadcaster to raid |
Cancels an ongoing raid, as long as the countdown timer has not expired and the broadcaster has not clicked the Raid Now button.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to cancel the ongoing raid in |
channel:manage:raids Twitch scope.
Twitch API Endpoint: DELETE /helix/raids
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster who initiated the raid to cancel |
Bans a user from participating in the specified broadcaster’s chat room. To remove the ban, use Unban User.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to ban the specified user in |
| User Name | String | The username of the person to be banned |
| Reason | String | (optional) The reason why you are banning them (max 500 characters) |
moderator:manage:banned_users and user:read:email Twitch scopes.
Twitch API Endpoint: POST /helix/moderation/bans
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat room the user is banned from |
| moderator_id | String | The ID of the moderator or broadcaster banning the user |
| data.user_id | String | The ID of the user to ban |
| data.reason | String | Optional. The reason for the ban |
Removes the ban or timeout for the specified user in the selected Twitch channel.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to unban/untimeout the specified user in |
| User Name | String | The username of the person to unban/untimeout |
moderator:manage:banned_users and user:read:email Twitch scopes.
Twitch API Endpoint: DELETE /helix/moderation/bans
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat room the user is unbanned from |
| moderator_id | String | The ID of the moderator or broadcaster removing the ban |
| user_id | String | The ID of the user to unban or remove timeout from |
Times out a user from participating in the specified broadcaster’s chat room for the specified amount of time. To remove the timeout, use Unban User.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to timeout the specified user in |
| User Name | String | The username of the person to be timed out |
| Duration | Number | How long to timeout the user, in seconds. If left blank, defaults to 5 minutes (300 seconds). |
| Reason | String | (optional) The reason why you are timing them out (max 500 characters) |
moderator:manage:banned_users and user:read:email Twitch scopes.
Twitch API Endpoint: POST /helix/moderation/bans
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat room the user is timed out from |
| moderator_id | String | The ID of the moderator or broadcaster applying the timeout |
| data.user_id | String | The ID of the user to time out |
| data.duration | Integer | The duration of the timeout in seconds (max 1,209,600 — 2 weeks) |
| data.reason | String | Optional. The reason for the timeout |
Sets the color of your username in all chat rooms to one of the default Twitch colors.
For Turbo/Prime members who can set any color, use the button at the bottom of the section.
To get a user’s current color, use Get User Color
| Box Name | Type | Description |
|---|---|---|
| Login Name | Dropdown | The name of the channel to use for authentication in the API Header |
| Color | Dropdown | List of the standard colours that Twitch offers for all users. |
user:manage:chat_color Twitch scope.
Twitch API Endpoint: PUT /helix/chat/color
| Request Field | Type | Description |
|---|---|---|
| user_id | String | The ID of the user whose chat color to update |
| color | String | The color to use for the user’s name in chat. Turbo/Prime users may use hex (#9146FF). Standard options: blue, blue_violet, cadet_blue, chocolate, coral, dodger_blue, firebrick, golden_rod, green, hot_pink, orange_red, red, sea_green, spring_green, yellow_green |
Enables or disables Slow Mode in the specified channel. Slow Mode restricts how often users can talk in a channel to once per specified amount of time. VIPs and Moderators are not restricted.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to set Slow Mode for |
| Enabled | Dropdown | Enable/Disable |
| Time | Number | Amount of time, in seconds, that users must wait before they can chat again |
moderator:manage:chat_settings Twitch scope.
Twitch API Endpoint: PATCH /helix/chat/settings
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat settings are being updated |
| moderator_id | String | The ID of a moderator or the broadcaster |
| slow_mode | Boolean | Set to true to enable Slow Mode, false to disable |
| slow_mode_wait_time | Integer | Optional. Time in seconds users must wait before chatting again (3–120) |
Enables or disables Follower-Only Mode in the specified channel. Follower-Only Mode restricts who can talk in a channel to only followers who have been following for the specified amount of time. VIPs and Moderators are not restricted.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to set Follower-Only Mode for |
| Enabled | Dropdown | Enable/Disable |
| Time | Dropdown | Specific amounts of time that users need to have followed for |
moderator:manage:chat_settings Twitch scope.
Twitch API Endpoint: PATCH /helix/chat/settings
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat settings are being updated |
| moderator_id | String | The ID of a moderator or the broadcaster |
| follower_mode | Boolean | Set to true to enable Follower-Only Mode, false to disable |
| follower_mode_duration | Integer | Optional. Minimum follow duration in minutes required to chat (0–129600). Omit or set to 0 for any follower |
Enables or disables Subscriber-Only Mode in the specified channel. Subscriber-Only Mode restricts who can talk in a channel to only subscribers. VIPs and Moderators are not restricted.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to set Subscriber-Only Mode for |
| Enabled | Dropdown | Enable/Disable |
moderator:manage:chat_settings Twitch scope.
Twitch API Endpoint: PATCH /helix/chat/settings
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat settings are being updated |
| moderator_id | String | The ID of a moderator or the broadcaster |
| subscriber_mode | Boolean | Set to true to enable Subscriber-Only Mode, false to disable |
Enables or disables Emote-Only Mode in the specified channel. Emote-Only Mode restricts what can be said in chat to only emotes. VIPs and Moderators are not restricted.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to set Emote-Only Mode for |
| Enabled | Dropdown | Enable/Disable |
moderator:manage:chat_settings Twitch scope.
Twitch API Endpoint: PATCH /helix/chat/settings
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat settings are being updated |
| moderator_id | String | The ID of a moderator or the broadcaster |
| emote_mode | Boolean | Set to true to enable Emote-Only Mode, false to disable |
Toggles Shield Mode on/off for the specified channel. Click here for more information on Shield Mode.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel to toggle Shield Mode for |
| Enabled | Dropdown | Enable/Disable |
moderator:manage:shield_mode Twitch scope.
Twitch API Endpoint: PUT /helix/moderation/shield_mode
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose Shield Mode to activate or deactivate |
| moderator_id | String | The ID of the moderator or broadcaster toggling Shield Mode |
| is_active | Boolean | Set to true to activate Shield Mode, false to deactivate |
Starts a commercial on the specified channel.
Can only be started by the broadcaster's account (will fail if sent as another account)
| Box Name | Type | Description |
|---|---|---|
| Channel Name | String | Channel to play the ad on. Leave blank to use default account |
| Duration | Number | Requested length of commercial, in seconds. May result in a different duration to request. Should not be more than 180 seconds. |
| Save Variable As | String | Variable to save the result |
Saved Payload:
| Variable name | Type | Description |
|---|---|---|
| length | Number | Duration of the commercial, in seconds |
| message | String | A message that indicates whether Twitch was able to serve an ad |
| retry_after | Number | The number of seconds you must wait before running another ad. |
undefined if Twitch rejects the ad request.
Twitch API Endpoint: POST /helix/channels/commercial
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the partner or affiliate broadcaster that wants to run a commercial |
| length | Integer | Desired duration of the commercial in seconds. Valid values: 30, 60, 90, 120, 150, 180 |
Updates a channel’s information, such as category, title, language, and tags. Leave a box blank to not update that information. Requires at least 1 field to update.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to change the information for |
| Category | String | Category of the stream (game name, “Just Chatting”, etc.) |
| Language | Dropdown | The ISO 639-1 2 letter language code. Select from dropdown menu or manually input |
| Title | String | Title of the stream (max 140 characters) |
| Tags | Stringified array | Tags to apply to the channel, as a stringified array (["Tag1", "Tag2"]). Max 10 tags, max 25 characters each. |
channel:manage:broadcast Twitch scope.
Twitch API Endpoint: PATCH /helix/channels
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose channel information is being updated |
| game_id | String | Optional. The ID of the game (category) to update to |
| broadcaster_language | String | Optional. ISO 639-1 two-letter language code (e.g. en, de) or other |
| title | String | Optional. The title of the stream (max 140 characters) |
| tags | Array | Optional. Array of tag strings to apply to the channel (max 10 tags) |
Enabling this setting prevents users from posting non-unique messages to the channel.
It can be used to combat spam so that users cannot send the same things in chat multiple times.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | Dropdown | The Twitch channel the command will be used for. |
| Enabled | Choice | Enabled: Turns the setting on. Disabled: Turns the setting off. |
moderator:manage:chat_settings Twitch scope.
Twitch API Endpoint: PATCH /helix/chat/settings
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat settings are being updated |
| moderator_id | String | The ID of a moderator or the broadcaster |
| unique_chat_mode | Boolean | Set to true to require unique messages only, false to disable |
Gets AutoMod settings for a Twitch channel. This only works for channels linked and authorized to be used with SAMMI.
If Channel is empty, SAMMI uses the default Twitch account. The response is saved as an object containing the AutoMod level fields returned by Twitch.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to get AutoMod settings for. This can be left empty. |
| Save Variable As | String | Name of the variable to save the response as. If the response is 0, AutoMod settings for that function has not been turned on. If it is 1, it has been turned on. |
Saved Payload:
SAMMI saves the first AutoMod settings object returned by Twitch (data[0]).
| Variable Name | Type | Description |
|---|---|---|
| broadcaster_id | String | Twitch User ID of the broadcaster. |
| moderator_id | String | Twitch User ID of the moderator account used for the request. |
| overall_level | Number | Overall AutoMod level. Twitch may return null if individual settings are used. |
| disability | Number | AutoMod level for disability-related terms. |
| aggression | Number | AutoMod level for aggression. |
| sexuality_sex_or_gender | Number | AutoMod level for sexuality, sex, or gender terms. |
| misogyny | Number | AutoMod level for misogyny. |
| bullying | Number | AutoMod level for bullying. |
| swearing | Number | AutoMod level for swearing. |
| race_ethnicity_or_religion | Number | AutoMod level for race, ethnicity, or religion terms. |
| sex_based_terms | Number | AutoMod level for sex-based terms. |
moderator:read:automod_settings and user:read:email Twitch scopes.
Twitch API Endpoint: GET /helix/moderation/automod/settings
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose AutoMod settings to get |
| moderator_id | String | The ID of the moderator or broadcaster making the request |
Sets AutoMod settings for a Twitch channel. This only works for channels linked and authorized to be used with SAMMI.
Moderation levels available: as provided by Twitch:
- AutoMod Off
- A Little Moderation
- Some Moderation
- More Moderation
- A Lot of Moderation
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to get AutoMod settings for. This can be left empty. |
| Level | Dropdown | Dropdown selection of AutoMod levels available. |
moderator:manage:automod_settings Twitch scope.
Twitch API Endpoint: PUT /helix/moderation/automod/settings
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose AutoMod settings to update |
| moderator_id | String | The ID of the moderator or broadcaster making the request |
| overall_level | Integer | Optional. Global AutoMod level (0–4). Setting this overrides all individual category levels |
| disability | Integer | Optional. AutoMod level for disability-related terms (0–4) |
| aggression | Integer | Optional. AutoMod level for aggression (0–4) |
| sexuality_sex_or_gender | Integer | Optional. AutoMod level for sexuality, sex, or gender terms (0–4) |
| misogyny | Integer | Optional. AutoMod level for misogyny (0–4) |
| bullying | Integer | Optional. AutoMod level for bullying (0–4) |
| swearing | Integer | Optional. AutoMod level for swearing (0–4) |
| race_ethnicity_or_religion | Integer | Optional. AutoMod level for race, ethnicity, or religion (0–4) |
| sex_based_terms | Integer | Optional. AutoMod level for sex-based terms (0–4) |
Adds a new blocked term to the specified Twitch channel.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to add new blocked term |
| Term | String | New term to be blocked |
moderator:manage:blocked_terms Twitch scope.
Twitch API Endpoint: POST /helix/moderation/blocked_terms
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose blocked terms list to add to |
| moderator_id | String | The ID of the moderator or broadcaster adding the term |
| text | String | The term to block (2–500 characters). Supports wildcards with * |
Removes a blocked term from the specified Twitch channel.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | Channel name to remove blocked term from |
| Term ID | String | ID of term to be removed. Can be retrieved from Twitch: Get Blocked Terms. |
moderator:manage:blocked_terms Twitch scope.
Twitch API Endpoint: DELETE /helix/moderation/blocked_terms
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose blocked terms list to remove from |
| moderator_id | String | The ID of the moderator or broadcaster removing the term |
| id | String | The ID of the blocked term to remove |
Warns a user with a specified message. Warnings force users to acknowledge the message you warn them with.
If Channel is empty, SAMMI uses the default Twitch account.
| Box Name | Type | Description |
|---|---|---|
| Channel | String | The channel to warn the specified user in |
| User Name | String | The username of the person to be warned |
| Reason | String | (optional) The reason why you are warning them |
moderator:manage:warnings and user:read:email Twitch scopes.
Twitch API Endpoint: POST /helix/moderation/warnings
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster whose chat room the warning applies to |
| moderator_id | String | The ID of the moderator or broadcaster issuing the warning |
| data.user_id | String | The ID of the user to warn |
| data.reason | String | The reason the user is being warned |
Blocks a Twitch user for the specified account. For more information, check out the Twitch API Reference Guide for Block User.
| Box Name | Type | Description |
|---|---|---|
| Channel | Dropdown | Twitch account to block the user from. |
| User Name | String | The username of the person to block. |
user:manage:blocked_users and user:read:email Twitch scopes.
Twitch API Endpoint: PUT /helix/users/blocks
| Request Field | Type | Description |
|---|---|---|
| target_user_id | String | The ID of the user to block |
| source_context | String | Optional. Context for blocking the user: chat, whisper |
| reason | String | Optional. Reason for blocking: harassment, spam, other |
Unblocks a Twitch user for the specified account. For more information, check out the Twitch API Reference Guide for Unblock User.
| Box Name | Type | Description |
|---|---|---|
| Channel | Dropdown | Twitch account to unblock the user from. |
| User Name | String | The username of the person to unblock. |
user:manage:blocked_users and user:read:email Twitch scopes.
Twitch API Endpoint: DELETE /helix/users/blocks
| Request Field | Type | Description |
|---|---|---|
| target_user_id | String | The ID of the user to unblock |
Flags a Twitch user as suspicious in the specified channel. For more information, check out the Twitch API Reference Guide for Add Suspicious Status to Chat User.
| Box Name | Type | Description |
|---|---|---|
| Channel | Dropdown | Twitch channel to flag the user in. |
| User Name | String | The username of the person to flag. |
| Status | Dropdown | Suspicious user status to apply: Active Monitoring or Restricted. |
moderator:manage:suspicious_users and user:read:email Twitch scopes.
Twitch API Endpoint: POST /helix/moderation/suspicious_users
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster’s channel to flag the user in |
| moderator_id | String | The ID of the moderator flagging the user |
| user_id | String | The ID of the user to flag as suspicious |
| status | String | Suspicious status to apply: active_monitoring or restricted |
Removes the suspicious user status from a Twitch user in the specified channel. For more information, check out the Twitch API Reference Guide for Remove Suspicious Status From Chat User.
| Box Name | Type | Description |
|---|---|---|
| Channel | Dropdown | Twitch channel to remove the status in. |
| User Name | String | The username of the person to update. |
moderator:manage:suspicious_users and user:read:email Twitch scopes.
Twitch API Endpoint: DELETE /helix/moderation/suspicious_users
| Request Field | Type | Description |
|---|---|---|
| broadcaster_id | String | The ID of the broadcaster’s channel to remove the suspicious status in |
| moderator_id | String | The ID of the moderator removing the status |
| user_id | String | The ID of the user to remove the suspicious status from |
