API Reference
Complete reference for all Velora API endpoints.
Interactive API Explorer
Try API calls directly in your browser with full request/response schemas.
Base URL
https://api.velora.tvAuthentication: Most endpoints require a valid access token. Include it in the Authorization header: Authorization: Bearer YOUR_TOKEN
OAuth & Authentication
/api/developer/oauth/authorizePreview authorization (get app info for consent page)
/api/developer/oauth/authorizeComplete authorization (exchange consent for code)
/api/developer/oauth/tokenExchange code for access token or refresh token
/api/developer/oauth/scopesList all available OAuth scopes
Users
/api/users/meGet current authenticated user
/api/users/:usernameGet public user profile by username
/api/users/searchSearch users (query: ?q=term&limit=10)
/api/users/:userId/followersGet user followers
/api/users/:userId/followingGet users following
/api/users/meUpdate current user profile (requires user:write)
Streams
/api/streams/liveGet live streams (public)
/api/streams/browseBrowse live streams with filters (public)
/api/streams/featuredGet featured streams (public)
/api/streams/topGet top streams by viewers (public)
/api/streams/growingGet fastest growing streams (public)
/api/streams/user/:usernameGet stream by username (public)
/api/streams/user/:username/vodsGet VODs for a channel (public)
Streaming Integration (OAuth)
/api/integrations/oauth/stream/setupGet stream key and ingest URLs (requires stream:key)
/api/integrations/oauth/stream/infoGet current stream info (requires stream:read)
/api/integrations/oauth/stream/infoUpdate stream title/category (requires stream:write)
/api/integrations/oauth/stream/categoriesList available stream categories
/api/integrations/oauth/stream/key/regenerateRegenerate stream key (requires stream:key)
Chat
/api/chat/channels/:channelId/historyGet recent chat messages (public, no auth required - max 100 messages)
/api/chat/channels/:channelId/viewersNewGet current viewer list with usernames, avatars, roles, and anonymous count (public, accepts channelId or username)
/api/chat/channels/:channelId/statsGet live chat statistics for a channel (public)
/api/chat/channels/:channelId/policyGet chat moderation policy and rules (public)
/api/integrations/oauth/chat/channels/:channelId/messagesSend a chat message with optional effects (requires chat:write)
/api/integrations/oauth/chat/channels/:channelId/moderateModerate a user (timeout, ban, delete message - requires chat:moderate)
/api/chat/slash-commandsList available slash commands (public)
Emotes
/api/emotesGet all emote collections (global + channel if ?channel=username)
/api/emotes/globalGet global emotes only
/api/emotes/channel/:usernameGet channel emotes by username
/api/emotes/resolveResolve emote codes to URLs (query: ?codes=emote1,emote2)
Badges
/api/badges/catalogGet global badge catalog (public, query: ?category=event|achievement|system)
/api/badges/channel/:usernameGet subscription badges for a channel by username (public)
/api/badges/user/:usernameNewGet badges for a user, optionally in a channel context (public, query: ?channel=channelUsername)
Followers
/api/users/follow/:userIdFollow a user (requires auth)
/api/users/follow/:userIdUnfollow a user (requires auth)
/api/users/follow-status/:userIdCheck if following a user (requires auth)
/api/users/:userId/followersGet user followers (public)
/api/users/:userId/followingGet users they follow (public)
Categories
/api/categoriesList all stream categories (public)
/api/categories/searchSearch categories (public, query: ?q=term)
Clips
/api/clips/:clipIdGet clip by ID (public)
/api/streams/:username/clipsGet clips for a channel by username (public)
/api/streams/:username/clipsCreate a clip (requires auth)
Polls
/api/streams/:username/polls/activeGet active poll for a channel (public)
/api/streams/:username/pollsCreate a poll (requires channel ownership)
/api/streams/:username/polls/:pollId/voteVote in a poll (requires auth)
/api/streams/:username/polls/:pollId/endEnd a poll early (requires channel ownership)
Search
/api/search/globalSearch creators and categories (public, query: ?query=term&limit=8). Returns isLive status for each creator.
/api/users/searchSearch users for mentions/invites (requires auth, query: ?q=term&limit=10)
Teams
/api/teamsList all teams (public)
/api/teams/:slugGet team by slug (public)
/api/teams/:slug/membersGet team members (public)
Subscriptions
/api/subscriptions/my-subscriptionsGet current user subscriptions (requires subscriptions:read)
/api/subscriptions/creator/:creatorId/subscribersGet creator subscribers (requires subscriptions:read)
/api/subscriptions/creator/:creatorId/gift-leaderboardGet top gifters for creator (public)
/api/subscriptions/subscribeSubscribe to a creator (requires subscriptions:write)
/api/subscriptions/gift/directGift subscription to specific user (requires subscriptions:write)
/api/subscriptions/gift/randomGift subscriptions to random community members (requires subscriptions:write)
/api/subscriptions/manageManage subscription (cancel, update) (requires subscriptions:write)
Notifications
/api/notificationsGet user notifications (requires notifications:read)
/api/notifications/unread-countGet unread notification count (requires notifications:read)
/api/notifications/:id/readMark notification as read (requires notifications:write)
/api/notifications/read-allMark all notifications as read (requires notifications:write)
Volts (Currency)
/api/volts/walletGet user wallet balance (requires payments:read)
/api/volts/transactionsGet transaction history (requires payments:read)
/api/volts/purchasePurchase Volts (requires payments:write)
/api/volts/sendSend Volts to streamer (requires payments:write)
/api/volts/leaderboard/:creatorIdGet top tippers for channel (public)
Channel Points
/api/channel-points/:channelId/balanceGet user point balance for channel (requires points:read)
/api/channel-points/:channelId/itemsGet redeemable items for channel (public)
/api/channel-points/:channelId/items/with-built-inGet items including built-in rewards (public)
/api/channel-points/:channelId/stream/:streamId/redemptionsGet redemptions for a stream (public)
/api/channel-points/:channelId/leaderboardGet top point earners for channel (public)
/api/channel-points/:channelId/redeem/:itemIdRedeem points item (requires points:write)
Giveaways
/api/streams/:username/giveaways/activeGet active giveaways for channel (public)
/api/streams/:username/giveawaysCreate giveaway (requires channel ownership)
/api/streams/:username/giveaways/:giveawayId/joinJoin giveaway (requires user:write)
/api/streams/:username/giveaways/:giveawayId/drawDraw winner (requires channel ownership)
/api/streams/:username/giveaways/:giveawayId/endEnd giveaway (requires channel ownership)
Journal
/api/users/:username/journalsGet published journal posts for user (public)
/api/users/:username/journals/:slugGet specific journal post (public)
/api/journalsGet my journal posts including drafts (requires journal:read)
/api/journalsCreate journal post (requires journal:write)
/api/journals/:slugUpdate journal post (requires journal:write)
/api/journals/:slugDelete journal post (requires journal:write)
/api/journals/:slug/publishPublish draft (requires journal:write)
/api/journals/:slug/imagesUpload image to journal post (requires journal:write)
YouTube Integration
/api/youtube/auth/urlGet YouTube OAuth URL (requires youtube:manage)
/api/youtube/statusCheck YouTube connection status (requires youtube:read)
/api/youtube/videos/recentGet recent synced videos (requires youtube:read)
/api/youtube/libraryGet YouTube library (requires youtube:read)
/api/youtube/playlistsGet YouTube playlists (requires youtube:read)
/api/youtube/widgets/:usernameGet YouTube widget data for user (public)
/api/youtube/disconnectDisconnect YouTube (requires youtube:manage)
Developer Apps
/api/developer/appsList your applications
/api/developer/appsCreate a new application
/api/developer/apps/:clientIdGet application details
/api/developer/apps/:clientIdUpdate application
/api/developer/apps/:clientIdDelete application
/api/developer/apps/:clientId/rotate-secretRotate client secret
/api/developer/apps/:clientId/scopesGet app scope grants
Bot Management
/api/developer/apps/:clientId/bot/configureConfigure default bot name and settings (reserves username platform-wide)
/api/developer/apps/:clientId/bot/instancesList all bot instances (default + custom names per channel)
/api/developer/apps/:clientId/bot/check-name/:botNameCheck if bot name is available
/api/integrations/oauth/bot/customizeSet custom bot name for user's channel (requires bot:write)
/api/integrations/oauth/bot/customizeRemove custom name, revert to default (45-day reservation)
/api/integrations/oauth/bot/currentGet current bot config for user's channel
Webhooks (Event Subscriptions)
/api/developer/apps/:clientId/webhooksList all webhooks for your app
/api/developer/apps/:clientId/webhooksCreate webhook subscription (events: channel.follow, channel.subscribe, channel.gift, channel.raid, channel.volts, channel.points.redeem, stream.online, stream.offline, etc.)
/api/developer/apps/:clientId/webhooks/:idGet webhook details
/api/developer/apps/:clientId/webhooks/:idUpdate webhook (change events, URL, etc.)
/api/developer/apps/:clientId/webhooks/:idDelete webhook subscription
/api/developer/apps/:clientId/webhooks/:id/rotate-secretRotate webhook signing secret for security
HTTP Response Codes
| Code | Description |
|---|---|
200 | Success |
201 | Created successfully |
204 | No content (successful deletion) |
400 | Bad request - Invalid parameters |
401 | Unauthorized - Invalid or expired token |
403 | Forbidden - Insufficient permissions |
404 | Not found - Resource doesn't exist |
429 | Rate limited - Too many requests |
500 | Internal server error |
Error Response Format
All error responses follow a consistent format:
{
"error": "error_code",
"message": "Human-readable error message",
"details": {
// Optional additional error details
}
}Pagination
List endpoints support cursor-based pagination:
GET /api/streams?limit=25&cursor=eyJsYXN0X2lkIjoi...
| Parameter | Description |
|---|---|
limit | Number of items per page (max 100) |
cursor | Cursor from previous response for next page |