openapi: 3.1.0 info: title: Twitch Drops Ads Channels 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: Channels description: Manage channel information and editors paths: /channels: get: operationId: getChannelInformation summary: Twitch Get Channel Information description: Gets information about one or more channels. tags: - Channels parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string description: The ID of the broadcaster responses: '200': description: Channel information returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Channel' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' patch: operationId: modifyChannelInformation summary: Twitch Modify Channel Information description: Updates a channel's properties. tags: - Channels parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string description: The ID of the broadcaster requestBody: required: true content: application/json: schema: type: object properties: game_id: type: string description: The current game/category ID broadcaster_language: type: string description: The language of the channel (BCP 47) title: type: string description: The title of the stream delay: type: integer description: Stream delay in seconds tags: type: array items: type: string description: Channel tags responses: '204': description: Channel updated successfully '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /channels/editors: get: operationId: getChannelEditors summary: Twitch Get Channel Editors description: Gets a list of users who are editors for the specified channel. tags: - Channels parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string responses: '200': description: Channel editors returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ChannelEditor' '401': $ref: '#/components/responses/Unauthorized' /channels/followers: get: operationId: getChannelFollowers summary: Twitch Get Channel Followers description: Gets a list of users that follow the specified broadcaster. tags: - Channels parameters: - $ref: '#/components/parameters/clientId' - name: broadcaster_id in: query required: true schema: type: string - name: user_id in: query schema: type: string description: Filter by specific follower user ID - $ref: '#/components/parameters/first' - $ref: '#/components/parameters/after' responses: '200': description: Followers returned successfully content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Follower' pagination: $ref: '#/components/schemas/Pagination' total: type: integer '401': $ref: '#/components/responses/Unauthorized' 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: 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 Channel: type: object properties: broadcaster_id: type: string broadcaster_login: type: string broadcaster_name: type: string broadcaster_language: type: string game_id: type: string game_name: type: string title: type: string delay: type: integer tags: type: array items: type: string content_classification_labels: type: array items: type: string is_branded_content: type: boolean ChannelEditor: type: object properties: user_id: type: string user_name: type: string created_at: type: string format: date-time Follower: type: object properties: user_id: type: string user_login: type: string user_name: type: string followed_at: type: string format: date-time 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/