StreamElements bot API

Endpoints to manage StreamElements chat bot

OpenAPI Specification

streamelements-bot-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: SE API Docs activities bot API
  description: '## Custom Variable types

    `guid` - string that matches pattern: `/^[0-9a-fA-F]{24}$/` (24 character hexadecimal string)

    `datetime` - either timestamp in milliseconds (unix timestamp*1000) or string in ISO 8061 format

    ## Global variables

    `Authorization` - string:  JWT Token you can obtain here: https://streamelements.com/dashboard/account/channels (click "Show secrets")

    `channelId` - guid: obtained by requesting `/channels/me` endpoint with provided JWT token

    `channelName` - string: lowercase channel name

    `timezone` - integer: timezone index'
  contact: {}
  version: '1.0'
servers:
- url: https://api.streamelements.com/kappa/v2
  description: V2
  variables: {}
- url: https://api.streamelements.com/kappa/v3
  description: V3
  variables: {}
security:
- JWTBearer: []
- OAuth2: []
- ApiKeyBearer: []
tags:
- name: bot
  description: Endpoints to manage StreamElements chat bot
paths:
  /bot/commands/{channel}:
    get:
      tags:
      - bot
      summary: /:channel
      description: List custom commands
      operationId: Get/:channel
      parameters:
      - name: channel
        in: path
        description: guid - Channel id
        required: true
        style: simple
        schema:
          type: string
          example: 5b2e2007760aeb7729487dab
      - name: Accept
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      responses:
        '200':
          description: ''
          headers:
            Date:
              content:
                text/plain:
                  schema:
                    type: string
                  example: Fri, 07 Dec 2018 10:56:32 GMT
            Content-Length:
              content:
                text/plain:
                  schema:
                    type: string
                  example: '389'
          content:
            application/json; charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BotCommand'
                example:
                - cooldown:
                    user: 15
                    global: 5
                  aliases: []
                  keywords: []
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  hidden: false
                  cost: 0
                  type: say
                  accessLevel: 100
                  _id: 5c0a5172de9a4c5b7da14d8a
                  regex: test[0-9]{3}
                  reply: test response
                  command: test
                  channel: 5b2e2007760aeb7729487dab
                  createdAt: '2018-12-07T10:54:42.594Z'
                  updatedAt: '2018-12-07T10:54:42.594Z'
              example:
              - cooldown:
                  user: 15
                  global: 5
                aliases: []
                keywords: []
                enabled: true
                enabledOnline: true
                enabledOffline: true
                hidden: false
                cost: 0
                type: say
                accessLevel: 100
                _id: 5c0a5172de9a4c5b7da14d8a
                regex: test[0-9]{3}
                reply: test response
                command: test
                channel: 5b2e2007760aeb7729487dab
                createdAt: '2018-12-07T10:54:42.594Z'
                updatedAt: '2018-12-07T10:54:42.594Z'
      deprecated: false
  /bot/commands/{channel}/public:
    get:
      tags:
      - bot
      summary: /:channel/public
      description: List channel's public commands
      operationId: /:channel/public
      parameters:
      - name: channel
        in: path
        description: guid - Channel id
        required: true
        style: simple
        schema:
          type: string
          example: 5b2e2007760aeb7729487dab
      - name: Accept
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      responses:
        '200':
          description: ''
          headers:
            Date:
              content:
                text/plain:
                  schema:
                    type: string
                  example: Fri, 07 Dec 2018 19:33:09 GMT
            Content-Length:
              content:
                text/plain:
                  schema:
                    type: string
                  example: '778'
          content:
            application/json; charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BotCommand'
                example:
                - cooldown:
                    user: 15
                    global: 5
                  aliases: []
                  keywords: []
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  hidden: false
                  cost: 0
                  type: say
                  accessLevel: 100
                  _id: 5c0a5172de9a4c5b7da14d8a
                  regex: test[0-9]{3}
                  reply: test response
                  command: test
                  channel: 5b2e2007760aeb7729487dab
                  createdAt: '2018-12-07T10:54:42.594Z'
                  updatedAt: '2018-12-07T10:54:42.594Z'
                - cooldown:
                    user: 15
                    global: 5
                  aliases: []
                  keywords: []
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  hidden: false
                  cost: 0
                  type: say
                  accessLevel: 100
                  _id: 5c0a52dcde9a4c1de1a14d8d
                  regex: test[0-9]{3}
                  reply: test response
                  command: test2
                  channel: 5b2e2007760aeb7729487dab
                  createdAt: '2018-12-07T11:00:44.538Z'
                  updatedAt: '2018-12-07T11:01:37.758Z'
              example:
              - cooldown:
                  user: 15
                  global: 5
                aliases: []
                keywords: []
                enabled: true
                enabledOnline: true
                enabledOffline: true
                hidden: false
                cost: 0
                type: say
                accessLevel: 100
                _id: 5c0a5172de9a4c5b7da14d8a
                regex: test[0-9]{3}
                reply: test response
                command: test
                channel: 5b2e2007760aeb7729487dab
                createdAt: '2018-12-07T10:54:42.594Z'
                updatedAt: '2018-12-07T10:54:42.594Z'
              - cooldown:
                  user: 15
                  global: 5
                aliases: []
                keywords: []
                enabled: true
                enabledOnline: true
                enabledOffline: true
                hidden: false
                cost: 0
                type: say
                accessLevel: 100
                _id: 5c0a52dcde9a4c1de1a14d8d
                regex: test[0-9]{3}
                reply: test response
                command: test2
                channel: 5b2e2007760aeb7729487dab
                createdAt: '2018-12-07T11:00:44.538Z'
                updatedAt: '2018-12-07T11:01:37.758Z'
      deprecated: false
  /bot/commands/{channel}/default:
    get:
      tags:
      - bot
      summary: /:channel/default
      description: Lists default commands
      operationId: /:channel/default
      parameters:
      - name: language
        in: query
        description: string - language iso code lowercase (eg. en)
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: channel
        in: path
        description: guid - Channel id
        required: true
        style: simple
        schema:
          type: string
          example: 5b2e2007760aeb7729487dab
      - name: Accept
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
          example: application/json
      responses:
        '200':
          description: ''
          headers:
            Date:
              content:
                text/plain:
                  schema:
                    type: string
                  example: Fri, 07 Dec 2018 10:57:38 GMT
            Content-Length:
              content:
                text/plain:
                  schema:
                    type: string
                  example: '15959'
          content:
            application/json; charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Success6'
                example:
                - commandId: raffle_join
                  command: join
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: raffle
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases: []
                  regex: ''
                  description: Join an active raffle
                - commandId: emotes
                  command: emotes
                  subCommands:
                  - ffz
                  - bttv
                  - update
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases: []
                  regex: ''
                  description: 'Active BTTV emotes in chat: Clap KKaper gachiBASS gachiGASM monkaS'
                - commandId: srpause
                  command: pause
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases: []
                  regex: ''
                  description: Pause songrequest playback.
                - commandId: leaderboard
                  command: leaderboard
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases:
                  - ranklist
                  regex: ''
                  description: Check out the $(pointsname) Leaderboard here https://StreamElements.com/${channel.alias}/leaderboard
                - commandId: srqueue
                  command: songqueue
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 10
                  aliases:
                  - songlist
                  regex: ''
                  description: you can see the songrequest queue here https://StreamElements.com/${channel.alias}/songrequest
                - commandId: srplay
                  command: play
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases:
                  - resume
                  regex: ''
                  description: Resume songrequest playback.
                - commandId: level
                  command: level
                  accessLevel: 1000
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases: []
                  regex: ''
                  description: Set a viewers access level. Reset with !level <username> reset.
                - commandId: givepoints
                  command: givepoints
                  accessLevel: 100
                  enabled: false
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases:
                  - transfer
                  - give
                  regex: ''
                  description: Transfer points to another user.
                - commandId: commands
                  command: commands
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases:
                  - cmds
                  regex: ''
                  description: You can find a list of all Commands here https://StreamElements.com/${channel.alias}/commands
                - commandId: slotmachine
                  command: slots
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: slotmachine
                  cost: 0
                  cooldown:
                    user: 10
                    global: 0
                  aliases:
                  - slotmachine
                  - slot
                  - sm
                  - smp
                  regex: ''
                  description: Play the slot machine
                - commandId: hypecup
                  command: hypecup
                  subCommands:
                  - clear
                  accessLevel: 1000
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 1
                    global: 1
                  aliases: []
                  regex: ''
                  description: Control the HypeCup.
                - commandId: contest_bet
                  command: bet
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 5
                    global: 0
                  aliases: []
                  regex: ''
                  description: Bet on a contest.
                - commandId: accountage
                  command: accountage
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases:
                  - accage
                  - created
                  regex: ''
                  description: ${user} was created 1 year 5 months 27 days 1 hour ago.
                - commandId: srremove
                  command: removesong
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 10
                  aliases:
                  - songs.pop()
                  regex: ''
                  description: Remove a users songs, or a single song from the queue.
                - commandId: raffle_singleraffle
                  command: sraffle
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: raffle
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases:
                  - singleraffle
                  regex: ''
                  description: Start a raffle with a single winner
                - commandId: top
                  command: top
                  subCommands:
                  - points
                  - alltime
                  - online
                  - offline
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 5
                    global: 2
                  aliases: []
                  regex: ''
                  description: Show the top of the leaderboard.
                - commandId: giveaway
                  command: giveaway
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases: []
                  regex: ''
                  description: Show the currently active giveaway.
                - commandId: followage
                  command: followage
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases:
                  - howlong
                  regex: ''
                  description: ${user1} has been following ${user2} for 1 year 5 months 27 days 1 hour
                - commandId: srskip
                  command: skip
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 10
                  aliases:
                  - skipsong
                  regex: ''
                  description: Skip the current song
                - commandId: wrongsong
                  command: wrongsong
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 10
                    global: 0
                  aliases:
                  - ctrl-z
                  - heybuddyithinkyougotthewrongsong
                  regex: ''
                  description: Removes your last song from the queue
                - commandId: eightball
                  command: 8ball
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: eightball
                  cost: 0
                  cooldown:
                    user: 10
                    global: 3
                  aliases:
                  - eightball
                  - 69ball
                  - 420ball
                  regex: ''
                  description: Ask the magic 8-ball a question
                - commandId: store_redeem
                  command: redeem
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 5
                    global: 1
                  aliases:
                  - buy
                  regex: ''
                  description: You successfully redeemed item1 for 420 points.
                - commandId: permit
                  command: permit
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases: []
                  regex: ''
                  description: Prevent a viewer from getting timed out for 60 seconds.
                - commandId: roulette
                  command: roulette
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: roulette
                  cost: 0
                  cooldown:
                    user: 60
                    global: 0
                  aliases:
                  - gamble
                  regex: ''
                  description: gamble your life away
                - commandId: editpoints
                  command: addpoints
                  accessLevel: 1000
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases:
                  - editpoints
                  - bonus
                  regex: ''
                  description: Give points to viewers. Use 'all' for all chatters
                - commandId: module
                  command: module
                  accessLevel: 1000
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 5
                  aliases: []
                  regex: ''
                  description: Enable or disable modules via chat.
                - commandId: next
                  command: next
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 10
                    global: 0
                  aliases:
                  - nextsong
                  - whatisthenextsonghomie
                  regex: ''
                  description: 'next song: MrSuicideSheep - WE WON ZULUL [2m3s] requested by LordFluffyButt https://youtu.be/9OG-Qr1qAe4'
                - commandId: store_items
                  command: items
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases:
                  - store
                  regex: ''
                  description: 'Available items are: item1, item2, item3 https://StreamElements.com/${channel.alias}/store'
                - commandId: srsongrequest
                  command: songrequest
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: songrequest
                  cost: 0
                  cooldown:
                    user: 15
                    global: 3
                  aliases:
                  - sr
                  regex: ''
                  description: Request a song by youtube id, url or video title.
                - commandId: srwhen
                  command: when
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 15
                  aliases:
                  - mysong
                  regex: ''
                  description: '"My Summer Car - Radio Chill" is at #2 in the queue and is playing 2 mins 3 secs'
                - commandId: srvolume
                  command: volume
                  accessLevel: 1000
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases: []
                  regex: ''
                  description: Change the songrequest volume.
                - commandId: kappagen
                  command: kappagen
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 15
                    global: 5
                  aliases:
                  - emotesplosion
                  regex: ''
                  description: KappaGen emotesplosions.
                - commandId: command
                  command: command
                  subCommands:
                  - add
                  - remove
                  - edit
                  - options
                  - show
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 3
                    global: 0
                  aliases:
                  - cmd
                  regex: ''
                  description: Add, edit and delete chat commands.
                - commandId: ping
                  command: ping
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleEnabled: true
                  moduleId: admin
                  cost: 0
                  cooldown:
                    user: 0
                    global: 15
                  aliases: []
                  regex: ''
                  description: streamelements has been running for 13 hours 47 mins!
                - commandId: duel_accept
                  command: accept
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: duel
                  cost: 0
                  cooldown:
                    user: 10
                    global: 0
                  aliases: []
                  regex: ''
                  description: Accept a duel request from another chatter
                - commandId: bot
                  command: bot
                  subCommands:
                  - mute
                  - unmute
                  - part
                  accessLevel: 1000
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases: []
                  regex: ''
                  description: Mute, unmute or remove the bot.
                - commandId: raffle_cancel
                  command: cancelraffle
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: raffle
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases:
                  - rafflecancel
                  regex: ''
                  description: Cancel an active raffle
                - commandId: bingo
                  command: bingo
                  subCommands:
                  - bttv
                  - ffz
                  - twitch
                  - all
                  - cancel
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: bingo
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases: []
                  regex: ''
                  description: Play a game of emote-bingo
                - commandId: pepes
                  command: pepes
                  accessLevel: 1000
                  enabled: false
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 5
                  aliases: []
                  regex: ''
                  description: Enable or disable pepes in bot responses.
                - commandId: edit_counter
                  command: editcounter
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases:
                  - editcount
                  regex: ''
                  description: Edit a custom ${count <name>}/${getcount <name>} counter
                - commandId: voteskip
                  command: voteskip
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: songrequest
                  cost: 0
                  cooldown:
                    user: 10
                    global: 0
                  aliases: []
                  regex: ''
                  description: Vote to skip the current song
                - commandId: raffle_multiraffle
                  command: raffle
                  accessLevel: 500
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: raffle
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases:
                  - mraffle
                  - multiraffle
                  regex: ''
                  description: Start a raffle with multiple winners
                - commandId: duel
                  command: duel
                  accessLevel: 100
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: duel
                  cost: 0
                  cooldown:
                    user: 10
                    global: 0
                  aliases: []
                  regex: ''
                  description: Duel another chatter for points
                - commandId: setpoints
                  command: setpoints
                  accessLevel: 1000
                  enabled: true
                  enabledOnline: true
                  enabledOffline: true
                  moduleId: ''
                  cost: 0
                  cooldown:
                    user: 0
                    global: 0
                  aliases: []
                  regex: ''
                  description: Set the points of a viewer.
                - commandId: watchtime
         

# --- truncated at 32 KB (95 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/streamelements/refs/heads/main/openapi/streamelements-bot-api-openapi.yml