mirror of
https://github.com/owncast/owncast.git
synced 2024-11-25 14:20:54 +03:00
2513b15b40
* chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * feat(chat): basic profanity filter. For #3139 * feat(chat): add setting for disabling chat spam protection. Closes #3523 * feat(chat): wire up the new chat slur filter to admin and chat. Closes #3139 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4114 lines
114 KiB
YAML
4114 lines
114 KiB
YAML
openapi: 3.1.0
|
|
|
|
info:
|
|
version: 0.1.2
|
|
title: Owncast APIs
|
|
description: |-
|
|
Internal
|
|
The APIs required to make the Owncast web interface and internal functionality work. These APIs will never reach stability and will always change as Owncast features and functionality change. This means these endpoints are not good options to build your own tooling and features on top of. You can, however, of course can if that risk is acceptable to you.
|
|
|
|
Admin
|
|
The APIs used to configure the Owncast server, as well as power the web admin interface. These APIs are protected by the admin password, using HTTP Basic authentication. They should not be used by external tools or integrations as it would require you to give your admin password to a third party.
|
|
contact:
|
|
name: Gabe Kangas
|
|
email: gabek@real-ity.com
|
|
url: 'http://owncast.online'
|
|
license:
|
|
url: 'https://github.com/owncast/owncast/blob/develop/LICENSE'
|
|
name: MIT
|
|
servers:
|
|
- url: 'http://localhost:8080/api'
|
|
description: Localhost port 8080
|
|
|
|
paths:
|
|
/status:
|
|
get:
|
|
summary: Get the status of the server
|
|
operationId: GetStatus
|
|
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
|
|
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
|
|
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
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204Options"
|
|
/chat/messagevisibility:
|
|
post:
|
|
summary: Update chat message visibility
|
|
operationId: UpdateMessageVisibility
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
responses:
|
|
'200':
|
|
description: Added as an active viewer
|
|
/remotefollow:
|
|
post:
|
|
summary: Request remote follow
|
|
operationId: RemoteFollow
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/disconnect:
|
|
get:
|
|
summary: Disconnect inbound stream
|
|
operationId: DisconnectInboundConnection
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/serverconfig:
|
|
get:
|
|
summary: Get the current server config
|
|
operationId: GetServerConfig
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/viewersOverTime:
|
|
get:
|
|
summary: Get viewer count over time
|
|
operationId: GetViewersOverTime
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/viewers:
|
|
get:
|
|
summary: Get active viewers
|
|
operationId: GetActiveViewers
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/hardwarestats:
|
|
get:
|
|
summary: Get the current hardware stats
|
|
operationId: GetHardwareStats
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/clients:
|
|
get:
|
|
summary: Get a detailed list of currently connected chat clients
|
|
operationId: GetConnectedChatClients
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/messages:
|
|
get:
|
|
summary: Get all chat messages for the admin, unfiltered
|
|
operationId: GetChatMessagesAdmin
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/messagevisibility:
|
|
post:
|
|
summary: Update visibility of chat messages
|
|
operationId: UpdateMessageVisibilityAdmin
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/users/setenabled:
|
|
post:
|
|
summary: Enable or disable a user
|
|
operationId: UpdateUserEnabledAdmin
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/users/disabled:
|
|
get:
|
|
summary: Get a list of disabled users
|
|
operationId: GetDisabledUsers
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/users/ipbans/create:
|
|
post:
|
|
summary: Ban an IP address
|
|
operationId: BanIPAddress
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/users/ipbans/remove:
|
|
post:
|
|
summary: Remove an IP ban
|
|
operationId: UnbanIPAddress
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/users/ipbans:
|
|
get:
|
|
summary: Get all banned IP addresses
|
|
operationId: GetIPAddressBans
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/users/setmoderator:
|
|
post:
|
|
summary: Set moderator status for a user
|
|
operationId: UpdateUserModerator
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/chat/users/moderators:
|
|
get:
|
|
summary: Get a list of moderator users
|
|
operationId: GetModerators
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/logs:
|
|
get:
|
|
summary: Get all logs
|
|
operationId: GetLogs
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/logs/warnings:
|
|
get:
|
|
summary: Get warning/error logs
|
|
operationId: GetWarnings
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/followers:
|
|
get:
|
|
summary: Get followers
|
|
operationId: GetFollowersAdmin
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/followers/pending:
|
|
get:
|
|
summary: Get a list of pending follow requests
|
|
operationId: GetPendingFollowRequests
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/followers/blocked:
|
|
get:
|
|
summary: Get a list of rejected or blocked follows
|
|
operationId: GetBlockedAndRejectedFollowers
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/followers/approve:
|
|
post:
|
|
summary: Set the following state of a follower or follow request
|
|
operationId: ApproveFollower
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/emoji/upload:
|
|
post:
|
|
summary: Upload custom emoji
|
|
operationId: UploadCustomEmoji
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/emoji/delete:
|
|
post:
|
|
summary: Delete custom emoji
|
|
operationId: DeleteCustomEmoji
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/adminpass:
|
|
post:
|
|
summary: Change the current admin password
|
|
operationId: SetAdminPassword
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/streamkeys:
|
|
post:
|
|
summary: Set an array of valid stream keys
|
|
operationId: SetStreamKeys
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/pagecontent:
|
|
post:
|
|
summary: Change the extra page content in memory
|
|
operationId: SetExtraPageContent
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/streamtitle:
|
|
post:
|
|
summary: Change the stream title
|
|
operationId: SetStreamTitle
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/name:
|
|
post:
|
|
summary: Change the server name
|
|
operationId: SetServerName
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/serversummary:
|
|
post:
|
|
summary: Change the server summary
|
|
operationId: SetServerSummary
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/offlinemessage:
|
|
post:
|
|
summary: Change the offline message
|
|
operationId: SetCustomOfflineMessage
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/welcomemessage:
|
|
post:
|
|
summary: Change the welcome message
|
|
operationId: SetServerWelcomeMessage
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/chat/disable:
|
|
post:
|
|
summary: Disable chat
|
|
operationId: SetChatDisabled
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/chat/joinmessagesenabled:
|
|
post:
|
|
summary: Enable chat for user join messages
|
|
operationId: SetChatJoinMessagesEnabled
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/chat/establishedusermode:
|
|
post:
|
|
summary: Enable/disable chat established user mode
|
|
operationId: SetEnableEstablishedChatUserMode
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/chat/forbiddenusernames:
|
|
post:
|
|
summary: Set chat usernames that are not allowed
|
|
operationId: SetForbiddenUsernameList
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/chat/suggestedusernames:
|
|
post:
|
|
summary: Set the suggested chat usernames that will be assigned automatically
|
|
operationId: SetSuggestedUsernameList
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/chat/spamprotectionenabled:
|
|
post:
|
|
summary: Set spam protection enabled
|
|
operationId: SetChatSpamProtectionEnabled
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/chat/slurfilterenabled:
|
|
post:
|
|
summary: Set slur filter enabled
|
|
operationId: SetChatSlurFilterEnabled
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/video/codec:
|
|
post:
|
|
summary: Set video codec
|
|
operationId: SetVideoCodec
|
|
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
|
|
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
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/video/streamoutputvariants:
|
|
post:
|
|
summary: Set an array of video output configurations
|
|
operationId: SetStreamOutputVariants
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/appearance:
|
|
post:
|
|
summary: Set style/color/css values
|
|
operationId: SetCustomColorVariableValues
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/logo:
|
|
post:
|
|
summary: Update logo
|
|
operationId: SetLogo
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/tags:
|
|
post:
|
|
summary: Update server tags
|
|
operationId: SetTags
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/ffmpegpath:
|
|
post:
|
|
summary: Update FFMPEG path
|
|
operationId: SetFfmpegPath
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/webserverport:
|
|
post:
|
|
summary: Update server port
|
|
operationId: SetWebServerPort
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/webserverip:
|
|
post:
|
|
summary: Update server IP address
|
|
operationId: SetWebServerIP
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/rtmpserverport:
|
|
post:
|
|
summary: Update RTMP post
|
|
operationId: SetRTMPServerPort
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/sockethostoverride:
|
|
post:
|
|
summary: Update websocket host override
|
|
operationId: SetSocketHostOverride
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/videoservingendpoint:
|
|
post:
|
|
summary: Update custom video serving endpoint
|
|
operationId: SetVideoServingEndpoint
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/nsfw:
|
|
post:
|
|
summary: Update NSFW marking
|
|
operationId: SetNSFW
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/directoryenabled:
|
|
post:
|
|
summary: Update directory enabled
|
|
operationId: SetDirectoryEnabled
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/socialhandles:
|
|
post:
|
|
summary: Update social handles
|
|
operationId: SetSocialHandles
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/s3:
|
|
post:
|
|
summary: Update S3 configuration
|
|
operationId: SetS3Configuration
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/serverurl:
|
|
post:
|
|
summary: Update server url
|
|
operationId: SetServerURL
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/externalactions:
|
|
post:
|
|
summary: Update external action links
|
|
operationId: SetExternalActions
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/customstyles:
|
|
post:
|
|
summary: Update custom styles
|
|
operationId: SetCustomStyles
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/customjavascript:
|
|
post:
|
|
summary: Update custom JavaScript
|
|
operationId: SetCustomJavascript
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/hideviewercount:
|
|
post:
|
|
summary: Update hide viewer count
|
|
operationId: SetHideViewerCount
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/disablesearchindexing:
|
|
post:
|
|
summary: Update search indexing
|
|
operationId: SetDisableSearchIndexing
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/federation/enable:
|
|
post:
|
|
summary: Enable/disable federation features
|
|
operationId: SetFederationEnabled
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/federation/private:
|
|
post:
|
|
summary: Set if federation activities are private
|
|
operationId: SetFederationActivityPrivate
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/federation/showengagement:
|
|
post:
|
|
summary: Set if fediverse engagement appears in chat
|
|
operationId: SetFederationShowEngagement
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/federation/username:
|
|
post:
|
|
summary: Set local federated username
|
|
operationId: SetFederationUsername
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/federation/livemessage:
|
|
post:
|
|
summary: Set federated go live message
|
|
operationId: SetFederationGoLiveMessage
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/federation/blockdomains:
|
|
post:
|
|
summary: Set Federation blocked domains
|
|
operationId: SetFederationBlockDomains
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/notifications/discord:
|
|
post:
|
|
summary: Configure Discord notifications
|
|
operationId: SetDiscordNotificationConfiguration
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/config/notifications/browser:
|
|
post:
|
|
summary: Configure Browser notifications
|
|
operationId: SetBrowserNotificationConfiguration
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/webhooks:
|
|
get:
|
|
summary: Get all the webhooks
|
|
operationId: GetWebhooks
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/webhooks/delete:
|
|
post:
|
|
summary: Delete a single webhook
|
|
operationId: DeleteWebhook
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/webhooks/create:
|
|
post:
|
|
summary: Create a single webhook
|
|
operationId: CreateWebhook
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/accesstokens:
|
|
get:
|
|
summary: Get all access tokens
|
|
operationId: GetExternalAPIUsers
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/accesstokens/delete:
|
|
post:
|
|
summary: Delete a single external API user
|
|
operationId: DeleteExternalAPIUser
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/accesstokens/create:
|
|
post:
|
|
summary: Create a single access token
|
|
operationId: CreateExternalAPIUser
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/update/options:
|
|
get:
|
|
summary: Return the auto-update features that are supported for this instance
|
|
operationId: AutoUpdateOptions
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/update/start:
|
|
get:
|
|
summary: Begin the auto-update
|
|
operationId: AutoUpdateStart
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/update/forcequit:
|
|
get:
|
|
summary: Force quit the server and restart it
|
|
operationId: AutoUpdateForceQuit
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/yp/reset:
|
|
get:
|
|
summary: Reset YP configuration
|
|
operationId: ResetYPRegistration
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/metrics/video:
|
|
get:
|
|
summary: Get video playback metrics
|
|
operationId: GetVideoPlaybackMetrics
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
/admin/federation/send:
|
|
post:
|
|
summary: Send a public message to the Fediverse from the server's user
|
|
operationId: SendFederatedMessage
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/admin/federation/actions:
|
|
get:
|
|
summary: Get a paginated list of federated activities
|
|
operationId: GetFederatedActions
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/integrations/chat/system:
|
|
post:
|
|
summary: Send a system message to the chat
|
|
operationId: SendSystemMessage
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/integrations/chat/system/client/{clientId}:
|
|
post:
|
|
summary: Send a system message to a single client
|
|
operationId: SendSystemMessageToConnectedClient
|
|
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
|
|
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
|
|
security:
|
|
- BearerAuth: []
|
|
responses:
|
|
'400':
|
|
$ref: "#/components/responses/400"
|
|
options:
|
|
deprecated: true
|
|
operationId: SendUserMessageOptions
|
|
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
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/integrations/chat/action:
|
|
post:
|
|
summary: Send a user action to chat
|
|
operationId: SendChatAction
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/integrations/chat/messagevisibility:
|
|
post:
|
|
summary: Hide chat message
|
|
operationId: ExternalUpdateMessageVisibility
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/integrations/streamtitle:
|
|
post:
|
|
summary: Stream title
|
|
operationId: ExternalSetStreamTitle
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/integrations/chat:
|
|
get:
|
|
summary: Get chat history
|
|
operationId: ExternalGetChatMessages
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/integrations/clients:
|
|
get:
|
|
summary: Connected clients
|
|
operationId: ExternalGetConnectedChatClients
|
|
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
|
|
responses:
|
|
'204':
|
|
$ref: "#/components/responses/204"
|
|
/moderation/chat/user/{userId}:
|
|
get:
|
|
summary: Get a user's details
|
|
operationId: GetUserDetails
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
properties:
|
|
error:
|
|
type: string
|
|
BaseAPIResponse:
|
|
type: object
|
|
description: Simple API response
|
|
properties:
|
|
message:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
Status:
|
|
type: object
|
|
description: Response for status
|
|
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
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The name of the emoji
|
|
url:
|
|
type: string
|
|
description: URL for the emoji image
|
|
AnonymousUser:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
accessToken:
|
|
type: string
|
|
displayName:
|
|
type: string
|
|
User:
|
|
type: object
|
|
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
|
|
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
|
|
items:
|
|
$ref: "#/components/schemas/Follower"
|
|
PaginatedFollowers:
|
|
type: object
|
|
properties:
|
|
total:
|
|
type: integer
|
|
results:
|
|
$ref: "#/components/schemas/Followers"
|
|
Event:
|
|
type: object
|
|
properties:
|
|
timestamp:
|
|
type: string
|
|
type:
|
|
type: string
|
|
id:
|
|
type: string
|
|
UserEvent:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: "#/components/schemas/User"
|
|
hiddenAt:
|
|
type: string
|
|
clientId:
|
|
type: integer
|
|
MessageEvent:
|
|
type: object
|
|
properties:
|
|
body:
|
|
type: string
|
|
ChatMessages:
|
|
type: array
|
|
items:
|
|
anyOf:
|
|
- $ref: "#/components/schemas/UserMessage"
|
|
- $ref: "#/components/schemas/SystemMessage"
|
|
- $ref: "#/components/schemas/ActionMessage"
|
|
- $ref: "#/components/schemas/FederatedAction"
|
|
UserMessage:
|
|
type: object
|
|
allOf:
|
|
- $ref: "#/components/schemas/Event"
|
|
- $ref: "#/components/schemas/UserEvent"
|
|
- $ref: "#/components/schemas/MessageEvent"
|
|
SystemMessage:
|
|
type: object
|
|
allOf:
|
|
- $ref: "#/components/schemas/Event"
|
|
- $ref: "#/components/schemas/MessageEvent"
|
|
SystemActionEvent:
|
|
type: object
|
|
allOf:
|
|
- $ref: "#/components/schemas/Event"
|
|
- $ref: "#/components/schemas/MessageEvent"
|
|
ActionMessage:
|
|
type: object
|
|
allOf:
|
|
- $ref: "#/components/schemas/Event"
|
|
- $ref: "#/components/schemas/MessageEvent"
|
|
FederatedAction:
|
|
type: object
|
|
allOf:
|
|
- $ref: "#/components/schemas/Event"
|
|
- $ref: "#/components/schemas/MessageEvent"
|
|
- type: object
|
|
properties:
|
|
image:
|
|
type: string
|
|
link:
|
|
type: string
|
|
title:
|
|
type: string
|
|
WebConfig:
|
|
type: object
|
|
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
|
|
properties:
|
|
platform:
|
|
type: string
|
|
url:
|
|
type: string
|
|
icon:
|
|
type: string
|
|
ExternalAction:
|
|
type: object
|
|
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
|
|
properties:
|
|
browser:
|
|
$ref: "#/components/schemas/BrowserConfig"
|
|
BrowserConfig:
|
|
type: object
|
|
properties:
|
|
publicKey:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
FederationConfig:
|
|
type: object
|
|
properties:
|
|
account:
|
|
type: string
|
|
followerCount:
|
|
type: integer
|
|
enabled:
|
|
type: boolean
|
|
AuthenticationConfig:
|
|
type: object
|
|
properties:
|
|
indieAuthEnabled:
|
|
type: boolean
|
|
YPDetails:
|
|
type: object
|
|
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
|
|
properties:
|
|
index:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
PlaybackMetrics:
|
|
type: object
|
|
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
|
|
properties:
|
|
time:
|
|
type: string
|
|
format: date-time
|
|
remoteAddr:
|
|
type: string
|
|
streamDetails:
|
|
$ref: '#/components/schemas/InboundStreamDetails'
|
|
InboundStreamDetails:
|
|
type: object
|
|
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
|
|
properties:
|
|
outputSettings:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/StreamOutputVariant'
|
|
latencyLevel:
|
|
$ref: '#/components/schemas/LatencyLevel'
|
|
StreamOutputVariant:
|
|
type: object
|
|
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
|
|
properties:
|
|
message:
|
|
type: string
|
|
healthPercentage:
|
|
type: integer
|
|
representation:
|
|
type: integer
|
|
healthy:
|
|
type: boolean
|
|
BrowserNotificationConfiguration:
|
|
type: object
|
|
properties:
|
|
goLiveMessage:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
DiscordNotificationConfiguration:
|
|
type: object
|
|
properties:
|
|
webhook:
|
|
type: string
|
|
goLiveMessage:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
S3Info:
|
|
type: object
|
|
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
|
|
properties:
|
|
key:
|
|
type: string
|
|
comment:
|
|
type: string
|
|
TimestampedValue:
|
|
type: object
|
|
properties:
|
|
time:
|
|
type: string
|
|
format: date-time
|
|
value:
|
|
type: number
|
|
format: double
|
|
Viewer:
|
|
type: object
|
|
properties:
|
|
firstSeen:
|
|
type: string
|
|
format: date-time
|
|
geo:
|
|
$ref: '#/components/schemas/GeoDetails'
|
|
userAgent:
|
|
type: string
|
|
ipAddress:
|
|
type: string
|
|
clientID:
|
|
type: string
|
|
GeoDetails:
|
|
type: object
|
|
properties:
|
|
countryCode:
|
|
type: string
|
|
regionName:
|
|
type: string
|
|
timeZone:
|
|
type: string
|
|
CollectedMetrics:
|
|
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
|
|
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
|
|
items:
|
|
$ref: "#/components/schemas/ChatClient"
|
|
IPAddress:
|
|
type: object
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
ipAddress:
|
|
type: string
|
|
notes:
|
|
type: string
|
|
Webhook:
|
|
type: object
|
|
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
|
|
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
|
|
properties:
|
|
idArray:
|
|
type: array
|
|
items:
|
|
type: string
|
|
visible:
|
|
type: boolean
|
|
ModerationUserDetails:
|
|
type: object
|
|
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
|
|
properties:
|
|
connectedAt:
|
|
type: string
|
|
format: date-time
|
|
userAgent:
|
|
type: string
|
|
geo:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
messageCount:
|
|
type: integer
|
|
FederatedActivity:
|
|
type: object
|
|
properties:
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
iri:
|
|
type: string
|
|
actorIRI:
|
|
type: string
|
|
type:
|
|
type: string
|
|
PaginatedFederatedActivity:
|
|
type: object
|
|
properties:
|
|
total:
|
|
type: integer
|
|
results:
|
|
$ref: "#/components/schemas/FederatedActivity"
|
|
AdminStatus:
|
|
type: object
|
|
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
|
|
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
|
|
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
|
|
properties:
|
|
browser:
|
|
$ref: '#/components/schemas/BrowserNotificationConfiguration'
|
|
discord:
|
|
$ref: '#/components/schemas/DiscordNotificationConfiguration'
|
|
AdminYPInfo:
|
|
type: object
|
|
properties:
|
|
instanceUrl:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
AdminFederationConfig:
|
|
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
|
|
properties:
|
|
videoQualityVariants:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/StreamOutputVariant'
|
|
latencyLevel:
|
|
type: integer
|
|
AdminLog:
|
|
type: object
|
|
properties:
|
|
time:
|
|
type: string
|
|
format: date-time
|
|
message:
|
|
type: string
|
|
level:
|
|
type: string
|
|
AdminConfigValue:
|
|
type: object
|
|
properties:
|
|
value:
|
|
oneOf:
|
|
- type: string
|
|
- type: boolean
|
|
- type: array
|
|
items:
|
|
type: string
|
|
- type: number
|
|
IndieAuthResponse:
|
|
type: object
|
|
properties:
|
|
me:
|
|
type: string
|
|
profile:
|
|
$ref: "#/components/schemas/IndieAuthProfile"
|
|
error:
|
|
type: string
|
|
errorDescription:
|
|
type: string
|
|
IndieAuthProfile:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
photo:
|
|
type: string
|
|
IndieAuthServerProfileResponse:
|
|
type: object
|
|
properties:
|
|
me:
|
|
type: string
|
|
profile:
|
|
$ref: "#/components/schemas/IndieAuthServerProfile"
|
|
error:
|
|
type: string
|
|
errorDescription:
|
|
type: string
|
|
IndieAuthServerProfile:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
photo:
|
|
type: string
|
|
|
|
headers:
|
|
'Access-Control-Allow-Origin':
|
|
schema:
|
|
type: string
|
|
'Access-Control-Allow-Credentials':
|
|
schema:
|
|
type: string
|
|
format: boolean
|
|
'Access-Control-Allow-Headers':
|
|
schema:
|
|
type: string
|
|
'WWW-Authenticate':
|
|
schema:
|
|
type: string
|
|
'X-Content-Type-Options':
|
|
schema:
|
|
type: string
|
|
|
|
requestBodies:
|
|
AdminConfigValue:
|
|
description: A single value that is used in the request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AdminConfigValue"
|
|
IndieAuthEndpointForm:
|
|
description: Form submission from IndieAuth
|
|
content:
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
redirect_uri:
|
|
type: string
|
|
client_id:
|
|
type: string
|
|
codeVerifier:
|
|
type: string
|
|
|
|
responses:
|
|
Default:
|
|
description: Unexpected error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BaseAPIResponse"
|
|
'204':
|
|
description: No Content
|
|
'204Options':
|
|
description: No Content
|
|
headers:
|
|
'Access-Control-Allow-Origin':
|
|
$ref: "#/components/headers/Access-Control-Allow-Origin"
|
|
'400':
|
|
description: Bad request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BaseAPIResponse"
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
'401BasicAuth':
|
|
description: Basic auth failure
|
|
headers:
|
|
'Access-Control-Allow-Origin':
|
|
$ref: "#/components/headers/Access-Control-Allow-Origin"
|
|
'Access-Control-Allow-Credentials':
|
|
$ref: "#/components/headers/Access-Control-Allow-Credentials"
|
|
'Access-Control-Allow-Headers':
|
|
$ref: "#/components/headers/Access-Control-Allow-Headers"
|
|
'WWW-Authenticate':
|
|
$ref: "#/components/headers/WWW-Authenticate"
|
|
'X-Content-Type-Options':
|
|
$ref: "#/components/headers/X-Content-Type-Options"
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
'403':
|
|
description: Forbidden
|
|
'404':
|
|
description: Not found
|
|
'500':
|
|
description: Internal Server Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Error"
|
|
'501':
|
|
description: Not Implemented
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Error"
|
|
|
|
parameters:
|
|
Offset:
|
|
in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
description: The number of items to skip before starting to collect the result set
|
|
Limit:
|
|
in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
description: The numbers of items to return
|
|
AccessToken:
|
|
in: query
|
|
name: accessToken
|
|
schema:
|
|
type: string
|
|
required: true
|
|
IndieAuthClientId:
|
|
in: query
|
|
name: client_id
|
|
schema:
|
|
type: string
|
|
required: true
|
|
IndieAuthRedirectURI:
|
|
in: query
|
|
name: redirect_uri
|
|
schema:
|
|
type: string
|
|
required: true
|
|
IndieAuthCodeChallenge:
|
|
in: query
|
|
name: code_challenge
|
|
schema:
|
|
type: string
|
|
required: true
|
|
IndieAuthState:
|
|
in: query
|
|
name: state
|
|
schema:
|
|
type: string
|
|
required: true
|
|
IndieAuthCode:
|
|
in: query
|
|
name: code
|
|
schema:
|
|
type: string
|
|
required: true
|
|
IndieAuthMe:
|
|
in: query
|
|
name: me
|
|
schema:
|
|
type: string
|
|
required: true
|
|
|
|
securitySchemes:
|
|
BasicAuth:
|
|
type: http
|
|
scheme: basic
|
|
BearerAuth:
|
|
type: http
|
|
scheme: bearer
|