Twitch.SharedChatAnnouncement

WebSocket event schema, payload, and examples

Properties

text
string
parts
TwitchMessagePartBase[]
user
object required
source
object required
sourceMessageId
string
sourceBadges
TwitchBadge[]
messageId
string
systemMessage
string
isTest
boolean required
isInSharedChat
boolean required
isSharedChatHost
boolean required
isFromSharedChatGuest
boolean required
announcementColor
string

Schema

The JSON Schema for the event payload, if available.
schema.json
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "TwitchChatNotification_SharedAnnouncement",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "text": {
      "type": [
        "null",
        "string"
      ]
    },
    "parts": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/TwitchMessagePartBase"
      }
    },
    "user": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/definitions/TwitchUser"
        }
      ]
    },
    "source": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/definitions/TwitchBaseUser"
        }
      ]
    },
    "sourceMessageId": {
      "type": [
        "null",
        "string"
      ]
    },
    "sourceBadges": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/TwitchBadge"
      }
    },
    "messageId": {
      "type": [
        "null",
        "string"
      ]
    },
    "systemMessage": {
      "type": [
        "null",
        "string"
      ]
    },
    "isTest": {
      "type": "boolean"
    },
    "isInSharedChat": {
      "type": "boolean"
    },
    "isSharedChatHost": {
      "type": "boolean"
    },
    "isFromSharedChatGuest": {
      "type": "boolean"
    },
    "announcementColor": {
      "type": [
        "null",
        "string"
      ]
    }
  },
  "definitions": {
    "TwitchMessagePartBase": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": [
            "null",
            "string"
          ]
        },
        "text": {
          "type": [
            "null",
            "string"
          ]
        }
      }
    },
    "TwitchUser": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": [
            "null",
            "string"
          ]
        },
        "login": {
          "type": [
            "null",
            "string"
          ]
        },
        "name": {
          "type": [
            "null",
            "string"
          ]
        },
        "type": {
          "type": [
            "null",
            "string"
          ]
        },
        "role": {
          "$ref": "#/definitions/ViewerRole"
        },
        "badges": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/TwitchBadge"
          }
        },
        "color": {
          "type": [
            "null",
            "string"
          ]
        },
        "subscribed": {
          "type": "boolean"
        },
        "subscriptionTier": {
          "type": [
            "null",
            "string"
          ]
        },
        "monthsSubscribed": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ViewerRole": {
      "type": "integer",
      "description": "",
      "x-enum-names": [
        "Unknown",
        "Viewer",
        "Vip",
        "Moderator",
        "Broadcaster"
      ],
      "x-enum-varnames": [
        "Unknown",
        "Viewer",
        "Vip",
        "Moderator",
        "Broadcaster"
      ],
      "x-enumNames": [
        "Unknown",
        "Viewer",
        "Vip",
        "Moderator",
        "Broadcaster"
      ],
      "x-enum-descriptions": [
        null,
        null,
        null,
        null,
        null
      ],
      "x-enumDescriptions": [
        null,
        null,
        null,
        null,
        null
      ],
      "enum": [
        0,
        1,
        2,
        3,
        4
      ]
    },
    "TwitchBadge": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": [
            "null",
            "string"
          ]
        },
        "version": {
          "type": [
            "null",
            "string"
          ]
        },
        "imageUrl": {
          "type": [
            "null",
            "string"
          ]
        },
        "info": {
          "type": [
            "null",
            "string"
          ]
        }
      }
    },
    "TwitchBaseUser": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": [
            "null",
            "string"
          ]
        },
        "login": {
          "type": [
            "null",
            "string"
          ]
        },
        "name": {
          "type": [
            "null",
            "string"
          ]
        },
        "type": {
          "type": [
            "null",
            "string"
          ]
        }
      }
    }
  }
}

JSON Payload

An example JSON payload for the event, automatically generated using JSONSchemaFaker
example.json
{
  "announcementColor": "proident",
  "isFromSharedChatGuest": true,
  "isInSharedChat": false,
  "isSharedChatHost": true,
  "isTest": false,
  "messageId": null,
  "parts": [
    {
      "text": "eu elit",
      "type": null
    },
    {
      "text": null,
      "type": null
    },
    {
      "text": "sint laborum aute",
      "type": "sit"
    },
    {
      "text": null,
      "type": "proident et dolore"
    },
    {
      "text": "sint sit in esse",
      "type": null
    }
  ],
  "source": {
    "id": null,
    "login": "consectetur aliquip tempor",
    "name": "velit qui incididunt fugiat sed",
    "type": "exercitation fugiat mollit labore cillum"
  },
  "sourceBadges": [
    {
      "imageUrl": "tempor ipsum ullamco incididunt sint",
      "info": "dolor elit consectetur ut",
      "name": "exercitation",
      "version": null
    },
    {
      "imageUrl": "aliqua occaecat do",
      "info": "est proident",
      "name": null,
      "version": "Duis"
    },
    {
      "imageUrl": null,
      "info": null,
      "name": null,
      "version": "amet ut"
    },
    {
      "imageUrl": null,
      "info": null,
      "name": null,
      "version": null
    },
    {
      "imageUrl": "mollit nisi",
      "info": "ipsum",
      "name": "ullamco aliqua",
      "version": null
    }
  ],
  "sourceMessageId": null,
  "systemMessage": "do commodo consectetur aute",
  "text": null,
  "user": {
    "badges": [
      {
        "imageUrl": "exercitation fugiat in magna dolor",
        "info": "et",
        "name": null,
        "version": null
      },
      {
        "imageUrl": "magna exercitation nostrud incididunt",
        "info": "elit quis",
        "name": null,
        "version": null
      },
      {
        "imageUrl": "qui culpa anim",
        "info": "sed elit",
        "name": null,
        "version": "deserunt laborum aliquip ipsum"
      },
      {
        "imageUrl": "occaecat ipsum ex amet",
        "info": "commodo irure laborum dolor ipsum",
        "name": null,
        "version": null
      },
      {
        "imageUrl": null,
        "info": "in do",
        "name": "Ut nisi cillum dolore ullamco",
        "version": "in ut quis id irure"
      }
    ],
    "color": "Ut irure quis nostrud ad",
    "id": "velit magna aliquip",
    "login": "in magna Excepteur veniam",
    "monthsSubscribed": -97963334,
    "name": null,
    "role": 2,
    "subscribed": true,
    "subscriptionTier": null,
    "type": "Lorem consequat do"
  }
}

Client Example

Example code showing how to subscribe to this event using the Streamer.bot WebSocket Client
index.js
// Initialize the Streamer.bot WebSocket Client
const client = new StreamerbotClient();

// Subscribe to "Twitch.SharedChatAnnouncement" events and register a callback
client.on('Twitch.SharedChatAnnouncement', ({ event, data }) => {
  // Code here will run every time the event is received!
  console.log('Received event:', event.source, event.type);
  console.log('Event data:', data);
});