Twitch.Announcement

WebSocket event schema, payload, and examples

Properties

text
string
parts
TwitchMessagePartBase[]
user
object required
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_Announcement",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "text": {
      "type": [
        "null",
        "string"
      ]
    },
    "parts": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/TwitchMessagePartBase"
      }
    },
    "user": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/definitions/TwitchUser"
        }
      ]
    },
    "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"
          ]
        }
      }
    }
  }
}

JSON Payload

An example JSON payload for the event, automatically generated using JSONSchemaFaker
example.json
{
  "announcementColor": null,
  "isFromSharedChatGuest": false,
  "isInSharedChat": false,
  "isSharedChatHost": false,
  "isTest": false,
  "messageId": null,
  "parts": [
    {
      "text": "voluptate Excepteur",
      "type": null
    },
    {
      "text": null,
      "type": "labore ea id dolore"
    },
    {
      "text": "est mollit",
      "type": null
    },
    {
      "text": "officia Excepteur nisi laborum",
      "type": null
    },
    {
      "text": "enim",
      "type": null
    }
  ],
  "systemMessage": "tempor nulla",
  "text": "est elit adipisicing",
  "user": {
    "badges": [
      {
        "imageUrl": null,
        "info": null,
        "name": "veniam nisi",
        "version": "culpa tempor enim commodo"
      },
      {
        "imageUrl": "irure aute velit fugiat ea",
        "info": "commodo aliqua sed et est",
        "name": null,
        "version": null
      },
      {
        "imageUrl": null,
        "info": "cillum sunt enim ut anim",
        "name": null,
        "version": "nostrud laborum"
      },
      {
        "imageUrl": null,
        "info": "nulla proident ipsum",
        "name": "aute dolore velit",
        "version": "minim ut veniam"
      },
      {
        "imageUrl": "sint Ut dolore",
        "info": null,
        "name": "laboris sint ex in",
        "version": "cillum"
      }
    ],
    "color": "tempor proident qui",
    "id": "ex in",
    "login": "sint Lorem cupidatat veniam",
    "monthsSubscribed": -70177980,
    "name": null,
    "role": 2,
    "subscribed": true,
    "subscriptionTier": "est voluptate incididunt eiusmod",
    "type": null
  }
}

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.Announcement" events and register a callback
client.on('Twitch.Announcement', ({ 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);
});