openapi: 3.1.0 info: title: Twitch Drops Ads Chat 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: Chat description: Manage chat settings, emotes, badges, and announcements paths: /chat/emotes: get: operationId: getChannelEmotes summary: Twitch Get Channel Emotes description: Gets the list of emotes available for the specified channel. tags: - Chat parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string responses: '200': description: Channel emotes returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Emote' template: type: string '401': $ref: '#/components/responses/Unauthorized' /chat/emotes/global: get: operationId: getGlobalEmotes summary: Twitch Get Global Emotes description: Gets all global emotes available on Twitch. tags: - Chat parameters: - $ref: '#/components/parameters/clientId' responses: '200': description: Global emotes returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Emote' template: type: string /chat/emotes/set: get: operationId: getEmoteSets summary: Twitch Get Emote Sets description: Gets emotes for one or more specified emote sets. tags: - Chat parameters: - $ref: '#/components/parameters/clientId' - name: emote_set_id in: query required: true schema: type: string responses: '200': description: Emote sets returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Emote' template: type: string /chat/badges: get: operationId: getChannelChatBadges summary: Twitch Get Channel Chat Badges description: Gets the chat badges for the specified channel. tags: - Chat parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string responses: '200': description: Chat badges returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ChatBadgeSet' /chat/badges/global: get: operationId: getGlobalChatBadges summary: Twitch Get Global Chat Badges description: Gets Twitch's list of global chat badges. tags: - Chat parameters: - $ref: '#/components/parameters/clientId' responses: '200': description: Global chat badges returned content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ChatBadgeSet' /chat/settings: get: operationId: getChatSettings summary: Twitch Get Chat Settings description: Gets the chat settings for the specified broadcaster's channel. tags: - Chat parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string - name: moderator_id in: query schema: type: string responses: '200': description: Chat settings returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ChatSettings' patch: operationId: updateChatSettings summary: Twitch Update Chat Settings description: Updates the chat settings for the specified broadcaster's channel. tags: - Chat 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: $ref: '#/components/schemas/ChatSettingsUpdate' responses: '200': description: Chat settings updated successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ChatSettings' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /chat/announcements: post: operationId: sendChatAnnouncement summary: Twitch Send Chat Announcement description: Sends an announcement to the broadcaster's chat room. tags: - Chat 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: - message properties: message: type: string description: The announcement message color: type: string enum: - blue - green - orange - purple - primary responses: '204': description: Announcement sent successfully '400': $ref: '#/components/responses/BadRequest' /chat/chatters: get: operationId: getChatters summary: Twitch Get Chatters description: Gets the list of users in the specified broadcaster's chat. tags: - Chat 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 - $ref: '#/components/parameters/first' - $ref: '#/components/parameters/after' responses: '200': description: Chatters returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Chatter' pagination: $ref: '#/components/schemas/Pagination' total: type: integer /chat/messages: post: operationId: sendChatMessage summary: Twitch Send Chat Message description: Sends a message to the broadcaster's chat room. tags: - Chat parameters: - $ref: '#/components/parameters/clientId' requestBody: required: true content: application/json: schema: type: object required: - broadcaster_id - sender_id - message properties: broadcaster_id: type: string sender_id: type: string message: type: string reply_parent_message_id: type: string responses: '200': description: Message sent successfully content: application/json: schema: type: object properties: data: type: array items: type: object properties: message_id: type: string is_sent: type: boolean '400': $ref: '#/components/responses/BadRequest' components: parameters: after: name: after in: query schema: type: string description: Cursor for forward 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: Emote: type: object properties: id: type: string name: type: string images: type: object properties: url_1x: type: string url_2x: type: string url_4x: type: string tier: type: string emote_type: type: string enum: - bitstier - follower - subscriptions emote_set_id: type: string format: type: array items: type: string enum: - static - animated scale: type: array items: type: string enum: - '1.0' - '2.0' - '3.0' theme_mode: type: array items: type: string enum: - light - dark ChatBadgeSet: type: object properties: set_id: type: string versions: type: array items: type: object properties: id: type: string image_url_1x: type: string image_url_2x: type: string image_url_4x: type: string title: type: string description: type: string click_action: type: string click_url: type: string ChatSettingsUpdate: type: object properties: emote_mode: type: boolean follower_mode: type: boolean follower_mode_duration: type: integer non_moderator_chat_delay: type: boolean non_moderator_chat_delay_duration: type: integer slow_mode: type: boolean slow_mode_wait_time: type: integer subscriber_mode: type: boolean unique_chat_mode: type: boolean Pagination: type: object properties: cursor: type: string description: Cursor value for pagination Error: type: object properties: error: type: string status: type: integer message: type: string Chatter: type: object properties: user_id: type: string user_login: type: string user_name: type: string ChatSettings: type: object properties: broadcaster_id: type: string emote_mode: type: boolean follower_mode: type: boolean follower_mode_duration: type: integer nullable: true moderator_id: type: string non_moderator_chat_delay: type: boolean non_moderator_chat_delay_duration: type: integer nullable: true slow_mode: type: boolean slow_mode_wait_time: type: integer nullable: true subscriber_mode: type: boolean unique_chat_mode: type: boolean responses: Unauthorized: description: Authentication required or token is invalid content: application/json: schema: $ref: '#/components/schemas/Error' 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/