Content Classification Labels are now available via EventSub in an open beta

Recently, Content Classification Labels were announced so viewers can make informed choices about what content they watch when it is clearly defined. As this is an important feature for third-party creator workflows and viewing experiences, this information has been added to EventSub as an open beta and will be coming soon to the Twitch API as well.

Updated EventSub subscription type

channel.update has been moved from version 1 to beta in the documentation. There are two distinct differences when you update your subscription type to the beta version:

  • The new content_classification_labels field has been added, which lists the content classification labels that have been applied for the channel within an array.
  • The is_mature boolean field has been removed as this information is now included in the array above if historically set to true.

Anything else I should know?

  • There are no changes to scopes for the subscription type.
  • There is no decommission date for version 1 of the subscription type at this time.
  • The beta version will eventually become version 2 when it is ready for general availability.

As always, please feel free to ask any related questions below or reach out on the TwitchDev Discord server.


Will the event reference be updated to document the possible values contained in the content_classification_labels array (i.e., DrugsIntoxication, Gambling, MatureGame, ProfanityVulgarity, SexualThemes, ViolentGraphic)?

Also, is it intentional that these values don’t follow the lower_snake_case standard for other enums within the eventsub interface?

Edit: addressed by Reference | Twitch Developers

You want consistency and useful, relatively complete documentation? You ask too much!

The available labels will not be listed directly in the documentation for the Channel Update Event. The API team has created the Get Content Classification Labels endpoint to retrieve the possible values. That being said, this endpoint could be mentioned in the event definition so developers are aware of this approach. We’ll get that in this week.

The values in the array are intentional. They are unique IDs that just happen to also be English words and we cannot enforce the usual enum rules on IDs.