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 x-logo: url: >- data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAEvmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEyOCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjEyOCIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICB0aWZmOkltYWdlV2lkdGg9IjEyOCIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTI4IgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI5Ni4wIgogICB0aWZmOllSZXNvbHV0aW9uPSI5Ni4wIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIw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 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true tags: ['Objects', 'Internal', 'Admin'] 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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 x-internal: true 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