I see that Watch Streaks are now supported by the channel.chat.notification EventSub subscription (V1), with the watch_streak.streak_count field.
My question is slightly different: is there any way to retrieve a viewer’s current Watch Streak on demand, rather than only receiving it when a watch_streak notification is generated?
For example, I’m developing a bot with a !userinfo <username> command. I can already retrieve the user’s follow date, profile information, and other channel-related data. I’d like the command to also display:
Watch streak: 27 streams
Is there an API endpoint or any other officially supported mechanism that allows a bot to query the current Watch Streak for a specific user and channel?
Or is the intended approach to listen for watch_streak EventSub notifications and maintain the latest known value ourselves?
One more clarification about the watch_streak EventSub notification:
Does the watch_streak.streak_count notification get sent only when a viewer reaches a shareable milestone (e.g. 5, 10, 15, 20), or can it also be sent for every streak increment (e.g. 1, 2, 3, … 12)?
For example, if a viewer reaches a 12-stream streak but only shares the 10-stream milestone in chat, would my bot receive streak_count = 12 at some point, or would the latest value available to the bot remain 10?
There isn’t a dedicated watch streak topic for every increase, just the chat notification topic mirroing what is shared in chat.
So you could have a user that never shares their strek and thus won’t appear in your logs as all, same as a resub notification granted you can optionally share that every month.