Hype Train Begin
The channel.hype_train.begin subscription type sends a notification when a Hype Train begins on the specified channel. In addition to a channel.hype_train.begin event, one channel.hype_train.progress event will be sent for each contribution that caused the Hype Train to begin. EventSub does not make strong assurances about the order of message delivery, so it is possible to receive channel.hype_train.progress notifications before you receive the corresponding channel.hype_train.begin notification.
After the Hype Train begins, any additional cheers or subscriptions on the channel will cause channel.hype_train.progress notifications to be sent. When the Hype Train is over, channel.hype_train.end is emitted.
Subscription
- Type
channel.hype_train.begin- Version
2
Authorization
Requires one of the following:
- A user access token that includes the channel:read:hype_train scope.
- An app access token.The application, through prior authorization, must have been granted:
- The channel:read:hype_train scope for the user represented by the broadcaster_user_id event condition.
Subscription Request Body
typeStringRequiredThe subscription type name:channel.hype_train.begin.versionStringRequiredThe subscription type version:2.conditionObjectRequiredSubscription-specific parameters. Pass in the broadcaster user ID for the channel you want to Hype Train begin notifications for.Hide child attributesShow child attributes
condition.broadcaster_user_idStringRequiredThe ID of the broadcaster that you want to get Hype Train begin notifications for.
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 ID of the broadcaster that you want to get Hype Train begin notifications for.
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.idStringThe Hype Train ID.event.broadcaster_user_idStringThe requested broadcaster ID.event.broadcaster_user_loginStringThe requested broadcaster login.event.broadcaster_user_nameStringThe requested broadcaster display name.event.totalIntegerTotal points contributed to the Hype Train.event.progressIntegerThe number of points contributed to the Hype Train at the current level.event.goalIntegerThe number of points required to reach the next level.event.top_contributionsObject[]The contributors with the most points contributed.Hide child attributesShow child attributes
event.top_contributions.user_idStringThe ID of the user that made the contribution.event.top_contributions.user_loginStringThe user's login name.event.top_contributions.user_nameStringThe user's display name.event.top_contributions.typeStringThe contribution method used.Possible values
bitsBits contributions with Cheering and Power-ups.subscriptionSubscription activity like subscribing or gifting subscriptions.otherCovers other contribution methods not listed.
event.top_contributions.totalIntegerThe total amount contributed. If type is bits, total represents the amount of Bits used. If type is subscription, total is 500, 1000, or 2500 to represent tier 1, 2, or 3 subscriptions, respectively.
event.levelIntegerThe current level of the Hype Train.event.all_time_high_levelIntegerThe all-time high level this type of Hype Train has reached for this broadcaster.event.all_time_high_totalIntegerThe all-time high total this type of Hype Train has reached for this broadcaster.event.shared_train_participantsObject[]NullableNon-null for a shared Hype Train. Contains the list of broadcasters in the shared Hype Train.Hide child attributesShow child attributes
event.shared_train_participants.broadcaster_user_idStringThe ID of the broadcaster participating in the shared Hype Train.event.shared_train_participants.broadcaster_user_loginStringThe login of the broadcaster participating in the shared Hype Train.event.shared_train_participants.broadcaster_user_nameStringThe display name of the broadcaster participating in the shared Hype Train.
event.started_atStringThe time when the Hype Train started.event.expires_atStringThe time when the Hype Train expires. The expiration is extended when the Hype Train reaches a new level.event.typeStringThe type of the Hype Train.Possible values
treasuregolden_kapparegular
event.is_shared_trainBooleanIndicates if the Hype Train is shared. When true,shared_train_participantswill contain the list of broadcasters the train is shared with.
{
"type": "channel.hype_train.begin",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback",
"secret": "s3cRe7"
}
}{
"type": "channel.hype_train.begin",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "websocket",
"session_id": "AQoQexAWVYKSTIu4ec_2VAxyuhAB"
}
}{
"type": "channel.hype_train.begin",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "conduit",
"conduit_id": "bfcfc993-26b1-b876-44d9-afe75a379dac"
}
}{
"subscription": {
"id": "f1c2a387-161a-49f9-a165-0f21d7a4e1c4",
"type": "channel.hype_train.begin",
"version": "2",
"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": "1b0AsbInCHZW2SQFQkCzqN07Ib2",
"broadcaster_user_id": "1337",
"broadcaster_user_login": "cool_user",
"broadcaster_user_name": "Cool_User",
"total": 137,
"progress": 137,
"goal": 500,
"top_contributions": [
{
"user_id": "123",
"user_login": "pogchamp",
"user_name": "PogChamp",
"type": "bits",
"total": 50
}
],
"shared_train_participants": null,
"level": 1,
"started_at": "2020-07-15T17:16:03.17106713Z",
"expires_at": "2020-07-15T17:16:11.17106713Z",
"is_shared_train": false,
"type": "regular",
"all_time_high_level": 4,
"all_time_high_total": 2845
}
}Hype Train End
The channel.hype_train.end subscription type sends a notification when a Hype Train ends on the specified channel.
Subscription
- Type
channel.hype_train.end- Version
2
Authorization
Requires one of the following:
- A user access token that includes the channel:read:hype_train scope.
- An app access token.The application, through prior authorization, must have been granted:
- The channel:read:hype_train scope for the user represented by the broadcaster_user_id event condition.
Subscription Request Body
typeStringRequiredThe subscription type name:channel.hype_train.end.versionStringRequiredThe subscription type version:2.conditionObjectRequiredSubscription-specific parameters. Pass in the broadcaster user ID for the channel you want to Hype Train end notifications for.Hide child attributesShow child attributes
condition.broadcaster_user_idStringRequiredThe ID of the broadcaster that you want to get Hype Train end notifications for.
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 ID of the broadcaster that you want to get Hype Train end notifications for.
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.idStringThe Hype Train ID.event.broadcaster_user_idStringThe requested broadcaster ID.event.broadcaster_user_loginStringThe requested broadcaster login.event.broadcaster_user_nameStringThe requested broadcaster display name.event.totalIntegerTotal points contributed to the Hype Train.event.top_contributionsObject[]The contributors with the most points contributed.Hide child attributesShow child attributes
event.top_contributions.user_idStringThe ID of the user that made the contribution.event.top_contributions.user_loginStringThe user's login name.event.top_contributions.user_nameStringThe user's display name.event.top_contributions.typeStringThe contribution method used.Possible values
bitsBits contributions with Cheering, Power-ups, and Extensions.subscriptionSubscription activity like subscribing or gifting subscriptions.otherCovers other contribution methods not listed.
event.top_contributions.totalIntegerThe total amount contributed. If type is bits, total represents the amount of Bits used. If type is subscription, total is 500, 1000, or 2500 to represent tier 1, 2, or 3 subscriptions, respectively.
event.levelIntegerThe current level of the Hype Train.event.shared_train_participantsObject[]NullableNon-null for a shared Hype Train. Contains the list of broadcasters in the shared Hype Train.Hide child attributesShow child attributes
event.shared_train_participants.broadcaster_user_idStringThe ID of the broadcaster participating in the shared Hype Train.event.shared_train_participants.broadcaster_user_loginStringThe login of the broadcaster participating in the shared Hype Train.event.shared_train_participants.broadcaster_user_nameStringThe display name of the broadcaster participating in the shared Hype Train.
event.started_atStringThe time when the Hype Train started.event.cooldown_ends_atStringThe time when the Hype Train cooldown ends so that the next Hype Train can start.event.ended_atStringThe time when the Hype Train ended.event.typeStringThe type of the Hype Train.Possible values
treasuregolden_kapparegular
event.is_shared_trainBooleanIndicates if the Hype Train is shared. When true,shared_train_participantswill contain the list of broadcasters the train is shared with.
{
"type": "channel.hype_train.end",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback",
"secret": "s3cRe7"
}
}{
"type": "channel.hype_train.end",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "websocket",
"session_id": "AQoQexAWVYKSTIu4ec_2VAxyuhAB"
}
}{
"type": "channel.hype_train.end",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "conduit",
"conduit_id": "bfcfc993-26b1-b876-44d9-afe75a379dac"
}
}{
"subscription": {
"id": "f1c2a387-161a-49f9-a165-0f21d7a4e1c4",
"type": "channel.hype_train.end",
"version": "2",
"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": "1b0AsbInCHZW2SQFQkCzqN07Ib2",
"broadcaster_user_id": "1337",
"broadcaster_user_login": "cool_user",
"broadcaster_user_name": "Cool_User",
"total": 137,
"top_contributions": [
{
"user_id": "123",
"user_login": "pogchamp",
"user_name": "PogChamp",
"type": "bits",
"total": 50
}
],
"shared_train_participants": null,
"level": 1,
"started_at": "2020-07-15T17:16:03.17106713Z",
"ended_at": "2020-07-15T17:16:11.17106713Z",
"cooldown_ends_at": "2020-07-16T17:16:11.17106713Z",
"is_shared_train": false,
"type": "regular"
}
}Hype Train Progress
The channel.hype_train.progress subscription type sends a notification when a Hype Train makes progress on the specified channel. channel.hype_train.progress notifications are sent periodically while a Hype Train is making progress. EventSub does not make strong assurances about the order of message delivery, so it is possible to receive channel.hype_train.progress before you receive the corresponding channel.hype_train.begin.
When the Hype Train is over, channel.hype_train.end is emitted.
Subscription
- Type
channel.hype_train.progress- Version
2
Authorization
Requires one of the following:
- A user access token that includes the channel:read:hype_train scope.
- An app access token.The application, through prior authorization, must have been granted:
- The channel:read:hype_train scope for the user represented by the broadcaster_user_id event condition.
Subscription Request Body
typeStringRequiredThe subscription type name:channel.hype_train.progress.versionStringRequiredThe subscription type version:2.conditionObjectRequiredSubscription-specific parameters. Pass in the broadcaster user ID for the channel you want to Hype Train progress notifications for.Hide child attributesShow child attributes
condition.broadcaster_user_idStringRequiredThe ID of the broadcaster that you want to get Hype Train progress notifications for.
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 ID of the broadcaster that you want to get Hype Train progress notifications for.
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.idStringThe Hype Train ID.event.broadcaster_user_idStringThe requested broadcaster ID.event.broadcaster_user_loginStringThe requested broadcaster login.event.broadcaster_user_nameStringThe requested broadcaster display name.event.totalIntegerTotal points contributed to the Hype Train.event.progressIntegerThe number of points contributed to the Hype Train at the current level.event.goalIntegerThe number of points required to reach the next level.event.top_contributionsObject[]The contributors with the most points contributed.Hide child attributesShow child attributes
event.top_contributions.user_idStringThe ID of the user that made the contribution.event.top_contributions.user_loginStringThe user's login name.event.top_contributions.user_nameStringThe user's display name.event.top_contributions.typeStringThe contribution method used.Possible values
bitsBits contributions with Cheering, Power-ups, and Extensions.subscriptionSubscription activity like subscribing or gifting subscriptions.otherCovers other contribution methods not listed.
event.top_contributions.totalIntegerThe total amount contributed. If type is bits, total represents the amount of Bits used. If type is subscription, total is 500, 1000, or 2500 to represent tier 1, 2, or 3 subscriptions, respectively.
event.levelIntegerThe current level of the Hype Train.event.shared_train_participantsObject[]NullableNon-null for a shared Hype Train. Contains the list of broadcasters in the shared Hype Train.Hide child attributesShow child attributes
event.shared_train_participants.broadcaster_user_idStringThe ID of the broadcaster participating in the shared Hype Train.event.shared_train_participants.broadcaster_user_loginStringThe login of the broadcaster participating in the shared Hype Train.event.shared_train_participants.broadcaster_user_nameStringThe display name of the broadcaster participating in the shared Hype Train.
event.started_atStringThe time when the Hype Train started.event.expires_atStringThe time when the Hype Train expires. The expiration is extended when the Hype Train reaches a new level.event.typeStringThe type of the Hype Train.Possible values
treasuregolden_kapparegular
event.is_shared_trainBooleanIndicates if the Hype Train is shared. When true,shared_train_participantswill contain the list of broadcasters the train is shared with.
{
"type": "channel.hype_train.progress",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "webhook",
"callback": "https://example.com/webhooks/callback",
"secret": "s3cRe7"
}
}{
"type": "channel.hype_train.progress",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "websocket",
"session_id": "AQoQexAWVYKSTIu4ec_2VAxyuhAB"
}
}{
"type": "channel.hype_train.progress",
"version": "2",
"condition": {
"broadcaster_user_id": "1337"
},
"transport": {
"method": "conduit",
"conduit_id": "bfcfc993-26b1-b876-44d9-afe75a379dac"
}
}{
"subscription": {
"id": "f1c2a387-161a-49f9-a165-0f21d7a4e1c4",
"type": "channel.hype_train.progress",
"version": "2",
"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": "1b0AsbInCHZW2SQFQkCzqN07Ib2",
"broadcaster_user_id": "1337",
"broadcaster_user_login": "cool_user",
"broadcaster_user_name": "Cool_User",
"total": 137,
"progress": 137,
"goal": 500,
"top_contributions": [
{
"user_id": "123",
"user_login": "pogchamp",
"user_name": "PogChamp",
"type": "bits",
"total": 50
}
],
"shared_train_participants": null,
"level": 1,
"started_at": "2020-07-15T17:16:03.17106713Z",
"expires_at": "2020-07-15T17:16:11.17106713Z",
"is_shared_train": false,
"type": "regular"
}
}