Reference

What your app can call

Velora publishes 803 endpoints, but only these 72 accept a third-party OAuth token. The rest are first-party surfaces and will refuse your token whatever scopes it holds.

This list is generated from the API source at build time, so it cannot drift from what the server actually enforces. If an endpoint is not here, your app cannot call it — and if you think it should be able to, check whether a scope covers it before assuming it is a bug.

Managing your own application

These endpoints manage the app itself rather than a streamer’s channel — bot identities, command sync, and app-level configuration. They act on your application, not on a user.

POST/api/developer/apps/:clientId/bot/:botId/avatarno scope required
GET/api/developer/apps/:clientId/bot/availableno scope required
GET/api/developer/apps/:clientId/bot/check-name/:botNameno scope required
POST/api/developer/apps/:clientId/bot/commands/syncbot:commands
POST/api/developer/apps/:clientId/bot/configureno scope required
GET/api/developer/apps/:clientId/bot/connectionsno scope required
DELETE/api/developer/apps/:clientId/bot/connections/:connectionIdno scope required
POST/api/developer/apps/:clientId/bot/createno scope required
GET/api/developer/apps/:clientId/bot/currentno scope required
DELETE/api/developer/apps/:clientId/bot/disconnectno scope required
GET/api/developer/apps/:clientId/bot/identityno scope required
GET/api/developer/apps/:clientId/bot/instancesno scope required
POST/api/developer/apps/:clientId/bot/selectno scope required
GET/api/developer/subscriptionssubscriptions:read
GET/api/developer/subscriptions/countsubscriptions:read

Acting on behalf of a streamer

These are the endpoints your app calls with a user’s OAuth token — reading their stream, sending chat, redeeming channel points. Everything here acts as the person who authorised you, so the scope you hold is exactly the permission you have.

GET/api/integrations/beam/bootstrapno scope required
GET/api/integrations/beam/chat/statuschat:read
GET/api/integrations/beam/emoteschat:read
GET/api/integrations/beam/emotes/channel/:usernameno scope required
GET/api/integrations/beam/emotes/globalno scope required
POST/api/integrations/beam/heartbeatno scope required
GET/api/integrations/beam/ingeststreams:key:read
PATCH/api/integrations/beam/streamstreams:write
GET/api/integrations/oauth/bot/availableuser:read

Check if authenticated bot user is available and operational

GET/api/integrations/oauth/bot/currentbot:read

Get current bot config for the authenticated user\

DELETE/api/integrations/oauth/bot/customizebot:write

Remove custom bot name, revert to default (45-day reservation)

POST/api/integrations/oauth/bot/customizebot:write

Set custom bot name for the authenticated user\

GET/api/integrations/oauth/channel-points/balancechannel:points:read
POST/api/integrations/oauth/channel-points/balance/deductchannel:points:balance

Take channel points from a viewer on your channel

POST/api/integrations/oauth/channel-points/balance/grantchannel:points:balance

Give a viewer channel points on your channel

POST/api/integrations/oauth/channel-points/redeemchannel:points:redeem
GET/api/integrations/oauth/channel-points/rewardschannel:points:read

List channel point rewards on your channel

POST/api/integrations/oauth/channel-points/rewardschannel:points:write

Create a channel point reward on your channel

DELETE/api/integrations/oauth/channel-points/rewards/:rewardIdchannel:points:write

Delete a channel point reward on your channel

PATCH/api/integrations/oauth/channel-points/rewards/:rewardIdchannel:points:write

Update a channel point reward on your channel

GET/api/integrations/oauth/channel-roleschannel:read
POST/api/integrations/oauth/channel-roleschannel:roles:write
DELETE/api/integrations/oauth/channel-roles/:memberId/:roleTypechannel:roles:write
POST/api/integrations/oauth/chat/channels/:channelId/messageschat:write
POST/api/integrations/oauth/chat/channels/:channelId/moderatechat:moderate
POST/api/integrations/oauth/chat/clearchat:moderate
GET/api/integrations/oauth/chat/settingsstream:read
PATCH/api/integrations/oauth/chat/settingsstream:write
POST/api/integrations/oauth/giveawayschannel:interactive:write

The current giveaway on your channel, or null

POST/api/integrations/oauth/giveaways/:giveawayId/drawchannel:interactive:write

Start a giveaway (replaces an open one). The channel must be live.

POST/api/integrations/oauth/giveaways/:giveawayId/endchannel:interactive:write

Draw the next winner (closes the giveaway once every winner is drawn)

GET/api/integrations/oauth/giveaways/activechannel:read

The current giveaway on your channel, or null

GET/api/integrations/oauth/goalschannel:read
PATCH/api/integrations/oauth/goals/:idchannel:interactive:write
POST/api/integrations/oauth/goals/:id/adjustchannel:interactive:write
POST/api/integrations/oauth/goals/:id/resetchannel:interactive:write

Start a new goal period now, optionally from a given value

GET/api/integrations/oauth/meuser:read

Get authenticated user information

POST/api/integrations/oauth/pollschannel:interactive:write

The current poll on your channel, or null

POST/api/integrations/oauth/polls/:pollId/endchannel:interactive:write

Start a poll (replaces an open one). The channel must be live.

GET/api/integrations/oauth/polls/activechannel:read

The current poll on your channel, or null

POST/api/integrations/oauth/predictionschannel:interactive:write

Start a prediction. The channel must be live, with no other prediction open or locked.

POST/api/integrations/oauth/predictions/:id/cancelchannel:interactive:write

Cancel and refund every bet

POST/api/integrations/oauth/predictions/:id/lockchannel:interactive:write

Stop taking bets

POST/api/integrations/oauth/predictions/:id/resolvechannel:interactive:write

Pick the winning outcome and pay out

GET/api/integrations/oauth/predictions/activechannel:read

The current prediction on your channel (open, locked, or settled in the last 2 minutes), or null

GET/api/integrations/oauth/stream/categoriesstream:read

List available stream categories

GET/api/integrations/oauth/stream/infostream:read

Get current stream information

PUT/api/integrations/oauth/stream/infostream:write

Update stream title, category, or tags

POST/api/integrations/oauth/stream/key/regeneratestream:key

Generate a new stream key

GET/api/integrations/oauth/stream/setupstream:key

Get stream key and ingest URLs for broadcasting

GET/api/integrations/oauth/stream/tagsstream:read

List the tag vocabulary and the rules for setting tags

POST/api/integrations/oauth/test/eventsno scope required
POST/api/integrations/oauth/test/events/selfno scope required
POST/api/integrations/oauth/test/events/typesno scope required
GET/api/integrations/oauth/timerschannel:read
POST/api/integrations/oauth/timers/:id/:actionchannel:interactive:write

start | pause | resume | end | reset a timer

POST/api/integrations/oauth/timers/:id/add-timechannel:interactive:write

Add (or remove, with a negative number) seconds

Generated from api-live controllers guarded by DeveloperOauthGuard. Not sure which surface fits what you are building? Start here.