Skip to main content

Choosing permissions

A permission is the unit of consent a bot asks a DJ for. You can only request the permissions registered on your app, and only the ones the DJ approves actually work.

The Spec column takes you straight to the endpoint each permission opens. Use this page to decide what to ask for.

The eleven permissions​

ScopeName the DJ seesWhat it grantsSpec
live.readView my broadcast infoTitle, start and end times, listener count, greeting, categories, chat-frozen stateRead the current broadcast
listeners.readView my broadcast's listener listThe id and nickname of listeners in the roomList listeners
fans.readView my broadcast's fan rankingListeners ranked by donationRead the fan ranking
events.chatView my broadcast's chatListener chat and DJ quick messages, in real timeEvent stream · chat
events.presenceSee who joins my broadcastListener joins, in real timeEvent stream · presence
events.likeView my broadcast's heartsHearts listeners send, in real timeEvent stream · like
events.donationView my broadcast's donationsDonor, total spoons, and note, in real timeEvent stream · donation
chat.sendSend chat to my broadcast as the botPosting under the bot account's nameSend chat

Which combination do you need​

Request only what your bot actually uses. The more permissions on the consent screen, the more DJs hesitate to approve.

The bot you are buildingPermissions needed
Replies to chatevents.chat · chat.send
Announces broadcast start and endlive.read · chat.send
Welcomes listeners who joinevents.presence · chat.send (requires the DJ's manager appointment)
Thanks people for donationsevents.donation · chat.send
Tallies hearts toward a goalevents.like · chat.send
Draws a raffle from the listenerslisteners.read · chat.send
Reads out the fan rankingfans.read · chat.send
Tallies attendance and rankingsevents.chat · events.presence · live.read

How to request them​

List them in the scope parameter of Getting a DJ's consent, separated by spaces. Encode the spaces as %20 in the URL.

&scope=events.chat%20events.presence%20chat.send

Consent accumulates. To add a permission later, show the consent screen again with the expanded set, and the DJ sees only the newly requested permissions.

The scope on an issued token reflects the DJ's consent at that moment. Check it on every refresh — see Tokens for the details.

Two things to know​

Event permissions share one connection​

The four permissions starting with events. share a single connection.

  • The event stream opens if any one of them is granted.
  • Events you did not get consent for are filtered out. The connection is healthy while that event type never arrives.
  • With none of them, you get a 403.

events.presence only works once the DJ appoints the bot as a manager.

With consent but no appointment it does not fail at all. The stream opens with 200 and chat arrives normally, while presence never does, which makes it hard to diagnose. The broadcast server publishes join notifications at manager level.

The procedure is in Event stream.