Policy clarification: long-term viewer relationship and memory data using Twitch user IDs

Hello,

I am developing an AI character / livestream companion that interacts with viewers through Twitch chat.

Before implementing viewer memory and relationship features more broadly, I would like to clarify whether the following use of Twitch user data is permitted under the Twitch Developer Services Agreement and related policies.

During a livestream, my application receives chat events through Twitch EventSub.

For each chat message, the application may receive information such as:

  • Twitch user ID
  • Login name
  • Display name
  • Message ID
  • Chat message content

The purpose of the feature is to allow the AI character to gradually remember its interactions with individual viewers and build an application-generated “relationship state” over time.

For example, the AI character may remember:

  • That a viewer has interacted with it before
  • Topics they have discussed together
  • Recurring interests mentioned by the viewer
  • The general familiarity or conversational relationship between the AI character and that viewer

The application would use the viewer’s stable Twitch user ID as the identifier that connects these interactions over time.

This information would only be used to support the viewer’s interactions with the AI character.

I do not intend to build a public database of Twitch users, sell or monetize this information, use it for advertising, or make raw chat logs or internal relationship profiles publicly available or available to unrelated third parties for their own purposes.

The application may use third-party service providers, including the OpenAI API, to process limited Twitch chat content and related context solely as necessary to operate the AI character and generate responses or application-generated relationship information.

For the OpenAI API specifically, I have not opted in to sharing API inputs or outputs for model improvement or training. OpenAI states that API inputs and outputs are not used to train or improve its models by default unless the customer explicitly opts in to such data sharing.

These services are used only as processing providers necessary to operate the application. The data is not provided for advertising, resale, or unrelated independent purposes.

I would also like to eventually create an optional web feature.

In that feature:

  • A viewer would sign in using Twitch OAuth / OIDC.
  • The authenticated Twitch user ID would be used to retrieve only that viewer’s relationship information.
  • The viewer could see a read-only summary of how the AI character remembers and perceives its relationship with that viewer.
  • A user would not be able to manually enter another person’s Twitch ID to view their information.
  • Raw chat logs, internal scores, or private system information would not be publicly exposed.
  • The web application would not write changes back to the AI character’s main personality, memory, preferences, or viewer relationship data.
  • Users would be provided with a way to disconnect their Twitch account and request deletion of stored information.
  • The information would not be sold or used for advertising.

The relationship state itself would be generated by my application based on interactions with the viewer. It would not simply be a copy of the Twitch chat history.

Where possible, I also intend to avoid retaining raw chat messages longer than necessary and instead retain only the minimum information needed for the AI character’s viewer-specific memory or relationship state.

I would like clarification on the following points:

  1. Is it permitted to store a viewer’s stable Twitch user ID for longer than 24 hours in order to maintain this kind of viewer-specific relationship or memory state?
  2. Are there specific retention limits that apply to Twitch user IDs, login names, display names, chat messages, or other Twitch-derived user information used for this purpose?
  3. If my application derives its own relationship information from Twitch interactions — for example, “this viewer and the AI character have spoken several times about a particular game” — is that application-generated relationship information subject to the same retention requirements as the original Twitch data?
  4. For the optional web feature, is using Twitch OAuth / OIDC to authenticate the viewer and allowing them to access only their own relationship information an appropriate approach?
  5. Are there any specific requirements regarding user consent, privacy policies, data deletion, account disconnection, or data retention that I should implement before releasing such a feature?
  6. Separately from the optional web feature, is it permitted for the livestream application itself to retain a viewer’s stable Twitch user ID and application-generated relationship state for longer than 24 hours when that viewer has interacted through Twitch chat but has not individually authenticated to my application through OAuth?
  7. If individual OAuth authorization or another explicit opt-in mechanism is required for long-term viewer-specific memory, would it be acceptable to enable long-term relationship storage only for viewers who have opted in?
  8. If a viewer later authenticates through Twitch OAuth, may the application associate that authenticated Twitch user ID with relationship information that was previously generated from that viewer’s Twitch chat interactions, or would that prior data need to be discarded?
  9. The application may use third-party service providers, including the OpenAI API, to process limited Twitch chat content solely for operating the AI character and generating responses or application-generated relationship information. For the OpenAI API, I have not opted in to sharing API inputs or outputs for model improvement or training. Does this type of processing nevertheless constitute making Twitch Data available to or sharing Twitch Data with a third party under Section VI.C of the Developer Services Agreement, and therefore require Twitch’s prior written permission? If so, what is the appropriate process for obtaining that permission?

My goal is to design this feature conservatively and in full compliance with Twitch’s policies before making long-term viewer memory or the external web feature publicly available.

If this question requires review by another Twitch policy, legal, or support team, I would also appreciate being directed to the appropriate contact.

Thank you very much for your guidance.

I would consult a lawyer. They would be able to give the best advice here.

My two pence

This is required to ensure compatible with GDPR and other similar legal things around the world.

But you’d want to consult a lawyer here to ensure you are legally compliant with relevant countries that you operate in. Which is the crux here more than Twitch policy