openapi: 3.1.0 info: version: 0.2.0 title: Owncast APIs description: |- Internal The APIs required to make the Owncast web interface and internal functionality work. These APIs will never reach stability and will always change as Owncast features and functionality change. This means these endpoints are not good options to build your own tooling and features on top of. You can, however, of course can if that risk is acceptable to you. Admin The APIs used to configure the Owncast server, as well as power the web admin interface. These APIs are protected by the admin password, using HTTP Basic authentication. They should not be used by external tools or integrations as it would require you to give your admin password to a third party. contact: name: Gabe Kangas email: gabek@real-ity.com url: 'http://owncast.online' license: url: 'https://github.com/owncast/owncast/blob/develop/LICENSE' name: MIT servers: - url: 'http://localhost:8080/api' description: Localhost port 8080 paths: /status: get: summary: Get the status of the server operationId: GetStatus tags: ['Internal'] responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Status' /emoji: get: summary: Get list of custom emojis supported in the chat operationId: GetCustomEmojiList tags: ['Internal', 'Chat'] responses: '200': description: List of valid emojis content: application/json: schema: $ref: '#/components/schemas/Emojis' '500': $ref: '#/components/responses/500' /chat: get: summary: Gets a list of chat messages operationId: GetChatMessages tags: ['Internal', 'Chat'] parameters: - $ref: '#/components/parameters/AccessToken' responses: '200': description: List of chat messages content: application/json: schema: $ref: '#/components/schemas/ChatMessages' '401': $ref: '#/components/responses/401' '501': $ref: '#/components/responses/501' /chat/register: post: summary: Registers an anonymous chat user operationId: RegisterAnonymousChatUser tags: ['Internal', 'Chat'] parameters: - in: header name: X-Forwarded-User schema: type: string required: false requestBody: description: The display name of the new user required: false content: application/json: schema: type: object properties: displayName: type: string responses: '200': description: Anonymous user information content: application/json: schema: $ref: '#/components/schemas/AnonymousUser' '400': $ref: '#/components/responses/400' options: operationId: RegisterAnonymousChatUserOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204Options' /chat/messagevisibility: post: summary: Update chat message visibility operationId: UpdateMessageVisibility tags: ['Internal', 'Chat'] parameters: - $ref: '#/components/parameters/AccessToken' requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageVisibilityUpdate' responses: '200': description: Message visibility updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' default: $ref: '#/components/responses/Default' /chat/users/setenabled: post: summary: Enable/disable a user operationId: UpdateUserEnabled tags: ['Internal', 'Chat'] parameters: - $ref: '#/components/parameters/AccessToken' requestBody: content: application/json: schema: type: object properties: userId: type: string enabled: type: boolean responses: '200': description: User status has been updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' default: $ref: '#/components/responses/Default' /config: get: summary: Get the web config operationId: GetWebConfig tags: ['Internal'] responses: '200': description: The current web config content: application/json: schema: $ref: '#/components/schemas/WebConfig' '500': $ref: '#/components/responses/500' /yp: get: summary: Get the YP protocol data operationId: GetYPResponse tags: ['Internal'] responses: '200': description: The current YP protocol configuration content: application/json: schema: $ref: '#/components/schemas/YPDetails' '404': $ref: '#/components/responses/404' /socialplatforms: get: summary: Get all social platforms operationId: GetAllSocialPlatforms tags: ['Internal'] responses: '200': description: The list of social platforms content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/SocialHandle' '500': $ref: '#/components/responses/500' /video/variants: get: summary: Get a list of video variants available operationId: GetVideoStreamOutputVariants tags: ['Internal', 'Video'] responses: '200': description: List of available video variants content: application/json: schema: type: array items: $ref: '#/components/schemas/VideoVariant' /ping: get: summary: Tell the backend you're an active viewer operationId: Ping tags: ['Internal', 'Video'] responses: '200': description: Added as an active viewer /remotefollow: post: summary: Request remote follow operationId: RemoteFollow tags: ['Internal', 'Social'] requestBody: content: application/json: schema: type: object properties: account: type: string responses: '200': description: Contains redirect URL remote follow follow content: application/json: schema: type: object properties: redirectUrl: type: string '400': $ref: '#/components/responses/400' /followers: get: summary: Gets the list of followers operationId: GetFollowers tags: ['Internal', 'Social'] parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: Paginated follower count content: application/json: schema: $ref: '#/components/schemas/PaginatedFollowers' '400': $ref: '#/components/responses/400' /metrics/playback: post: summary: Save video playback metrics for future video health recording operationId: ReportPlaybackMetrics tags: ['Internal'] requestBody: description: Video metrics to record content: application/json: schema: $ref: '#/components/schemas/PlaybackMetrics' responses: '200': description: Metrics successfully recorded '400': $ref: '#/components/responses/400' /notifications/register: post: summary: Register for notifications operationId: RegisterForLiveNotifications tags: ['Internal'] parameters: - $ref: '#/components/parameters/AccessToken' requestBody: description: Information for notification content: application/json: schema: type: object properties: channel: type: string description: Name of notification channel destination: type: string description: Target of the notification in the channel responses: '200': description: Successfully added notification channel '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' /admin/status: get: summary: Get current inboard broadcaster operationId: StatusAdmin tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: Gives the status of the system content: application/json: schema: $ref: '#/components/schemas/AdminStatus' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: StatusAdminOptions tags: ['Objects'] responses: '204': $ref: '#/components/responses/204' /admin/disconnect: get: summary: Disconnect inbound stream operationId: DisconnectInboundConnection tags: ['Internal', 'Admin', 'Video'] security: - BasicAuth: [] responses: '200': description: Contains information about disconnection status content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: DisconnectInboundConnectionOptions tags: ['Objects', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/serverconfig: get: summary: Get the current server config operationId: GetServerConfig tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: Current server config content: application/json: schema: $ref: '#/components/schemas/AdminServerConfig' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetServerConfigOptions tags: ['Objects'] responses: '204': $ref: '#/components/responses/204' /admin/viewersOverTime: get: summary: Get viewer count over time operationId: GetViewersOverTime tags: ['Internal', 'Admin'] security: - BasicAuth: [] parameters: - in: query name: windowStart description: Start date in unix time schema: type: string responses: '200': description: Viewer count over time content: application/json: schema: type: array items: $ref: '#/components/schemas/TimestampedValue' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetViewersOverTimeOptions tags: ['Objects'] responses: '204': $ref: '#/components/responses/204' /admin/viewers: get: summary: Get active viewers operationId: GetActiveViewers tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: List of active viewers content: application/json: schema: type: array items: $ref: '#/components/schemas/Viewer' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetActiveViewersOptions tags: ['Objects', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/hardwarestats: get: summary: Get the current hardware stats operationId: GetHardwareStats tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: Current hardware stats content: application/json: schema: allOf: - $ref: '#/components/schemas/StreamHealthOverview' - $ref: '#/components/schemas/CollectedMetrics' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetHardwareStatsOptions tags: ['Objects'] responses: '204': $ref: '#/components/responses/204' /admin/chat/clients: get: summary: Get a detailed list of currently connected chat clients operationId: GetConnectedChatClients tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] responses: '200': description: List of chat clients content: application/json: schema: $ref: '#/components/schemas/ChatClients' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetConnectedChatClientsOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/messages: get: summary: Get all chat messages for the admin, unfiltered operationId: GetChatMessagesAdmin tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] responses: '200': description: List of chat messages for the admin content: application/json: schema: $ref: '#/components/schemas/ChatMessages' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetChatMessagesAdminOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/messagevisibility: post: summary: Update visibility of chat messages operationId: UpdateMessageVisibilityAdmin tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageVisibilityUpdate' responses: '200': description: Messages updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: UpdateMessageVisibilityAdminOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/users/setenabled: post: summary: Enable or disable a user operationId: UpdateUserEnabledAdmin tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: userId: type: string enabled: type: boolean responses: '200': description: Successfully updated the user content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: UpdateUserEnabledAdminOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/users/disabled: get: summary: Get a list of disabled users operationId: GetDisabledUsers tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] responses: '200': description: List of disabled users content: application/json: schema: $ref: '#/components/schemas/Users' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetDisabledUsersOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/users/ipbans/create: post: summary: Ban an IP address operationId: BanIPAddress tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: IP was successfully banned content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: BanIPAddressOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/users/ipbans/remove: post: summary: Remove an IP ban operationId: UnbanIPAddress tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminConfigValue' responses: '200': description: IP ban was successfully removed content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: UnbanIPAddressOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/users/ipbans: get: summary: Get all banned IP addresses operationId: GetIPAddressBans tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] responses: '200': description: List of banned IP addresses content: application/json: schema: type: array items: $ref: '#/components/schemas/IPAddress' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetIPAddressBansOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/users/setmoderator: post: summary: Set moderator status for a user operationId: UpdateUserModerator tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: userId: type: string isModerator: type: boolean responses: '200': description: Successfully update the moderator status of the user content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: UpdateUserModeratorOptions tags: ['Objects', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/chat/users/moderators: get: summary: Get a list of moderator users operationId: GetModerators tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] responses: '200': description: List of moderator users content: application/json: schema: $ref: '#/components/schemas/Users' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetModeratorsOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/logs: get: summary: Get all logs operationId: GetLogs tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: List of logs headers: 'Access-Control-Allow-Origin': $ref: '#/components/headers/Access-Control-Allow-Origin' 'Access-Control-Allow-Credentials': $ref: '#/components/headers/Access-Control-Allow-Credentials' 'Access-Control-Allow-Headers': $ref: '#/components/headers/Access-Control-Allow-Headers' content: application/json: schema: type: array items: $ref: '#/components/schemas/AdminLog' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetLogsOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/logs/warnings: get: summary: Get warning/error logs operationId: GetWarnings tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: List of warnings and errors headers: 'Access-Control-Allow-Origin': $ref: '#/components/headers/Access-Control-Allow-Origin' 'Access-Control-Allow-Credentials': $ref: '#/components/headers/Access-Control-Allow-Credentials' 'Access-Control-Allow-Headers': $ref: '#/components/headers/Access-Control-Allow-Headers' content: application/json: schema: type: array items: $ref: '#/components/schemas/AdminLog' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetWarningsOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/followers: get: summary: Get followers operationId: GetFollowersAdmin tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: Paginated follower count content: application/json: schema: $ref: '#/components/schemas/PaginatedFollowers' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetFollowersAdminOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/followers/pending: get: summary: Get a list of pending follow requests operationId: GetPendingFollowRequests tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] responses: '200': description: List of pending followers content: application/json: schema: $ref: '#/components/schemas/Followers' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetPendingFollowRequestsOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/followers/blocked: get: summary: Get a list of rejected or blocked follows operationId: GetBlockedAndRejectedFollowers tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] responses: '200': description: List of rejected or blocked follows content: application/json: schema: $ref: '#/components/schemas/Followers' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetBlockedAndRejectedFollowersOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/followers/approve: post: summary: Set the following state of a follower or follow request operationId: ApproveFollower tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: actorIRI: type: string approved: type: boolean responses: '200': description: List of rejected or blocked follows content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: ApproveFollowerOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/emoji/upload: post: summary: Upload custom emoji operationId: UploadCustomEmoji tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: name: type: string data: description: Base 64 encoded image data type: string responses: '200': description: Emoji has been uploaded content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: UploadCustomEmojiOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/emoji/delete: post: summary: Delete custom emoji operationId: DeleteCustomEmoji tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: name: type: string responses: '200': description: Emoji has been deleted content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: DeleteCustomEmojiOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/adminpass: post: summary: Change the current admin password operationId: SetAdminPassword tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Admin password has been updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetAdminPasswordOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/streamkeys: post: summary: Set an array of valid stream keys operationId: SetStreamKeys tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/StreamKey' responses: '200': description: Stream keys have been updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetStreamKeysOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/pagecontent: post: summary: Change the extra page content in memory operationId: SetExtraPageContent tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Page content has been changed content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetExtraPageContentOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/streamtitle: post: summary: Change the stream title operationId: SetStreamTitle tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Stream title has been changed content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetStreamTitleOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/name: post: summary: Change the server name operationId: SetServerName tags: ['Objects', 'Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Server name has been changed content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetServerNameOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/serversummary: post: summary: Change the server summary operationId: SetServerSummary tags: ['Objects', 'Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Server summary has been changed content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetServerSummaryOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/offlinemessage: post: summary: Change the offline message operationId: SetCustomOfflineMessage tags: ['Objects', 'Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Offline message has been changed content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetCustomOfflineMessageOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/welcomemessage: post: summary: Change the welcome message operationId: SetServerWelcomeMessage tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Welcome message has been changed content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetServerWelcomeMessageOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/chat/disable: post: summary: Disable chat operationId: SetChatDisabled tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Chat has been disabled content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetChatDisabledOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/chat/joinmessagesenabled: post: summary: Enable chat for user join messages operationId: SetChatJoinMessagesEnabled tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: User join messages has been enabled content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetChatJoinMessagesEnabledOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/chat/establishedusermode: post: summary: Enable/disable chat established user mode operationId: SetEnableEstablishedChatUserMode tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Chat established user mode updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetEnableEstablishedChatUserModeOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/chat/forbiddenusernames: post: summary: Set chat usernames that are not allowed operationId: SetForbiddenUsernameList tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: type: array items: type: string responses: '200': description: Forbidden usernames updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetForbiddenUsernameListOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/chat/suggestedusernames: post: summary: Set the suggested chat usernames that will be assigned automatically operationId: SetSuggestedUsernameList tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: type: array items: type: string responses: '200': description: Suggested usernames updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetSuggestedUsernameListOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/chat/spamprotectionenabled: post: summary: Set spam protection enabled operationId: SetChatSpamProtectionEnabled tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Spam protection enabled updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetChatSpamProtectionEnabledOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/chat/slurfilterenabled: post: summary: Set slur filter enabled operationId: SetChatSlurFilterEnabled tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Slur filter enabled updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetChatSlurFilterEnabledOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/video/codec: post: summary: Set video codec operationId: SetVideoCodec tags: ['Internal', 'Admin', 'Video'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Video codec updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetVideoCodecOptions tags: ['Objects', 'Internal', 'Admin', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/config/video/streamlatencylevel: post: summary: Set the number of video segments and duration per segment in a playlist operationId: SetStreamLatencyLevel tags: ['Internal', 'Admin', 'Video'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Stream latency updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetStreamLatencyLevelOptions tags: ['Objects', 'Internal', 'Admin', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/config/video/streamoutputvariants: post: summary: Set an array of video output configurations operationId: SetStreamOutputVariants tags: ['Internal', 'Admin', 'Video'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/StreamOutputVariant' responses: '200': description: Stream Output Variants updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetStreamOutputVariantsOptions tags: ['Objects', 'Internal', 'Admin', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/config/appearance: post: summary: Set style/color/css values operationId: SetCustomColorVariableValues tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: type: object additionalProperties: type: string responses: '200': description: Appearance updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetCustomColorVariableValuesOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/logo: post: summary: Update logo operationId: SetLogo tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Logo updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetLogoOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/tags: post: summary: Update server tags operationId: SetTags tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Tags updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetTagsOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/ffmpegpath: post: summary: Update FFMPEG path operationId: SetFfmpegPath tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Path updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetFfmpegPathOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/webserverport: post: summary: Update server port operationId: SetWebServerPort tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Port updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetWebServerPortOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/webserverip: post: summary: Update server IP address operationId: SetWebServerIP tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: IP Address updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetWebServerIPOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/rtmpserverport: post: summary: Update RTMP post operationId: SetRTMPServerPort tags: ['Internal', 'Admin', 'Video'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: RTMP port updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetRTMPServerPortOptions tags: ['Objects', 'Internal', 'Admin', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/config/sockethostoverride: post: summary: Update websocket host override operationId: SetSocketHostOverride tags: ['Internal', 'Admin', 'Chat'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Websocket host override updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetSocketHostOverrideOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /admin/config/videoservingendpoint: post: summary: Update custom video serving endpoint operationId: SetVideoServingEndpoint tags: ['Internal', 'Admin', 'Video'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Video Serving Endpoint updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetVideoServingEndpointOptions tags: ['Objects', 'Internal', 'Admin', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/config/nsfw: post: summary: Update NSFW marking operationId: SetNSFW tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: NSFW status updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetNSFWOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/directoryenabled: post: summary: Update directory enabled operationId: SetDirectoryEnabled tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Directory Enabled updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetDirectoryEnabledOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/socialhandles: post: summary: Update social handles operationId: SetSocialHandles tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/SocialHandle' responses: '200': description: Social handles updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetSocialHandlesOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/s3: post: summary: Update S3 configuration operationId: SetS3Configuration tags: ['Internal', 'Admin', 'Video'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: $ref: '#/components/schemas/S3Info' responses: '200': description: Directory Enabled updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetS3ConfigurationOptions tags: ['Objects', 'Internal', 'Admin', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/config/serverurl: post: summary: Update server url operationId: SetServerURL tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Server URL updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetServerURLOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/externalactions: post: summary: Update external action links operationId: SetExternalActions tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/ExternalAction' responses: '200': description: External Action Links updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetExternalActionsOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/customstyles: post: summary: Update custom styles operationId: SetCustomStyles tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Custom styles updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetCustomStylesOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/customjavascript: post: summary: Update custom JavaScript operationId: SetCustomJavascript tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Custom JavaScript updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetCustomJavascriptOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/hideviewercount: post: summary: Update hide viewer count operationId: SetHideViewerCount tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Hide viewer count updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetHideViewerCountOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/disablesearchindexing: post: summary: Update search indexing operationId: SetDisableSearchIndexing tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Search Indexing updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetDisableSearchIndexingOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/config/federation/enable: post: summary: Enable/disable federation features operationId: SetFederationEnabled tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Federation features enabled/disabled content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetFederationEnabledOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/config/federation/private: post: summary: Set if federation activities are private operationId: SetFederationActivityPrivate tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Private status set content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetFederationActivityPrivateOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/config/federation/showengagement: post: summary: Set if fediverse engagement appears in chat operationId: SetFederationShowEngagement tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Federation engagement set content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetFederationShowEngagementOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/config/federation/username: post: summary: Set local federated username operationId: SetFederationUsername tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Federation username set content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetFederationUsernameOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/config/federation/livemessage: post: summary: Set federated go live message operationId: SetFederationGoLiveMessage tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Federation username set content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetFederationGoLiveMessageOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/config/federation/blockdomains: post: summary: Set Federation blocked domains operationId: SetFederationBlockDomains tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Federation blocked domains set content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetFederationBlockDomainsOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/config/notifications/discord: post: summary: Configure Discord notifications operationId: SetDiscordNotificationConfiguration tags: ['Internal', 'Admin', 'Notifications'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: $ref: '#/components/schemas/DiscordNotificationConfiguration' responses: '200': description: Discord notification configuration updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetDiscordNotificationConfigurationOptions tags: ['Objects', 'Internal', 'Admin', 'Notifications'] responses: '204': $ref: '#/components/responses/204' /admin/config/notifications/browser: post: summary: Configure Browser notifications operationId: SetBrowserNotificationConfiguration tags: ['Internal', 'Admin', 'Notifications'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: value: $ref: '#/components/schemas/BrowserNotificationConfiguration' responses: '200': description: Browser notification configuration updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SetBrowserNotificationConfigurationOptions tags: ['Objects', 'Internal', 'Admin', 'Notifications'] responses: '204': $ref: '#/components/responses/204' /admin/webhooks: get: summary: Get all the webhooks operationId: GetWebhooks tags: ['Internal', 'Admin', 'Notifications'] security: - BasicAuth: [] responses: '200': description: All webhooks content: application/json: schema: type: array items: $ref: '#/components/schemas/Webhook' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetWebhooksOptions tags: ['Objects', 'Internal', 'Admin', 'Notifications'] responses: '204': $ref: '#/components/responses/204' /admin/webhooks/delete: post: summary: Delete a single webhook operationId: DeleteWebhook tags: ['Internal', 'Admin', 'Notifications'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: id: type: integer responses: '200': description: Webhook successfully deleted content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: DeleteWebhookOptions tags: ['Objects', 'Internal', 'Admin', 'Notifications'] responses: '204': $ref: '#/components/responses/204' /admin/webhooks/create: post: summary: Create a single webhook operationId: CreateWebhook tags: ['Internal', 'Admin', 'Notifications'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: url: type: string events: type: array items: $ref: '#/components/schemas/WebhookEventType' responses: '200': description: The new webhook content: application/json: schema: $ref: '#/components/schemas/Webhook' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: CreateWebhookOptions tags: ['Objects', 'Internal', 'Admin', 'Notifications'] responses: '204': $ref: '#/components/responses/204' /admin/accesstokens: get: summary: Get all access tokens operationId: GetExternalAPIUsers tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: List of external API users content: application/json: schema: type: array items: $ref: '#/components/schemas/ExternalAPIUser' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetExternalAPIUsersOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/accesstokens/delete: post: summary: Delete a single external API user operationId: DeleteExternalAPIUser tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: token: type: string responses: '200': description: External API user successfully deleted content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: DeleteExternalAPIUserOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/accesstokens/create: post: summary: Create a single access token operationId: CreateExternalAPIUser tags: ['Internal', 'Admin'] security: - BasicAuth: [] requestBody: content: application/json: schema: type: object properties: name: type: string scopes: type: array items: type: string responses: '200': description: The new external API user content: application/json: schema: $ref: '#/components/schemas/ExternalAPIUser' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: CreateExternalAPIUserOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/update/options: get: summary: Return the auto-update features that are supported for this instance operationId: AutoUpdateOptions tags: ['Internal', 'Admin'] x-internal: true security: - BasicAuth: [] responses: '200': description: Current auto-update options content: application/json: schema: type: object properties: supportsUpdate: type: boolean canRestart: type: boolean '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: AutoUpdateOptionsOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/update/start: get: summary: Begin the auto-update operationId: AutoUpdateStart tags: ['Internal', 'Admin'] x-internal: true security: - BasicAuth: [] responses: '200': description: Console output from update content: text/plain: schema: type: string '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: AutoUpdateStartOptions tags: ['Objects', 'Internal', 'Admin'] x-internal: true responses: '204': $ref: '#/components/responses/204' /admin/update/forcequit: get: summary: Force quit the server and restart it operationId: AutoUpdateForceQuit x-internal: true tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: Server force restart has been ordered content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: AutoUpdateForceQuitOptions tags: ['Objects', 'Internal', 'Admin'] x-internal: true responses: '204': $ref: '#/components/responses/204' /admin/yp/reset: get: summary: Reset YP configuration operationId: ResetYPRegistration tags: ['Internal', 'Admin'] security: - BasicAuth: [] responses: '200': description: YP Registration has been reset content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: ResetYPRegistrationOptions tags: ['Objects', 'Internal', 'Admin'] responses: '204': $ref: '#/components/responses/204' /admin/metrics/video: get: summary: Get video playback metrics operationId: GetVideoPlaybackMetrics tags: ['Internal', 'Admin', 'Video'] security: - BasicAuth: [] responses: '200': description: Video playback metrics content: application/json: schema: type: object properties: errors: type: array items: $ref: '#/components/schemas/TimestampedValue' qualityVariantChanges: type: array items: $ref: '#/components/schemas/TimestampedValue' highestLatency: type: array items: $ref: '#/components/schemas/TimestampedValue' medianLatency: type: array items: $ref: '#/components/schemas/TimestampedValue' lowestLatency: type: array items: $ref: '#/components/schemas/TimestampedValue' medianSegmentDownloadDuration: type: array items: $ref: '#/components/schemas/TimestampedValue' maximumSegmentDownloadDuration: type: array items: $ref: '#/components/schemas/TimestampedValue' minimumSegmentDownloadDuration: type: array items: $ref: '#/components/schemas/TimestampedValue' minPlayerBitrate: type: array items: $ref: '#/components/schemas/TimestampedValue' medianPlayerBitrate: type: array items: $ref: '#/components/schemas/TimestampedValue' maxPlayerBitrate: type: array items: $ref: '#/components/schemas/TimestampedValue' availableBitrates: type: array items: type: integer segmentLength: type: integer representation: type: integer '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetVideoPlaybackMetricsOptions tags: ['Objects', 'Internal', 'Admin', 'Video'] responses: '204': $ref: '#/components/responses/204' /admin/prometheus: get: summary: Endpoint to interface with Prometheus description: |- This endpoint interfaces with the Prometheus metrics API. Learn more about it on the [Prometheus API docs](https://prometheus.io/docs/prometheus/latest/querying/api/) operationId: GetPrometheusAPI tags: ['Internal', 'Admin'] post: summary: Endpoint to interface with Prometheus description: |- This endpoint interfaces with the Prometheus metrics API. Learn more about it on the [Prometheus API docs](https://prometheus.io/docs/prometheus/latest/querying/api/) operationId: PostPrometheusAPI tags: ['Internal', 'Admin'] put: summary: Endpoint to interface with Prometheus description: |- This endpoint interfaces with the Prometheus metrics API. Learn more about it on the [Prometheus API docs](https://prometheus.io/docs/prometheus/latest/querying/api/) operationId: PutPrometheusAPI tags: ['Internal', 'Admin'] delete: summary: Endpoint to interface with Prometheus description: |- This endpoint interfaces with the Prometheus metrics API. Learn more about it on the [Prometheus API docs](https://prometheus.io/docs/prometheus/latest/querying/api/) operationId: DeletePrometheusAPI tags: ['Internal', 'Admin'] options: summary: Endpoint to interface with Prometheus description: |- This endpoint interfaces with the Prometheus metrics API. Learn more about it on the [Prometheus API docs](https://prometheus.io/docs/prometheus/latest/querying/api/) operationId: OptionsPrometheusAPI tags: ['Internal', 'Admin'] /admin/federation/send: post: summary: Send a public message to the Fediverse from the server's user operationId: SendFederatedMessage tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Message sent content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: SendFederatedMessageOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /admin/federation/actions: get: summary: Get a paginated list of federated activities operationId: GetFederatedActions tags: ['Internal', 'Admin', 'Social'] security: - BasicAuth: [] parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A paginated list of federated activities content: application/json: schema: $ref: '#/components/schemas/PaginatedFederatedActivity' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: GetFederatedActionsOptions tags: ['Objects', 'Internal', 'Admin', 'Social'] responses: '204': $ref: '#/components/responses/204' /integrations/chat/system: post: summary: Send a system message to the chat operationId: SendSystemMessage tags: ['External', 'Chat'] security: - BearerAuth: [] requestBody: description: The content of the system message content: application/json: schema: $ref: '#/components/schemas/SystemMessage' responses: '200': description: Message sent successfully headers: 'Access-Control-Allow-Origin': $ref: '#/components/headers/Access-Control-Allow-Origin' content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '500': $ref: '#/components/responses/500' default: $ref: '#/components/responses/Default' options: operationId: SendSystemMessageOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /integrations/chat/system/client/{clientId}: post: summary: Send a system message to a single client operationId: SendSystemMessageToConnectedClient tags: ['External', 'Chat'] security: - BearerAuth: [] parameters: - in: path name: clientId required: true schema: type: integer description: The ID of the specified client requestBody: content: application/json: schema: $ref: '#/components/schemas/SystemMessage' responses: '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '500': $ref: '#/components/responses/500' default: $ref: '#/components/responses/Default' options: operationId: SendSystemMessageToConnectedClientOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] parameters: - in: path name: clientId required: true schema: type: integer description: The ID of the specified client responses: '204': $ref: '#/components/responses/204' /integrations/chat/user: post: deprecated: true summary: Send a user message to chat operationId: SendUserMessage tags: ['External', 'Chat'] security: - BearerAuth: [] responses: '400': $ref: '#/components/responses/400' options: deprecated: true operationId: SendUserMessageOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /integrations/chat/send: post: summary: Send a message to chat as a specific 3rd party bot/integration based on its access token operationId: SendIntegrationChatMessage tags: ['External', 'Chat'] security: - BearerAuth: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/UserMessage' responses: '200': description: Message sent successfully content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '500': $ref: '#/components/responses/500' default: $ref: '#/components/responses/Default' options: operationId: SendIntegrationChatMessageOptions tags: ['Objects', 'External', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /integrations/chat/action: post: summary: Send a user action to chat operationId: SendChatAction tags: ['External', 'Chat'] security: - BearerAuth: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/SystemActionEvent' responses: '200': description: Action sent successfully content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '500': $ref: '#/components/responses/500' default: $ref: '#/components/responses/Default' options: operationId: SendChatActionOptions tags: ['Objects', 'Internal', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /integrations/chat/messagevisibility: post: summary: Hide chat message operationId: ExternalUpdateMessageVisibility tags: ['External', 'Chat'] security: - BearerAuth: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/MessageVisibilityUpdate' responses: '200': description: Messages updated content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: ExternalUpdateMessageVisibilityOptions tags: ['Objects', 'External', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /integrations/streamtitle: post: summary: Stream title operationId: ExternalSetStreamTitle tags: ['External'] security: - BearerAuth: [] requestBody: $ref: '#/components/requestBodies/AdminConfigValue' responses: '200': description: Stream title has been changed content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: ExternalSetStreamTitleOptions tags: ['Objects', 'External', 'Admin'] responses: '204': $ref: '#/components/responses/204' /integrations/chat: get: summary: Get chat history operationId: ExternalGetChatMessages tags: ['External', 'Chat'] security: - BearerAuth: [] responses: '200': description: List of chat messages content: application/json: schema: $ref: '#/components/schemas/ChatMessages' '401': $ref: '#/components/responses/401' '501': $ref: '#/components/responses/501' default: $ref: '#/components/responses/Default' options: operationId: ExternalGetChatMessagesOptions tags: ['Objects', 'External', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /integrations/clients: get: summary: Connected clients operationId: ExternalGetConnectedChatClients tags: ['External', 'Chat'] security: - BearerAuth: [] responses: '200': description: List of chat clients content: application/json: schema: $ref: '#/components/schemas/ChatClients' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401BasicAuth' default: $ref: '#/components/responses/Default' options: operationId: ExternalGetConnectedChatClientsOptions tags: ['Objects', 'External', 'Admin', 'Chat'] responses: '204': $ref: '#/components/responses/204' /moderation/chat/user/{userId}: get: summary: Get a user's details operationId: GetUserDetails tags: ['External', 'Chat'] parameters: - in: path name: userId schema: type: string description: The ID of the user to find required: true - $ref: '#/components/parameters/AccessToken' responses: '200': description: User information content: application/json: schema: $ref: '#/components/schemas/ModerationUserDetails' '401': $ref: '#/components/responses/401' '404': $ref: '#/components/responses/404' default: $ref: '#/components/responses/Default' /auth/indieauth: post: summary: Begins auth flow operationId: StartIndieAuthFlow tags: ['Internal', 'Auth', 'Chat'] parameters: - $ref: '#/components/parameters/AccessToken' requestBody: content: application/json: schema: type: object properties: authHost: type: string responses: '200': description: Authentication redirect content: application/json: schema: type: object properties: redirect: type: string format: url '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' default: $ref: '#/components/responses/Default' /auth/indieauth/callback: get: summary: Handle the redirect from an IndieAuth server to continue the auth flow operationId: HandleIndieAuthRedirect tags: ['Internal', 'Auth', 'Chat'] parameters: - $ref: '#/components/parameters/IndieAuthState' - $ref: '#/components/parameters/IndieAuthCode' responses: '307': description: Redirected to home page '400': $ref: '#/components/responses/400' /auth/provider/indieauth: get: summary: Handles the IndieAuth auth endpoint operationId: HandleIndieAuthEndpointGet tags: ['Internal', 'Auth', 'Chat'] security: - BasicAuth: [] parameters: - $ref: '#/components/parameters/IndieAuthClientId' - $ref: '#/components/parameters/IndieAuthRedirectURI' - $ref: '#/components/parameters/IndieAuthCodeChallenge' - $ref: '#/components/parameters/IndieAuthState' - $ref: '#/components/parameters/IndieAuthCode' responses: '200': description: IndieAuth flow concluded content: application/json: schema: $ref: '#/components/schemas/IndieAuthResponse' '307': description: Redirected to redirect URI '400': $ref: '#/components/responses/400' '500': $ref: '#/components/responses/500' post: summary: Handles IndieAuth from form submission operationId: HandleIndieAuthEndpointPost tags: ['Internal', 'Auth', 'Chat'] requestBody: $ref: '#/components/requestBodies/IndieAuthEndpointForm' responses: '200': description: IndieAuth flow concluded content: application/json: schema: oneOf: - $ref: '#/components/schemas/IndieAuthResponse' - $ref: '#/components/schemas/IndieAuthServerProfileResponse' '400': $ref: '#/components/responses/400' /auth/fediverse: post: summary: Register a Fediverse OTP request operationId: RegisterFediverseOTPRequest tags: ['Internal', 'Auth', 'Chat'] parameters: - $ref: '#/components/parameters/AccessToken' requestBody: content: application/json: schema: type: object properties: account: type: string responses: '200': description: OTP sent content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' /auth/fediverse/verify: post: summary: Verify Fediverse OTP code operationId: VerifyFediverseOTPRequest tags: ['Internal', 'Auth', 'Chat'] requestBody: content: application/json: schema: type: object properties: code: type: string responses: '200': description: OTP Verified content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '400': $ref: '#/components/responses/400' '403': $ref: '#/components/responses/403' components: schemas: Error: type: object description: Structure for an error response tags: ['Objects'] properties: error: type: string BaseAPIResponse: type: object description: Simple API response tags: ['Objects'] properties: message: type: string success: type: boolean Status: type: object description: Response for status tags: ['Objects'] properties: serverTime: type: string lastConnectTime: type: string lastDisconnectTime: type: string versionNumber: type: string viewerCount: type: integer online: type: boolean Emojis: type: array items: $ref: '#/components/schemas/Emoji' Emoji: type: object description: Name and url for an emoji tags: ['Objects'] properties: name: type: string description: The name of the emoji url: type: string description: URL for the emoji image AnonymousUser: type: object tags: ['Objects'] properties: id: type: string accessToken: type: string displayName: type: string User: type: object tags: ['Objects'] properties: createdAt: type: string disabledAt: type: string nameChangedAt: type: string id: type: string displayName: type: string previousNames: type: array items: type: string scopes: type: array items: type: string displayColor: type: integer isBot: type: boolean authenticated: type: boolean Users: type: array items: $ref: '#/components/schemas/User' Follower: type: object tags: ['Objects'] properties: link: type: string description: The IRI of the remote actor. name: type: string description: The display name of the follower. username: type: string description: The account username of the remote actor. image: type: string description: The avatar image of the follower. timestamp: type: string description: When this follow request was created. disabledAt: type: string description: When this follower was rejected or disabled. Followers: type: array tags: ['Objects'] items: $ref: '#/components/schemas/Follower' PaginatedFollowers: type: object tags: ['Objects'] properties: total: type: integer results: $ref: '#/components/schemas/Followers' Event: type: object tags: ['Objects'] properties: timestamp: type: string type: type: string id: type: string UserEvent: type: object tags: ['Objects'] properties: user: $ref: '#/components/schemas/User' hiddenAt: type: string clientId: type: integer MessageEvent: type: object tags: ['Objects'] properties: body: type: string ChatMessages: type: array tags: ['Objects'] items: anyOf: - $ref: '#/components/schemas/UserMessage' - $ref: '#/components/schemas/SystemMessage' - $ref: '#/components/schemas/ActionMessage' - $ref: '#/components/schemas/FederatedAction' UserMessage: type: object tags: ['Objects'] allOf: - $ref: '#/components/schemas/Event' - $ref: '#/components/schemas/UserEvent' - $ref: '#/components/schemas/MessageEvent' SystemMessage: type: object tags: ['Objects'] allOf: - $ref: '#/components/schemas/Event' - $ref: '#/components/schemas/MessageEvent' SystemActionEvent: type: object tags: ['Objects'] allOf: - $ref: '#/components/schemas/Event' - $ref: '#/components/schemas/MessageEvent' ActionMessage: type: object tags: ['Objects'] allOf: - $ref: '#/components/schemas/Event' - $ref: '#/components/schemas/MessageEvent' FederatedAction: type: object tags: ['Objects'] allOf: - $ref: '#/components/schemas/Event' - $ref: '#/components/schemas/MessageEvent' - type: object properties: image: type: string link: type: string title: type: string WebConfig: type: object tags: ['Objects'] properties: appearanceVariables: type: object additionalProperties: type: string name: type: string customStyles: type: string streamTitle: type: string offlineMessage: type: string logo: type: string version: type: string socketHostOverride: type: string extraPageContent: type: string summary: type: string tags: type: array items: type: string socialHandles: type: array items: $ref: '#/components/schemas/SocialHandle' externalActions: type: array items: $ref: '#/components/schemas/ExternalAction' notifications: $ref: '#/components/schemas/NotificationConfig' federation: $ref: '#/components/schemas/FederationConfig' maxSocketPayloadSize: type: integer hideViewerCount: type: boolean chatDisabled: type: boolean nsfw: type: boolean authentication: $ref: '#/components/schemas/AuthenticationConfig' SocialHandle: type: object tags: ['Objects'] properties: platform: type: string url: type: string icon: type: string ExternalAction: type: object tags: ['Objects'] properties: url: type: string html: type: string title: type: string description: type: string icon: type: string color: type: string openExternally: type: boolean NotificationConfig: type: object tags: ['Objects'] properties: browser: $ref: '#/components/schemas/BrowserConfig' BrowserConfig: type: object tags: ['Objects'] properties: publicKey: type: string enabled: type: boolean FederationConfig: type: object tags: ['Objects'] properties: account: type: string followerCount: type: integer enabled: type: boolean AuthenticationConfig: type: object tags: ['Objects'] properties: indieAuthEnabled: type: boolean YPDetails: type: object tags: ['Objects'] properties: lastConnectTime: type: string name: type: string description: type: string streamTitle: type: string logo: type: string tags: type: array items: type: string social: type: array items: $ref: '#/components/schemas/SocialHandle' viewerCount: type: integer overallMaxViewerCount: type: integer sessionMaxViewerCount: type: integer nsfw: type: boolean online: type: boolean VideoVariant: type: object tags: ['Objects', 'Video'] properties: index: type: integer name: type: string PlaybackMetrics: type: object tags: ['Objects', 'Video'] properties: bandwidth: type: number format: double latency: type: number format: double errors: type: number format: double downloadDuration: type: number format: double qualityVariantChanges: type: number format: double Broadcaster: type: object tags: ['Objects', 'Video'] properties: time: type: string format: date-time remoteAddr: type: string streamDetails: $ref: '#/components/schemas/InboundStreamDetails' InboundStreamDetails: type: object tags: ['Objects', 'Video'] properties: videoCodec: type: string audioCodec: type: string encoder: type: string width: type: integer height: type: integer videoBitrate: type: integer audioBitrate: type: integer framerate: type: number format: float CurrentBroadcast: type: object tags: ['Objects', 'Video'] properties: outputSettings: type: array items: $ref: '#/components/schemas/StreamOutputVariant' latencyLevel: $ref: '#/components/schemas/LatencyLevel' StreamOutputVariant: type: object tags: ['Objects', 'Video'] properties: name: type: string videoPassthrough: type: boolean audioPassthrough: type: boolean videoBitrate: type: integer audioBitrate: type: integer scaledWidth: type: integer scaledHeight: type: integer framerate: type: integer cpuUsageLevel: type: integer LatencyLevel: type: object properties: level: type: integer StreamHealthOverview: type: object tags: ['Objects', 'Video'] properties: message: type: string healthPercentage: type: integer representation: type: integer healthy: type: boolean BrowserNotificationConfiguration: type: object tags: ['Objects', 'Notifications'] properties: goLiveMessage: type: string enabled: type: boolean DiscordNotificationConfiguration: type: object tags: ['Objects', 'Notifications'] properties: webhook: type: string goLiveMessage: type: string enabled: type: boolean S3Info: type: object tags: ['Objects'] properties: endpoint: type: string accessKey: type: string secret: type: string bucket: type: string region: type: string acl: type: string pathPrefix: type: string enabled: type: boolean forcePathStyle: type: boolean StreamKey: type: object tags: ['Objects'] properties: key: type: string comment: type: string TimestampedValue: type: object tags: ['Objects'] properties: time: type: string format: date-time value: type: number format: double Viewer: type: object tags: ['Objects', 'Video'] properties: firstSeen: type: string format: date-time geo: $ref: '#/components/schemas/GeoDetails' userAgent: type: string ipAddress: type: string clientID: type: string GeoDetails: type: object tags: ['Objects'] properties: countryCode: type: string regionName: type: string timeZone: type: string CollectedMetrics: tags: ['Objects'] type: object properties: disk: type: array items: $ref: '#/components/schemas/TimestampedValue' memory: type: array items: $ref: '#/components/schemas/TimestampedValue' cpu: type: array items: $ref: '#/components/schemas/TimestampedValue' ChatClient: type: object tags: ['Objects', 'Chat'] properties: connectedAt: type: string format: date-time user: $ref: '#/components/schemas/User' geo: $ref: '#/components/schemas/GeoDetails' userAgent: type: string messageCount: type: integer ChatClients: type: array tags: ['Objects', 'Chat'] items: $ref: '#/components/schemas/ChatClient' IPAddress: type: object tags: ['Objects', 'Chat'] properties: createdAt: type: string format: date-time ipAddress: type: string notes: type: string Webhook: type: object tags: ['Objects', 'Notifications'] properties: timestamp: type: string format: date-time lastUsed: type: string format: date-time url: type: string events: type: array items: $ref: '#/components/schemas/WebhookEventType' id: type: integer WebhookEventType: type: string tags: ['Objects', 'Notifications'] enum: - CHAT - USER_JOINED - USER_PARTED - NAME_CHANGE - VISIBILITY-UPDATE - PING - PONG - STREAM_STARTED - STREAM_STOPPED - STREAM_TITLE_UPDATED - SYSTEM - CHAT_ACTION ExternalAPIUser: type: object properties: createdAt: type: string format: date-time lastUsedAt: type: string format: date-time id: type: string accessToken: type: string displayName: type: string type: type: string scopes: type: array items: type: string displayColor: type: integer isBot: type: boolean MessageVisibilityUpdate: type: object tags: ['Objects', 'Chat'] properties: idArray: type: array items: type: string visible: type: boolean ModerationUserDetails: type: object tags: ['Objects', 'Chat'] properties: user: $ref: '#/components/schemas/User' connectedClients: type: array items: $ref: '#/components/schemas/ModerationConnectedClient' messages: type: array items: $ref: '#/components/schemas/UserMessage' ModerationConnectedClient: type: object tags: ['Objects', 'Chat'] properties: connectedAt: type: string format: date-time userAgent: type: string geo: type: string id: type: integer format: int64 messageCount: type: integer FederatedActivity: type: object tags: ['Objects', 'Social'] properties: timestamp: type: string format: date-time iri: type: string actorIRI: type: string type: type: string PaginatedFederatedActivity: type: object tags: ['Objects', 'Social'] properties: total: type: integer results: $ref: '#/components/schemas/FederatedActivity' AdminStatus: type: object tags: ['Objects'] properties: broadcaster: $ref: '#/components/schemas/Broadcaster' currentBroadcast: $ref: '#/components/schemas/CurrentBroadcast' health: $ref: '#/components/schemas/StreamHealthOverview' streamTitle: type: string versionNumber: type: string viewerCount: type: integer overallPeakViewerCount: type: integer sessionPeakViewerCount: type: integer online: type: boolean AdminServerConfig: type: object tags: ['Objects'] properties: instanceDetails: $ref: '#/components/schemas/AdminWebConfig' notifications: $ref: '#/components/schemas/AdminNotificationsConfig' yp: $ref: '#/components/schemas/AdminYPInfo' ffmpegPath: type: string adminPassword: type: string socketHostOverride: type: string webServerIP: type: string videoCodec: type: string videoServingEndpoint: type: string s3: $ref: '#/components/schemas/S3Info' federation: $ref: '#/components/schemas/AdminFederationConfig' supportedCodecs: type: array items: type: string externalActions: type: array items: $ref: '#/components/schemas/ExternalAction' forbiddenUsernames: type: array items: type: string suggestedUsernames: type: array items: type: string streamKeys: type: array items: $ref: '#/components/schemas/StreamKey' videoSettings: $ref: '#/components/schemas/AdminVideoSettings' rtmpServerPort: type: integer webServerPort: type: integer chatDisabled: type: boolean chatJoinMessagesEnabled: type: boolean chatEstablishedUserMode: type: boolean disableSearchIndexing: type: boolean streamKeyOverridden: type: boolean hideViewerCount: type: boolean AdminWebConfig: type: object tags: ['Objects'] properties: appearanceVariables: type: object additionalProperties: type: string version: type: string welcomeMessage: type: string offlineMessage: type: string logo: type: string name: type: string extraPageContent: type: string streamTitle: type: string customStyles: type: string customJavascript: type: string summary: type: string tags: type: array items: type: string socialHandles: type: array items: $ref: '#/components/schemas/SocialHandle' nsfw: type: boolean AdminNotificationsConfig: type: object tags: ['Objects', 'Notifications'] properties: browser: $ref: '#/components/schemas/BrowserNotificationConfiguration' discord: $ref: '#/components/schemas/DiscordNotificationConfiguration' AdminYPInfo: type: object tags: ['Objects'] properties: instanceUrl: type: string enabled: type: boolean AdminFederationConfig: tags: ['Objects', 'Social'] type: object properties: username: type: string goLiveMessage: type: string blockedDomains: type: array items: type: string enabled: type: boolean isPrivate: type: boolean showEngagement: type: boolean AdminVideoSettings: type: object tags: ['Objects', 'Video'] properties: videoQualityVariants: type: array items: $ref: '#/components/schemas/StreamOutputVariant' latencyLevel: type: integer AdminLog: type: object tags: ['Objects'] properties: time: type: string format: date-time message: type: string level: type: string AdminConfigValue: type: object tags: ['Objects'] properties: value: oneOf: - type: string - type: boolean - type: array items: type: string - type: number IndieAuthResponse: type: object tags: ['Objects', 'Auth'] properties: me: type: string profile: $ref: '#/components/schemas/IndieAuthProfile' error: type: string errorDescription: type: string IndieAuthProfile: type: object tags: ['Objects', 'Auth'] properties: name: type: string url: type: string photo: type: string IndieAuthServerProfileResponse: type: object tags: ['Objects', 'Auth'] properties: me: type: string profile: $ref: '#/components/schemas/IndieAuthServerProfile' error: type: string errorDescription: type: string IndieAuthServerProfile: type: object tags: ['Objects', 'Auth'] properties: name: type: string url: type: string photo: type: string headers: 'Access-Control-Allow-Origin': schema: type: string 'Access-Control-Allow-Credentials': schema: type: string format: boolean 'Access-Control-Allow-Headers': schema: type: string 'WWW-Authenticate': schema: type: string 'X-Content-Type-Options': schema: type: string requestBodies: AdminConfigValue: description: A single value that is used in the request content: application/json: schema: $ref: '#/components/schemas/AdminConfigValue' IndieAuthEndpointForm: description: Form submission from IndieAuth content: application/x-www-form-urlencoded: schema: type: object properties: code: type: string redirect_uri: type: string client_id: type: string codeVerifier: type: string responses: Default: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '204': description: No Content '204Options': description: No Content headers: 'Access-Control-Allow-Origin': $ref: '#/components/headers/Access-Control-Allow-Origin' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/BaseAPIResponse' '401': description: Unauthorized content: text/plain: schema: type: string '401BasicAuth': description: Basic auth failure headers: 'Access-Control-Allow-Origin': $ref: '#/components/headers/Access-Control-Allow-Origin' 'Access-Control-Allow-Credentials': $ref: '#/components/headers/Access-Control-Allow-Credentials' 'Access-Control-Allow-Headers': $ref: '#/components/headers/Access-Control-Allow-Headers' 'WWW-Authenticate': $ref: '#/components/headers/WWW-Authenticate' 'X-Content-Type-Options': $ref: '#/components/headers/X-Content-Type-Options' content: text/plain: schema: type: string '403': description: Forbidden '404': description: Not found '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' parameters: Offset: in: query name: offset schema: type: integer description: The number of items to skip before starting to collect the result set Limit: in: query name: limit schema: type: integer description: The numbers of items to return AccessToken: in: query name: accessToken schema: type: string required: true IndieAuthClientId: in: query name: client_id schema: type: string required: true IndieAuthRedirectURI: in: query name: redirect_uri schema: type: string required: true IndieAuthCodeChallenge: in: query name: code_challenge schema: type: string required: true IndieAuthState: in: query name: state schema: type: string required: true IndieAuthCode: in: query name: code schema: type: string required: true IndieAuthMe: in: query name: me schema: type: string required: true securitySchemes: BasicAuth: type: http scheme: basic BearerAuth: type: http scheme: bearer tags: - name: External description: |- These APIs are specifically exposed for building third party applications or tooling. They use auth tokens to authenticate and are designed to be stable and reliable. - name: Internal description: |- These APIs are used internally for the operation of the application. They should not be used by third party clients or tooling, as they may require sharing your admin password, and additionally may change at any time. - name: Auth description: Authentication API - name: Chat description: APIs related to operating the chat system. - name: Objects description: Object definitions - name: Video description: Video API - name: Notifications description: Notification API - name: Social description: Social API