openapi: 3.1.0 info: title: Twitch Drops Ads Moderation API description: APIs for game developers to create and manage Drops campaigns that grant in-game rewards to Twitch viewers watching streamers play their game. Drops campaigns are managed through the Twitch Developer Console and fulfilled via the Helix API entitlements endpoints. version: '1.0' contact: name: Twitch Developer Support url: https://dev.twitch.tv/support/ termsOfService: https://www.twitch.tv/p/legal/terms-of-service/ servers: - url: https://api.twitch.tv/helix description: Twitch Helix API Production security: - oauth2: [] tags: - name: Moderation description: Manage channel moderation including bans, blocks, and AutoMod paths: /moderation/banned: get: operationId: getBannedUsers summary: Twitch Get Banned Users description: Gets all users that the broadcaster has banned or timed out. tags: - Moderation parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string - name: user_id in: query schema: type: string - $ref: '#/components/parameters/first' - $ref: '#/components/parameters/after' - $ref: '#/components/parameters/before' responses: '200': description: Banned users returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BannedUser' pagination: $ref: '#/components/schemas/Pagination' /moderation/bans: post: operationId: banUser summary: Twitch Ban User description: Bans a user from participating in the specified broadcaster's chat room or times them out. tags: - Moderation parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string - name: moderator_id in: query required: true schema: type: string requestBody: required: true content: application/json: schema: type: object required: - data properties: data: type: object required: - user_id properties: user_id: type: string duration: type: integer description: Timeout duration in seconds (omit for permanent ban) reason: type: string responses: '200': description: User banned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BanResponse' '400': $ref: '#/components/responses/BadRequest' delete: operationId: unbanUser summary: Twitch Unban User description: Removes the ban or timeout on a user. tags: - Moderation parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string - name: moderator_id in: query required: true schema: type: string - name: user_id in: query required: true schema: type: string responses: '204': description: User unbanned successfully '400': $ref: '#/components/responses/BadRequest' /moderation/moderators: get: operationId: getModerators summary: Twitch Get Moderators description: Gets the moderators for the specified broadcaster's channel. tags: - Moderation parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string - name: user_id in: query schema: type: string - $ref: '#/components/parameters/first' - $ref: '#/components/parameters/after' responses: '200': description: Moderators returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Moderator' pagination: $ref: '#/components/schemas/Pagination' post: operationId: addChannelModerator summary: Twitch Add Channel Moderator description: Adds a moderator to the broadcaster's channel. tags: - Moderation parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string - name: user_id in: query required: true schema: type: string responses: '204': description: Moderator added successfully delete: operationId: removeChannelModerator summary: Twitch Remove Channel Moderator description: Removes a moderator from the broadcaster's channel. tags: - Moderation parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string - name: user_id in: query required: true schema: type: string responses: '204': description: Moderator removed successfully /moderation/automod/message: post: operationId: manageAutoModHeldMessage summary: Twitch Manage Held AutoMod Messages description: Allow or deny a message that was held by AutoMod. tags: - Moderation parameters: - $ref: '#/components/parameters/clientId' requestBody: required: true content: application/json: schema: type: object required: - user_id - msg_id - action properties: user_id: type: string msg_id: type: string action: type: string enum: - ALLOW - DENY responses: '204': description: AutoMod message managed successfully components: parameters: after: name: after in: query schema: type: string description: Cursor for forward pagination before: name: before in: query schema: type: string description: Cursor for backward pagination first: name: first in: query schema: type: integer default: 20 maximum: 100 description: Maximum number of items to return clientId: name: Client-Id in: header required: true schema: type: string description: Your registered application's client ID schemas: BannedUser: type: object properties: user_id: type: string user_login: type: string user_name: type: string expires_at: type: string format: date-time created_at: type: string format: date-time reason: type: string moderator_id: type: string moderator_login: type: string moderator_name: type: string Pagination: type: object properties: cursor: type: string description: Cursor value for pagination BanResponse: type: object properties: broadcaster_id: type: string moderator_id: type: string user_id: type: string created_at: type: string format: date-time end_time: type: string format: date-time nullable: true Error: type: object properties: error: type: string status: type: integer message: type: string Moderator: type: object properties: user_id: type: string user_login: type: string user_name: type: string responses: BadRequest: description: The request was invalid content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: oauth2: type: oauth2 flows: clientCredentials: tokenUrl: https://id.twitch.tv/oauth2/token scopes: {} externalDocs: description: Twitch Drops Documentation url: https://dev.twitch.tv/docs/drops/