StreamElements bot API
Endpoints to manage StreamElements chat bot
Endpoints to manage StreamElements chat bot
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/streamelements-bot-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.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