Channel Poll Begin
The channel.poll.begin subscription type sends a notification when a poll begins on the specified channel.
Subscription
- Type
channel.poll.begin- Version
1
Authorization
Requires one of the following:
- A user access token that includes the channel:read:polls or channel:manage:polls scope.
- An app access token.The application, through prior authorization, must have been granted:
- The channel:read:polls or channel:manage:polls scope for the user represented by the broadcaster_user_id event condition.
Subscription Request Body
typeStringRequiredThe subscription type name:channel.poll.begin.versionStringRequiredThe subscription type version:1.conditionObjectRequiredSubscription-specific parameters. Pass in the broadcaster user ID for the channel you want to receive poll begin notifications for.Hide child attributesShow child attributes
condition.broadcaster_user_idStringRequiredThe broadcaster user ID of the channel for which "poll begin" notifications will be received.
transportObjectRequiredTransport-specific parameters.Hide child attributesShow child attributes
transport.methodStringRequiredThe transport method for EventSub.Possible values
webhookwebsocketconduit
transport.callbackStringThe callback URL where notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an Event.
Specify this field only if method is set to webhook.
NOTE: Redirects are not followed.
transport.secretStringThe secret used to verify the signature. The secret must be an ASCII string that's a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.
Specify this field only if the method is set to webhook.
transport.session_idStringAn ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.
Specify this field only if the method is set to websocket.
transport.conduit_idStringAn ID that identifies the conduit to send this notification to. When you create a conduit, the server returns the ID in the API response.
Specify this field only if the method is set to conduit.
Event Payload
subscriptionObjectMetadata about the subscription.Hide child attributesShow child attributes
subscription.idStringThe Subscription ID of the subscription.subscription.typeStringThe notification's subscription type.subscription.versionStringThe version of the subscription.subscription.statusStringThe status of the subscription.subscription.costIntegerHow much the subscription counts against your limit. See Subscription Limits for more information.subscription.conditionObjectSubscription-specific parameters.Hide child attributesShow child attributes
subscription.condition.broadcaster_user_idStringThe broadcaster user ID of the channel for which "poll begin" notifications will be received.
subscription.created_atStringThe time the notification was created.subscription.transportObjectTransport-specific parameters.Hide child attributesShow child attributes
subscription.transport.methodStringThe transport method for EventSub.Possible values
webhookwebsocketconduit
subscription.transport.callbackStringThe callback URL where notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an Event.
Specify this field only if method is set to webhook.
NOTE: Redirects are not followed.
subscription.transport.secretStringThe secret used to verify the signature. The secret must be an ASCII string that's a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.
Specify this field only if the method is set to webhook.
subscription.transport.session_idStringAn ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.
Specify this field only if the method is set to websocket.
subscription.transport.conduit_idStringAn ID that identifies the conduit to send this notification to. When you create a conduit, the server returns the ID in the API response.
Specify this field only if the method is set to conduit.
eventObjectThe event information.Hide child attributesShow child attributes
event.idStringID of the poll.event.broadcaster_user_idStringThe requested broadcaster ID.event.broadcaster_user_loginStringThe requested broadcaster login.event.broadcaster_user_nameStringThe requested broadcaster display name.event.titleStringQuestion displayed for the poll.event.choicesObject[]An array of choices for the poll.Hide child attributesShow child attributes
event.choices.idStringID for the choice.event.choices.titleStringText displayed for the choice.event.choices.bits_votesIntegerNot used; will be set to 0.event.choices.channel_points_votesIntegerNumber of votes received via Channel Points.event.choices.votesIntegerTotal number of votes received for the choice across all methods of voting.
event.bits_votingObjectNot supported.Hide child attributesShow child attributes
event.bits_voting.is_enabledBooleanNot used; will be set to false.event.bits_voting.amount_per_voteIntegerNot used; will be set to 0.
event.channel_points_votingObjectThe Channel Points voting settings for the poll.Hide child attributesShow child attributes
event.channel_points_voting.is_enabledBooleanIndicates if Channel Points can be used for voting.event.channel_points_voting.amount_per_voteIntegerNumber of Channel Points required to vote once with Channel Points.
event.started_atStringThe time the poll started.event.ends_atStringThe time the poll will end.
{
"type": "channel.poll.begin",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback",
"secret": "s3cRe7"
}
}{
"type": "channel.poll.begin",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "websocket",
"session_id": "AQoQexAWVYKSTIu4ec_2VAxyuhAB"
}
}{
"type": "channel.poll.begin",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "conduit",
"conduit_id": "bfcfc993-26b1-b876-44d9-afe75a379dac"
}
}{
"subscription": {
"id": "f1c2a387-161a-49f9-a165-0f21d7a4e1c4",
"type": "channel.poll.begin",
"version": "1",
"status": "enabled",
"cost": 0,
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback"
},
"created_at": "2019-11-16T10:11:12.634234626Z"
},
"event": {
"id": "1243456",
"broadcaster_user_id": "1337",
"broadcaster_user_login": "cool_user",
"broadcaster_user_name": "Cool_User",
"title": "Aren't shoes just really hard socks?",
"choices": [
{"id": "123", "title": "Yeah!"},
{"id": "124", "title": "No!"},
{"id": "125", "title": "Maybe!"}
],
"bits_voting": {
"is_enabled": true,
"amount_per_vote": 10
},
"channel_points_voting": {
"is_enabled": true,
"amount_per_vote": 10
},
"started_at": "2020-07-15T17:16:03.17106713Z",
"ends_at": "2020-07-15T17:16:08.17106713Z"
}
}Channel Poll End
The channel.poll.end subscription type sends a notification when a poll ends on the specified channel.
Subscription
- Type
channel.poll.end- Version
1
Authorization
Requires one of the following:
- A user access token that includes the channel:read:polls or channel:manage:polls scope.
- An app access token.The application, through prior authorization, must have been granted:
- The channel:read:polls or channel:manage:polls scope for the user represented by the broadcaster_user_id event condition.
Subscription Request Body
typeStringRequiredThe subscription type name:channel.poll.end.versionStringRequiredThe subscription type version:1.conditionObjectRequiredSubscription-specific parameters. Pass in the broadcaster user ID for the channel you want to receive poll end notifications for.Hide child attributesShow child attributes
condition.broadcaster_user_idStringRequiredThe broadcaster user ID of the channel for which "poll end" notifications will be received.
transportObjectRequiredTransport-specific parameters.Hide child attributesShow child attributes
transport.methodStringRequiredThe transport method for EventSub.Possible values
webhookwebsocketconduit
transport.callbackStringThe callback URL where notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an Event.
Specify this field only if method is set to webhook.
NOTE: Redirects are not followed.
transport.secretStringThe secret used to verify the signature. The secret must be an ASCII string that's a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.
Specify this field only if the method is set to webhook.
transport.session_idStringAn ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.
Specify this field only if the method is set to websocket.
transport.conduit_idStringAn ID that identifies the conduit to send this notification to. When you create a conduit, the server returns the ID in the API response.
Specify this field only if the method is set to conduit.
Event Payload
subscriptionObjectMetadata about the subscription.Hide child attributesShow child attributes
subscription.idStringThe Subscription ID of the subscription.subscription.typeStringThe notification's subscription type.subscription.versionStringThe version of the subscription.subscription.statusStringThe status of the subscription.subscription.costIntegerHow much the subscription counts against your limit. See Subscription Limits for more information.subscription.conditionObjectSubscription-specific parameters.Hide child attributesShow child attributes
subscription.condition.broadcaster_user_idStringThe broadcaster user ID of the channel for which "poll end" notifications will be received.
subscription.created_atStringThe time the notification was created.subscription.transportObjectTransport-specific parameters.Hide child attributesShow child attributes
subscription.transport.methodStringThe transport method for EventSub.Possible values
webhookwebsocketconduit
subscription.transport.callbackStringThe callback URL where notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an Event.
Specify this field only if method is set to webhook.
NOTE: Redirects are not followed.
subscription.transport.secretStringThe secret used to verify the signature. The secret must be an ASCII string that's a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.
Specify this field only if the method is set to webhook.
subscription.transport.session_idStringAn ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.
Specify this field only if the method is set to websocket.
subscription.transport.conduit_idStringAn ID that identifies the conduit to send this notification to. When you create a conduit, the server returns the ID in the API response.
Specify this field only if the method is set to conduit.
eventObjectThe event information.Hide child attributesShow child attributes
event.idStringID of the poll.event.broadcaster_user_idStringThe requested broadcaster ID.event.broadcaster_user_loginStringThe requested broadcaster login.event.broadcaster_user_nameStringThe requested broadcaster display name.event.titleStringQuestion displayed for the poll.event.choicesObject[]An array of choices for the poll. Includes vote counts.Hide child attributesShow child attributes
event.choices.idStringID for the choice.event.choices.titleStringText displayed for the choice.event.choices.bits_votesIntegerNot used; will be set to 0.event.choices.channel_points_votesIntegerNumber of votes received via Channel Points.event.choices.votesIntegerTotal number of votes received for the choice across all methods of voting.
event.bits_votingObjectNot supported.Hide child attributesShow child attributes
event.bits_voting.is_enabledBooleanNot used; will be set to false.event.bits_voting.amount_per_voteIntegerNot used; will be set to 0.
event.channel_points_votingObjectThe Channel Points voting settings for the poll.Hide child attributesShow child attributes
event.channel_points_voting.is_enabledBooleanIndicates if Channel Points can be used for voting.event.channel_points_voting.amount_per_voteIntegerNumber of Channel Points required to vote once with Channel Points.
event.statusStringThe status of the poll. Valid values are completed, archived, and terminated.event.started_atStringThe time the poll started.event.ended_atStringThe time the poll ended.
{
"type": "channel.poll.end",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback",
"secret": "s3cRe7"
}
}{
"type": "channel.poll.end",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "websocket",
"session_id": "AQoQexAWVYKSTIu4ec_2VAxyuhAB"
}
}{
"type": "channel.poll.end",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "conduit",
"conduit_id": "bfcfc993-26b1-b876-44d9-afe75a379dac"
}
}{
"subscription": {
"id": "f1c2a387-161a-49f9-a165-0f21d7a4e1c4",
"type": "channel.poll.end",
"version": "1",
"status": "enabled",
"cost": 0,
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback"
},
"created_at": "2019-11-16T10:11:12.634234626Z"
},
"event": {
"id": "1243456",
"broadcaster_user_id": "1337",
"broadcaster_user_login": "cool_user",
"broadcaster_user_name": "Cool_User",
"title": "Aren't shoes just really hard socks?",
"choices": [
{"id": "123", "title": "Blue", "bits_votes": 50, "channel_points_votes": 70, "votes": 120},
{"id": "124", "title": "Yellow", "bits_votes": 100, "channel_points_votes": 40, "votes": 140},
{"id": "125", "title": "Green", "bits_votes": 10, "channel_points_votes": 70, "votes": 80}
],
"bits_voting": {
"is_enabled": true,
"amount_per_vote": 10
},
"channel_points_voting": {
"is_enabled": true,
"amount_per_vote": 10
},
"status": "completed",
"started_at": "2020-07-15T17:16:03.17106713Z",
"ended_at": "2020-07-15T17:16:11.17106713Z"
}
}Channel Poll Progress
The channel.poll.progress subscription type sends a notification when users respond to a poll on the specified channel.
Subscription
- Type
channel.poll.progress- Version
1
Authorization
Requires one of the following:
- A user access token that includes the channel:read:polls or channel:manage:polls scope.
- An app access token.The application, through prior authorization, must have been granted:
- The channel:read:polls or channel:manage:polls scope for the user represented by the broadcaster_user_id event condition.
Subscription Request Body
typeStringRequiredThe subscription type name:channel.poll.progress.versionStringRequiredThe subscription type version:1.conditionObjectRequiredSubscription-specific parameters. Pass in the broadcaster user ID for the channel you want to receive poll progress notifications for.Hide child attributesShow child attributes
condition.broadcaster_user_idStringRequiredThe broadcaster user ID of the channel for which "poll progress" notifications will be received.
transportObjectRequiredTransport-specific parameters.Hide child attributesShow child attributes
transport.methodStringRequiredThe transport method for EventSub.Possible values
webhookwebsocketconduit
transport.callbackStringThe callback URL where notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an Event.
Specify this field only if method is set to webhook.
NOTE: Redirects are not followed.
transport.secretStringThe secret used to verify the signature. The secret must be an ASCII string that's a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.
Specify this field only if the method is set to webhook.
transport.session_idStringAn ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.
Specify this field only if the method is set to websocket.
transport.conduit_idStringAn ID that identifies the conduit to send this notification to. When you create a conduit, the server returns the ID in the API response.
Specify this field only if the method is set to conduit.
Event Payload
subscriptionObjectMetadata about the subscription.Hide child attributesShow child attributes
subscription.idStringThe Subscription ID of the subscription.subscription.typeStringThe notification's subscription type.subscription.versionStringThe version of the subscription.subscription.statusStringThe status of the subscription.subscription.costIntegerHow much the subscription counts against your limit. See Subscription Limits for more information.subscription.conditionObjectSubscription-specific parameters.Hide child attributesShow child attributes
subscription.condition.broadcaster_user_idStringThe broadcaster user ID of the channel for which "poll progress" notifications will be received.
subscription.created_atStringThe time the notification was created.subscription.transportObjectTransport-specific parameters.Hide child attributesShow child attributes
subscription.transport.methodStringThe transport method for EventSub.Possible values
webhookwebsocketconduit
subscription.transport.callbackStringThe callback URL where notifications are sent. The URL must use the HTTPS protocol and port 443. See Processing an Event.
Specify this field only if method is set to webhook.
NOTE: Redirects are not followed.
subscription.transport.secretStringThe secret used to verify the signature. The secret must be an ASCII string that's a minimum of 10 characters long and a maximum of 100 characters long. For information about how the secret is used, see Verifying the event message.
Specify this field only if the method is set to webhook.
subscription.transport.session_idStringAn ID that identifies the WebSocket to send notifications to. When you connect to EventSub using WebSockets, the server returns the ID in the Welcome message.
Specify this field only if the method is set to websocket.
subscription.transport.conduit_idStringAn ID that identifies the conduit to send this notification to. When you create a conduit, the server returns the ID in the API response.
Specify this field only if the method is set to conduit.
eventObjectThe event information.Hide child attributesShow child attributes
event.idStringID of the poll.event.broadcaster_user_idStringThe requested broadcaster ID.event.broadcaster_user_loginStringThe requested broadcaster login.event.broadcaster_user_nameStringThe requested broadcaster display name.event.titleStringQuestion displayed for the poll.event.choicesObject[]An array of choices for the poll. Includes vote counts.Hide child attributesShow child attributes
event.choices.idStringID for the choice.event.choices.titleStringText displayed for the choice.event.choices.bits_votesIntegerNot used; will be set to 0.event.choices.channel_points_votesIntegerNumber of votes received via Channel Points.event.choices.votesIntegerTotal number of votes received for the choice across all methods of voting.
event.bits_votingObjectNot supported.Hide child attributesShow child attributes
event.bits_voting.is_enabledBooleanNot used; will be set to false.event.bits_voting.amount_per_voteIntegerNot used; will be set to 0.
event.channel_points_votingObjectThe Channel Points voting settings for the poll.Hide child attributesShow child attributes
event.channel_points_voting.is_enabledBooleanIndicates if Channel Points can be used for voting.event.channel_points_voting.amount_per_voteIntegerNumber of Channel Points required to vote once with Channel Points.
event.started_atStringThe time the poll started.event.ends_atStringThe time the poll will end.
{
"type": "channel.poll.progress",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback",
"secret": "s3cRe7"
}
}{
"type": "channel.poll.progress",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "websocket",
"session_id": "AQoQexAWVYKSTIu4ec_2VAxyuhAB"
}
}{
"type": "channel.poll.progress",
"version": "1",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "conduit",
"conduit_id": "bfcfc993-26b1-b876-44d9-afe75a379dac"
}
}{
"subscription": {
"id": "f1c2a387-161a-49f9-a165-0f21d7a4e1c4",
"type": "channel.poll.progress",
"version": "1",
"status": "enabled",
"cost": 0,
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback"
},
"created_at": "2019-11-16T10:11:12.634234626Z"
},
"event": {
"id": "1243456",
"broadcaster_user_id": "1337",
"broadcaster_user_login": "cool_user",
"broadcaster_user_name": "Cool_User",
"title": "Aren't shoes just really hard socks?",
"choices": [
{"id": "123", "title": "Yeah!", "bits_votes": 5, "channel_points_votes": 7, "votes": 12},
{"id": "124", "title": "No!", "bits_votes": 10, "channel_points_votes": 4, "votes": 14},
{"id": "125", "title": "Maybe!", "bits_votes": 0, "channel_points_votes": 7, "votes": 7}
],
"bits_voting": {
"is_enabled": true,
"amount_per_vote": 10
},
"channel_points_voting": {
"is_enabled": true,
"amount_per_vote": 10
},
"started_at": "2020-07-15T17:16:03.17106713Z",
"ends_at": "2020-07-15T17:16:08.17106713Z"
}
}