mirror of
https://github.com/owncast/owncast.git
synced 2024-11-21 12:18:02 +03:00
b2582f409b
* 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>
2342 lines
82 KiB
YAML
2342 lines
82 KiB
YAML
openapi: 3.0.1
|
|
info:
|
|
title: Owncast
|
|
description: Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software. <br/><br/>Take note that only APIs listed specifically for external use, 3rd parties or for integration purposes are encouraged for external use. Internal APIs may change at any time and are used by the server and frontend itself.
|
|
version: '0.1.3'
|
|
contact:
|
|
name: Gabe Kangas
|
|
email: gabek@real-ity.com
|
|
url: http://owncast.online
|
|
x-logo:
|
|
url: >-
|
|
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAEvmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEyOCIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjEyOCIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICB0aWZmOkltYWdlV2lkdGg9IjEyOCIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTI4IgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI5Ni4wIgogICB0aWZmOllSZXNvbHV0aW9uPSI5Ni4wIgogICBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIgogICBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIw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
|
|
servers: []
|
|
tags:
|
|
- name: Admin
|
|
description: Admin operations requiring authentication.
|
|
- name: Chat
|
|
description: Endpoints related to the chat interface.
|
|
- name: Integrations
|
|
description: APIs built to allow 3rd parties to interact with an Owncast server.
|
|
- name: Moderation
|
|
description: Chat-related actions that can take place by a moderator.
|
|
|
|
components:
|
|
schemas:
|
|
ClientArray:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Client'
|
|
|
|
UserArray:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
|
|
LogEntryArray:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/LogEntry'
|
|
|
|
FollowerArray:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Follower'
|
|
|
|
StreamKeyArray:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/StreamKey'
|
|
|
|
ChatMessageArray:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ChatMessage'
|
|
|
|
Client:
|
|
type: object
|
|
description: A single representation of a client.
|
|
example:
|
|
connectedAt: '2020-10-06T23:20:44.588649-07:00'
|
|
messageCount: 0
|
|
userAgent: >-
|
|
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36
|
|
(KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
|
|
ipAddress: '::1'
|
|
clientID: 2ba20dd34f911c198df3218ddc64c740
|
|
geo:
|
|
countryCode: US
|
|
regionName: California
|
|
timeZone: America/Los_Angeles
|
|
properties:
|
|
connectedAt:
|
|
type: string
|
|
format: date-time
|
|
messageCount:
|
|
description: Number of chat messages sent by user
|
|
type: integer
|
|
userAgent:
|
|
description: The web client used to connect to this server
|
|
type: string
|
|
example: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
|
|
ipAddress:
|
|
description: The public IP address of this client
|
|
type: string
|
|
clientID:
|
|
description: The value used to identify this client
|
|
type: string
|
|
geo:
|
|
type: object
|
|
description: Optional geographic data for the client
|
|
properties:
|
|
countryCode:
|
|
type: string
|
|
regionName:
|
|
type: string
|
|
timeZone:
|
|
type: string
|
|
user:
|
|
$ref: '#/components/schemas/User'
|
|
x-last-modified: 1602052347511
|
|
|
|
BasicResponse:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
|
|
InstanceDetails:
|
|
type: object
|
|
description: User-facing details about this server.
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Displayed as the header in the instance details.
|
|
summary:
|
|
type: string
|
|
description: This is brief summary of whom you are or what the stream is.
|
|
logo:
|
|
type: string
|
|
description: Local file name of your logo image. We recommend a square image (150 x 150px) with ample padding around the important contents of the image, as it will be rendered as a circle.
|
|
tags:
|
|
type: array
|
|
description: Categories of the content this instance focuses on.
|
|
items:
|
|
type: string
|
|
socialHandles:
|
|
type: array
|
|
description: Links to social network urls.
|
|
items:
|
|
type: object
|
|
properties:
|
|
platform:
|
|
type: string
|
|
example: github
|
|
url:
|
|
type: string
|
|
example: http://github.com/owncast/owncast
|
|
extraPageContent:
|
|
type: string
|
|
description: Additional HTML content to render in the body of the web interface.
|
|
example: '<p>This page is <strong>super</strong> cool!'
|
|
version:
|
|
type: string
|
|
example: Owncast v0.0.3-macOS (ef3796a033b32a312ebf5b334851cbf9959e7ecb)
|
|
|
|
YP:
|
|
type: object
|
|
description: Configuration of the instance's registration to the Owncast Directory (YP API)
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
description: If YP support is on or off. Must be enabled to show in the directory.
|
|
default: false
|
|
instanceUrl:
|
|
type: string
|
|
description: The public URL of this owncast server, used for registration and linking with the directory. Must be publicly available.
|
|
|
|
S3:
|
|
type: object
|
|
description: Configuration of external storage using S3-compatible providers.
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
endpoint:
|
|
type: string
|
|
servingEndpoint:
|
|
type: string
|
|
accessKey:
|
|
type: string
|
|
secret:
|
|
type: string
|
|
bucket:
|
|
type: string
|
|
region:
|
|
type: string
|
|
acl:
|
|
type: string
|
|
forcePathStyle:
|
|
type: boolean
|
|
required:
|
|
- enabled
|
|
StreamQuality:
|
|
type: object
|
|
properties:
|
|
videoPassthrough:
|
|
type: boolean
|
|
description: If enabled video transcoding is disabled and the video is passed along in its original format.
|
|
audioPassthrough:
|
|
type: boolean
|
|
description: If enabled audio transcoding is disabled and the audio is passed along in its original format.
|
|
videoBitrate:
|
|
type: integer
|
|
description: The video quality, in kbps.
|
|
audioBitrate:
|
|
type: integer
|
|
description: The audio quality, in kbps.
|
|
scaledWidth:
|
|
type: integer
|
|
description: The resized video width.
|
|
scaledHeight:
|
|
type: integer
|
|
description: The resized video height.
|
|
framerate:
|
|
type: integer
|
|
description: The target frames per second of the video.
|
|
cpuUsageLevel:
|
|
type: integer
|
|
description: 'The amount of hardware utilization selected for this HLS variant.'
|
|
|
|
TimestampedValue:
|
|
type: object
|
|
properties:
|
|
time:
|
|
type: string
|
|
format: date-time
|
|
value:
|
|
type: integer
|
|
|
|
ConfigValue:
|
|
description: A wrapper object used to set values in many config endpoints.
|
|
type: object
|
|
properties:
|
|
value:
|
|
oneOf:
|
|
- type: string
|
|
- type: integer
|
|
- type: object
|
|
- type: boolean
|
|
|
|
BooleanValue:
|
|
description: A wrapper object used to set boolean values in many config endpoints.
|
|
type: object
|
|
properties:
|
|
value:
|
|
type: boolean
|
|
example:
|
|
value: true
|
|
|
|
LogEntry:
|
|
type: object
|
|
properties:
|
|
time:
|
|
type: string
|
|
format: date-time
|
|
description: 'Timestamp for this log entry'
|
|
level:
|
|
type: string
|
|
description: 'The level of this log entry'
|
|
message:
|
|
type: string
|
|
description: 'The log entry contents'
|
|
|
|
Webhook:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The ID of this webhook.
|
|
url:
|
|
type: string
|
|
description: The URL that events will be sent to.
|
|
events:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: The events that will be sent to this webhook.
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
description: When this webhook was created.
|
|
lastUsed:
|
|
type: string
|
|
format: date-time
|
|
description: When this webhook was last used.
|
|
|
|
User:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: User ID
|
|
example: yklw5Imng
|
|
displayName:
|
|
type: string
|
|
description: The user-facing disaplay name for this user.
|
|
example: awesome-pizza
|
|
displayColor:
|
|
type: integer
|
|
description: Color name number for client rendering. theme-user-colors-n
|
|
example: 3
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
description: When this account was originally registered/created.
|
|
previousNames:
|
|
type: string
|
|
description: Comma separated list of names previously used by this user.
|
|
example: 'awesome-pizza,user42'
|
|
scopes:
|
|
type: array
|
|
items:
|
|
description: A specific attribute assigned to this user
|
|
type: string
|
|
example: 'MODERATOR'
|
|
|
|
Follower:
|
|
type: object
|
|
required:
|
|
- link
|
|
- username
|
|
- timestamp
|
|
properties:
|
|
link:
|
|
type: string
|
|
description: URL linking to this follower
|
|
example: https://mastodon.cloud/users/gabektest
|
|
name:
|
|
type: string
|
|
description: Optional display name for this follower
|
|
example: John Smith
|
|
image:
|
|
type: string
|
|
description: Optional image for this follower
|
|
example: http://mastodon.cloud/users/gabektest/avatar.png
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of when the follow occurred
|
|
disabledAt:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp when the follow was removed
|
|
|
|
FederatedAction:
|
|
type: object
|
|
properties:
|
|
iri:
|
|
type: string
|
|
description: The unique identifier for this action.
|
|
example: https://fediverse.server/jfk-3827
|
|
actorIRI:
|
|
type: string
|
|
description: The identifier for the actor that performed this action.
|
|
example: https://mastodon.cloud/users/gabektest
|
|
type:
|
|
type: string
|
|
enum:
|
|
[
|
|
FEDIVERSE_ENGAGEMENT_FOLLOW,
|
|
FEDIVERSE_ENGAGEMENT_LIKE,
|
|
FEDIVERSE_ENGAGEMENT_REPOST,
|
|
]
|
|
|
|
StreamKey:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
description: The key used for authing a stream.
|
|
example: yklw5Imng
|
|
comment:
|
|
type: string
|
|
description: The user-facing description or explanation of this single key
|
|
example: Used by Tim.
|
|
|
|
ChatMessage:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: '#/components/schemas/User'
|
|
body:
|
|
type: string
|
|
description: Escaped HTML of the chat message content.
|
|
id:
|
|
type: string
|
|
description: Unique ID of the chat message.
|
|
visible:
|
|
type: boolean
|
|
description: 'Should chat message be visibly rendered.'
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
|
|
securitySchemes:
|
|
AdminBasicAuth:
|
|
type: http
|
|
scheme: basic
|
|
description: The username for admin basic auth is `admin`. Defaults to abc123.
|
|
AccessToken:
|
|
type: http
|
|
scheme: bearer
|
|
description: 3rd party integration auth where a service user must provide an access token.
|
|
UserToken:
|
|
type: apiKey
|
|
name: accessToken
|
|
in: query
|
|
description: A standard user must provide a valid access token.
|
|
ModeratorUserToken:
|
|
type: apiKey
|
|
name: accessToken
|
|
in: query
|
|
description: A moderator user must provide a valid access token.
|
|
|
|
responses:
|
|
UsersResponse:
|
|
description: A collection of users.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/UserArray'
|
|
|
|
FollowersResponse:
|
|
description: A collection of users.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FollowerArray'
|
|
|
|
ClientsResponse:
|
|
description: Successful response of an array of clients
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ClientArray'
|
|
example:
|
|
- connectedAt: '2020-10-06T23:20:44.588649-07:00'
|
|
messageCount: 3
|
|
userAgent: >-
|
|
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36
|
|
(KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
|
|
ipAddress: '172.217.164.110'
|
|
geo:
|
|
countryCode: US
|
|
regionName: California
|
|
timeZone: America/Los_Angeles
|
|
user:
|
|
id: yklw5Imng
|
|
displayName: awesome-pizza
|
|
displayColor: 42
|
|
createdAt: '2021-07-08T20:21:25.303402404-07:00'
|
|
previousNames: 'awesome-pizza,coolPerson23'
|
|
|
|
LogsResponse:
|
|
description: Response of server log entries
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/LogEntryArray'
|
|
examples:
|
|
success:
|
|
summary: Logs returned
|
|
value:
|
|
[
|
|
{
|
|
'message': 'Owncast v0.0.0-localdev (unknown)',
|
|
'level': 'info',
|
|
'time': '2020-10-29T18:35:34.422386-07:00',
|
|
},
|
|
{
|
|
'message': 'Web server running on port: 8080',
|
|
'level': 'info',
|
|
'time': '2020-10-29T18:35:35.011731-07:00',
|
|
},
|
|
{
|
|
'message': 'RTMP server is listening for incoming stream on port: 1935',
|
|
'level': 'info',
|
|
'time': '2020-10-29T18:35:35.011823-07:00',
|
|
},
|
|
]
|
|
|
|
BasicResponse:
|
|
description: Operation Success/Failure Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BasicResponse'
|
|
examples:
|
|
success:
|
|
summary: Operation succeeded.
|
|
value:
|
|
{
|
|
'success': true,
|
|
'message': 'context specific success message',
|
|
}
|
|
failure:
|
|
summary: Operation failed.
|
|
value:
|
|
{
|
|
'success': false,
|
|
'message': 'context specific failure message',
|
|
}
|
|
|
|
paths:
|
|
/api/config:
|
|
get:
|
|
summary: Information
|
|
description: The client configuration. Information useful for the user interface.
|
|
tags: ['Server']
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/InstanceDetails'
|
|
|
|
/api/ping:
|
|
get:
|
|
summary: Mark the current viewer as active.
|
|
description: For tracking viewer count, periodically hit the ping endpoint.
|
|
tags: ['Server']
|
|
responses:
|
|
'200':
|
|
description: 'Successful ping'
|
|
|
|
/api/status:
|
|
get:
|
|
summary: Current Status
|
|
description: This endpoint is used to discover when a server is broadcasting, the number of active viewers as well as other useful information for updating the user interface.
|
|
tags: ['Server']
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lastConnectTime:
|
|
type: string
|
|
nullable: true
|
|
format: date-time
|
|
overallMaxViewerCount:
|
|
type: integer
|
|
sessionMaxViewerCount:
|
|
type: integer
|
|
online:
|
|
type: boolean
|
|
viewerCount:
|
|
type: integer
|
|
lastDisconnectTime:
|
|
type: string
|
|
nullable: true
|
|
format: date-time
|
|
examples:
|
|
online:
|
|
value:
|
|
lastConnectTime: '2020-10-03T21:36:22-05:00'
|
|
lastDisconnectTime: null
|
|
online: true
|
|
overallMaxViewerCount: 420
|
|
sessionMaxViewerCount: 12
|
|
viewerCount: 7
|
|
|
|
/api/customjavascript:
|
|
get:
|
|
summary: Custom Javascript to execute.
|
|
description: Returns custom Javascript that was set in the Owncast admin to be run in the Owncast frontend.
|
|
tags: ['Server']
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/javascript:
|
|
schema:
|
|
type: string
|
|
example: console.log("Hello World");
|
|
|
|
/api/chat/register:
|
|
post:
|
|
summary: Register a chat user
|
|
description: Register a user that returns an access token for accessing chat.
|
|
tags: ['Chat']
|
|
security:
|
|
- UserToken: []
|
|
requestBody:
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
displayName:
|
|
type: string
|
|
description: Optionally provide a display name you want to assign to this user when registering.
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The new user's id.
|
|
accessToken:
|
|
type: string
|
|
description: The access token used for accessing chat.
|
|
displayName:
|
|
type: string
|
|
description: The user-facing name displayed for this user.
|
|
|
|
/api/chat:
|
|
get:
|
|
summary: Chat Messages Backlog
|
|
description: Used to get chat messages prior to connecting to the websocket.
|
|
tags: ['Chat']
|
|
security:
|
|
- UserToken: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChatMessageArray'
|
|
|
|
/api/yp:
|
|
get:
|
|
summary: Yellow Pages Information
|
|
description: Information to be used in the Yellow Pages service, a global directory of Owncast servers.
|
|
tags: ['Server']
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
logo:
|
|
type: string
|
|
nsfw:
|
|
type: boolean
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
online:
|
|
type: boolean
|
|
viewerCount:
|
|
type: integer
|
|
overallMaxViewerCount:
|
|
type: integer
|
|
sessionMaxViewerCount:
|
|
type: integer
|
|
lastConnectTime:
|
|
type: string
|
|
nullable: true
|
|
format: date-time
|
|
|
|
/img/emoji/:
|
|
get:
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
description: Emoji image name
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: test.svg
|
|
summary: Get Emoji Image
|
|
description: Get an emoji image.
|
|
tags: ['Chat']
|
|
responses:
|
|
'200':
|
|
description: 'Returns a single image'
|
|
|
|
/api/emoji:
|
|
get:
|
|
summary: Get Custom Emoji
|
|
description: Get a list of custom emoji that are supported in chat.
|
|
tags: ['Chat']
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The name of the Emoji
|
|
emoji:
|
|
type: string
|
|
description: The relative path to the Emoji image file
|
|
examples:
|
|
default:
|
|
value:
|
|
items:
|
|
- name: nicolas_cage_party
|
|
emoji: /img/emoji/nicolas_cage_party.gif
|
|
- name: parrot
|
|
emoji: /img/emoji/parrot.gif
|
|
|
|
/api/followers:
|
|
get:
|
|
summary: Get the public followers of this instance
|
|
responses:
|
|
'200':
|
|
description: Followers
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Follower'
|
|
|
|
/api/remotefollow:
|
|
post:
|
|
summary: Return the information needed to redirect a user to a fediverse server to perform a remote follow action.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
account:
|
|
description: The fediverse username@server.tld account that wants to perform the remote follow action.
|
|
type: string
|
|
example: johnsmith@fediverse.biz
|
|
responses:
|
|
'200':
|
|
description: Remote follow redirect details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
redirectUrl:
|
|
description: The URL the frontend should redirect to
|
|
type: string
|
|
example: https://fediverse.biz/authorize_interaction?uri=https://my.owncast.server/federation/user/streamer
|
|
|
|
/api/chat/messagevisibility:
|
|
post:
|
|
summary: Update the visibility of chat messages.
|
|
description: Pass an array of IDs you want to change the chat visibility of.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
visible:
|
|
type: boolean
|
|
description: Are these messages visible.
|
|
idArray:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: IDs of the chat messages you wish to change the visibility of.
|
|
tags: ['Moderation']
|
|
security:
|
|
- ModeratorUserToken: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/chat/users/setenabled:
|
|
post:
|
|
summary: Disable (block) or re-enable a chat user.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
userId:
|
|
type: string
|
|
description: User ID of the chat user you're changing.
|
|
enabled:
|
|
type: boolean
|
|
description: State of this user. False to block/disable.
|
|
tags: ['Moderation']
|
|
security:
|
|
- ModeratorUserToken: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/status:
|
|
get:
|
|
summary: 'Server status and broadcaster'
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
description: Server status and broadcaster details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
broadcaster:
|
|
type: object
|
|
properties:
|
|
remoteAddr:
|
|
type: string
|
|
time:
|
|
type: string
|
|
format: date-time
|
|
streamDetails:
|
|
type: object
|
|
properties:
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
frameRate:
|
|
type: integer
|
|
videoBitrate:
|
|
type: integer
|
|
videoCodec:
|
|
type: string
|
|
audioBitrate:
|
|
type: integer
|
|
audioCodec:
|
|
type: string
|
|
encoder:
|
|
type: string
|
|
online:
|
|
type: boolean
|
|
description: Is a stream currently active
|
|
viewerCount:
|
|
type: integer
|
|
description: The current number of viewers
|
|
sessionPeakViewerCount:
|
|
type: integer
|
|
description: The peak number of viewers this streaming session
|
|
overallPeakViewerCount:
|
|
type: integer
|
|
description: The all-time peak number of viewers
|
|
versionNumber:
|
|
type: string
|
|
description: The current version of the owncast software
|
|
examples:
|
|
connected:
|
|
summary: 'Broadcaster Connected'
|
|
value:
|
|
broadcaster:
|
|
remoteAddr: 172.217.164.110
|
|
time: '2020-10-06T23:20:44.588649-07:00'
|
|
streamDetails:
|
|
width: 640
|
|
height: 480
|
|
frameRate: 24
|
|
videoBitrate: 1500
|
|
videoCodec: 'mp4a'
|
|
audioBitrate: 256
|
|
audioCodec: 'aac'
|
|
encoder: 'obs-output module (libobs version 25.0.8)'
|
|
online: true
|
|
viewerCount: 3
|
|
overallPeakViewerCount: 4
|
|
sessionPeakViewerCount: 4
|
|
versionNumber: '0.0.3'
|
|
|
|
/api/admin/disconnect:
|
|
post:
|
|
summary: Disconnect Broadcaster
|
|
description: Disconnect the active inbound stream, if one exists, and terminate the broadcast.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/yp/reset:
|
|
post:
|
|
summary: Reset your YP registration key.
|
|
description: Used when there is a problem with your registration to the Owncast Directory via the YP APIs. This will reset your local registration key.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/chat/clients:
|
|
get:
|
|
summary: Return a list of currently connected clients
|
|
description: Return a list of currently connected clients with optional geo details.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/ClientsResponse'
|
|
|
|
/api/admin/users/disabled:
|
|
get:
|
|
summary: Return a list of currently connected clients
|
|
description: Return a list of currently connected clients with optional geo details.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/UsersResponse'
|
|
|
|
/api/admin/logs:
|
|
get:
|
|
summary: Return recent log entries
|
|
description: Returns server logs.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/LogsResponse'
|
|
|
|
/api/admin/logs/warnings:
|
|
get:
|
|
summary: Return recent warning and error logs.
|
|
description: Return recent warning and error logs.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/LogsResponse'
|
|
|
|
/api/admin/serverconfig:
|
|
get:
|
|
summary: Server Configuration
|
|
description: Get the current configuration of the Owncast server.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
instanceDetails:
|
|
$ref: '#/components/schemas/InstanceDetails'
|
|
ffmpegPath:
|
|
type: string
|
|
description: The path to the copy of ffmpeg that this server is using.
|
|
webServerPort:
|
|
type: integer
|
|
description: The port the public web server is listening on.
|
|
rtmpServerPort:
|
|
type: integer
|
|
description: The port the inbound RTMP broadcast should be sent to.
|
|
s3:
|
|
$ref: '#/components/schemas/S3'
|
|
videoSettings:
|
|
type: object
|
|
description: How the different variants of video streams are configured.
|
|
properties:
|
|
videoQualityVariants:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/StreamQuality'
|
|
latencyLevel:
|
|
type: integer
|
|
description: The level of latency selected for streaming. Lower latency can create more buffering.
|
|
yp:
|
|
$ref: '#/components/schemas/YP'
|
|
|
|
/api/admin/chat/messages:
|
|
get:
|
|
summary: Chat messages, unfiltered.
|
|
description: Get a list of all chat messages with no filters applied.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: '#/components/schemas/User'
|
|
body:
|
|
type: string
|
|
description: Escaped HTML of the chat message content.
|
|
id:
|
|
type: string
|
|
description: Unique ID of the chat message.
|
|
visible:
|
|
type: boolean
|
|
description: 'Should chat message be visibly rendered.'
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
|
|
/api/admin/chat/messagevisibility:
|
|
post:
|
|
summary: Update the visibility of chat messages.
|
|
description: Pass an array of IDs you want to change the chat visibility of.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
visible:
|
|
type: boolean
|
|
description: Are these messages visible.
|
|
idArray:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: IDs of the chat messages you wish to change the visibility of.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/chat/users/setenabled:
|
|
post:
|
|
summary: Enable or disable a single user.
|
|
description: Enable or disable a single user. Disabling will also hide all the user's chat messages.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
userId:
|
|
type: string
|
|
description: User ID to act upon.
|
|
example: 'yklw5Imng'
|
|
enabled:
|
|
type: boolean
|
|
description: Set the enabled state of this user.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/config/adminpass:
|
|
post:
|
|
summary: Set the admin password.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
|
|
/api/admin/config/streamkeys:
|
|
post:
|
|
summary: Set the stream keys.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value:
|
|
$ref: '#/components/schemas/StreamKeyArray'
|
|
|
|
/api/admin/config/pagecontent:
|
|
post:
|
|
summary: Set the custom page content.
|
|
description: Set the custom page content using markdown.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: '# Welcome to my cool server!<br><br>I _hope_ you enjoy it.'
|
|
|
|
/api/admin/config/streamtitle:
|
|
post:
|
|
summary: Set the stream title.
|
|
description: Set the title of the currently streaming content.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: Streaming my favorite game, Desert Bus.
|
|
|
|
/api/admin/config/name:
|
|
post:
|
|
summary: Set the server name.
|
|
description: Set the name associated with your server. Often is your name, username or identity.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
|
|
/api/admin/config/serversummary:
|
|
post:
|
|
summary: Set the server summary.
|
|
description: Set the summary of your server's streaming content.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: The best in Desert Bus Streaming
|
|
|
|
/api/admin/config/offlinemessage:
|
|
post:
|
|
summary: Set the offline message.
|
|
description: Set the message that is displayed when a stream is not live.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: Come back on Friday at 2pm, I'll be streaming then.
|
|
|
|
/api/admin/config/logo:
|
|
post:
|
|
summary: Set the server logo.
|
|
description: Set the logo for your server. Path is relative to webroot.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: '/img/mylogo.png'
|
|
|
|
/api/admin/config/tags:
|
|
post:
|
|
summary: Set the server tags.
|
|
description: Set the tags displayed for your server and the categories you can show up in on the directory.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value:
|
|
- games
|
|
- music
|
|
- streaming
|
|
|
|
/api/admin/config/ffmpegpath:
|
|
post:
|
|
summary: Set the ffmpeg binary path
|
|
description: Set the path for a specific copy of ffmpeg on your system.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: '/home/owncast/ffmpeg'
|
|
|
|
/api/admin/config/webserverport:
|
|
post:
|
|
summary: Set the owncast web port.
|
|
description: Set the port the owncast web server should listen on.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: 8080
|
|
|
|
/api/admin/config/rtmpserverport:
|
|
post:
|
|
summary: Set the inbound rtmp server port.
|
|
description: Set the port where owncast service will listen for inbound broadcasts.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: 1935
|
|
|
|
/api/admin/config/nsfw:
|
|
post:
|
|
summary: Mark if your stream is not safe for work
|
|
description: Mark if your stream can be consitered not safe for work. Used in different contexts, including the directory for filtering purposes.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: false
|
|
|
|
/api/admin/config/directoryenabled:
|
|
post:
|
|
summary: Set if this server supports the Owncast directory.
|
|
description: If set to true the server will attempt to register itself with the [Owncast Directory](https://directory.owncast.online). Off by default.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: true
|
|
|
|
/api/admin/config/serverurl:
|
|
post:
|
|
summary: Set the public url of this owncast server.
|
|
description: Set the public url of this owncast server. Used for the directory and optional integrations.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: https://live.mycoolserver.biz
|
|
|
|
/api/admin/config/video/streamlatencylevel:
|
|
post:
|
|
summary: Set the latency level for the stream.
|
|
description: Sets the latency level that determines how much video is buffered between the server and viewer. Less latency can end up with more buffering.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value:
|
|
description: The latency level
|
|
type: integer
|
|
example:
|
|
value: 4
|
|
|
|
/api/admin/config/video/streamoutputvariants:
|
|
post:
|
|
summary: Set the configuration of your stream output.
|
|
description: Sets the detailed configuration for all of the stream variants you support.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value:
|
|
- framerate: 30
|
|
videoPassthrough: false
|
|
videoBitrate: 1800
|
|
cpuUsageLevel: 2
|
|
audioPassthrough: true
|
|
- framerate: 24
|
|
videoPassthrough: false
|
|
videoBitrate: 1000
|
|
cpuUsageLevel: 3
|
|
audioPassthrough: true
|
|
|
|
/api/admin/config/video/codec:
|
|
post:
|
|
summary: Set the video codec.
|
|
description: Sets the specific video codec that will be used for video encoding. Some codecs will support hardware acceleration. Not all codecs will be supported for all systems.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value:
|
|
description: The video codec to change to.
|
|
type: string
|
|
example:
|
|
value: libx264
|
|
|
|
/api/admin/config/s3:
|
|
post:
|
|
summary: Set your storage configuration.
|
|
description: Sets your S3 storage provider configuration details to enable external storage.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value:
|
|
enabled: true
|
|
endpoint: https://s3.us-west-000.backblazeb2.com
|
|
accessKey: e1ac500y7000500047156bd060
|
|
secret: 'H8FH8eSxM2K/S42CUg5K000Tt4WY2fI'
|
|
bucket: 'video'
|
|
region: us-west-000
|
|
|
|
/api/admin/config/socialhandles:
|
|
post:
|
|
summary: Set your social handles.
|
|
description: Sets the external links to social networks and profiles.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value:
|
|
- platform: github
|
|
url: https://github.com/owncast/owncast
|
|
- platform: mastodon
|
|
url: https://mastodon.social/@gabek
|
|
|
|
/api/admin/config/customstyles:
|
|
post:
|
|
summary: Custom CSS styles to be used in the web front endpoints.
|
|
description: Save a string containing CSS to be inserted in to the web frontend page.
|
|
tags: ['Admin']
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: 'body { color: orange; background: black; }'
|
|
|
|
/api/admin/config/customjavascript:
|
|
post:
|
|
summary: Custom Javascript to be inserted into the frontend
|
|
description: Save a string containing Javascript to be inserted in to the web frontend page.
|
|
tags: ['Admin']
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/javascript:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: console.log('Hello world.');
|
|
|
|
/api/admin/config/appearance:
|
|
post:
|
|
summary: Save a map of variables and values to be used in the frontend.
|
|
description: These values will override the default values in the frontend.
|
|
tags: ['Admin']
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value:
|
|
type: object
|
|
example:
|
|
value:
|
|
theme-color-components-primary-button-background: '#ff0000'
|
|
theme-color-components-chat-background: '#000000'
|
|
|
|
/api/admin/viewersOverTime:
|
|
get:
|
|
summary: Viewers Over Time
|
|
description: Get the tracked viewer count over the collected period.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/TimestampedValue'
|
|
examples:
|
|
default:
|
|
value:
|
|
- time: '2020-10-03T21:41:00.381996-05:00'
|
|
value: 50
|
|
- time: '2020-10-03T21:42:00.381996-05:00'
|
|
value: 52
|
|
|
|
/api/admin/hardwarestats:
|
|
get:
|
|
summary: Hardware Stats
|
|
description: 'Get the CPU, Memory and Disk utilization levels over the collected period.'
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
cpu:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/TimestampedValue'
|
|
memory:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/TimestampedValue'
|
|
disk:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/TimestampedValue'
|
|
examples:
|
|
default:
|
|
value:
|
|
cpu:
|
|
- time: '2020-10-03T21:41:00.381996-05:00'
|
|
value: 23
|
|
- time: '2020-10-03T21:42:00.381996-05:00'
|
|
value: 27
|
|
- time: '2020-10-03T21:43:00.381996-05:00'
|
|
value: 22
|
|
memory:
|
|
- time: '2020-10-03T21:41:00.381996-05:00'
|
|
value: 65
|
|
- time: '2020-10-03T21:42:00.381996-05:00'
|
|
value: 66
|
|
- time: '2020-10-03T21:43:00.381996-05:00'
|
|
value: 72
|
|
disk:
|
|
- time: '2020-10-03T21:41:00.381996-05:00'
|
|
value: 11
|
|
- time: '2020-10-03T21:42:00.381996-05:00'
|
|
value: 11
|
|
- time: '2020-10-03T21:43:00.381996-05:00'
|
|
value: 11
|
|
|
|
/api/admin/config/hideviewercount:
|
|
post:
|
|
summary: Enable or disable showing the viewer count.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BooleanValue'
|
|
|
|
/api/admin/config/federation/enable:
|
|
post:
|
|
summary: Enable or disable federated social features.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BooleanValue'
|
|
|
|
/api/admin/config/federation/private:
|
|
post:
|
|
summary: Enable or disable private federation mode.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BooleanValue'
|
|
|
|
/api/admin/config/federation/showengagement:
|
|
post:
|
|
summary: Enable or disable Federation activity showing in chat.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BooleanValue'
|
|
|
|
/api/admin/config/federation/username:
|
|
post:
|
|
summary: Set the username you are seen as on the fediverse.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
|
|
/api/admin/config/federation/livemessage:
|
|
post:
|
|
summary: Set the message sent to the fediverse when this instance goes live.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
|
|
/api/admin/config/federation/blockdomains:
|
|
post:
|
|
summary: Save a collection of domains that should be ignored on the fediverse.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value:
|
|
- guns.eagles.biz
|
|
- freedom.us
|
|
|
|
/api/admin/federation/send:
|
|
post:
|
|
summary: Manually send a message to the fediverse from this instance.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: I'm still streaming, you should come visit.
|
|
|
|
/api/admin/federation/actions:
|
|
get:
|
|
summary: Get a list of accepted actions that took place on the Fediverse.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
description: Actions previously handled.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/FederatedAction'
|
|
|
|
/api/admin/emoji/upload:
|
|
post:
|
|
summary: Upload a single emoji image.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/emoji/delete:
|
|
post:
|
|
summary: Delete a single emoji image.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
example:
|
|
name: test.svg
|
|
|
|
/api/integrations/streamtitle:
|
|
post:
|
|
summary: Set the stream title.
|
|
description: Set the title of the currently streaming content.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AccessToken: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ConfigValue'
|
|
example:
|
|
value: Streaming my favorite game, Desert Bus.
|
|
|
|
/api/integrations/chat/send:
|
|
post:
|
|
summary: Send a chat message.
|
|
description: Send a chat message on behalf of a 3rd party integration, bot or service.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AccessToken: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
body:
|
|
type: string
|
|
description: The message text that will be sent as the user.
|
|
responses:
|
|
'200':
|
|
description: Message was sent.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: sent
|
|
|
|
/api/integrations/chat/system:
|
|
post:
|
|
summary: Send a system chat message.
|
|
description: Send a chat message on behalf of the system/server.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AccessToken: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
body:
|
|
type: string
|
|
description: The message text that will be sent as the system user.
|
|
responses:
|
|
'200':
|
|
description: Message was sent.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: sent
|
|
|
|
/api/integrations/chat/action:
|
|
post:
|
|
summary: Send a chat action.
|
|
description: Send an action that took place to the chat.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AccessToken: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- 'body'
|
|
properties:
|
|
body:
|
|
type: string
|
|
description: The message text that will be sent as the system user.
|
|
example: 'rolled a 15 on the dice'
|
|
author:
|
|
type: string
|
|
description: An optional user name that performed the action.
|
|
example: 'JohnSmith'
|
|
responses:
|
|
'200':
|
|
description: Message was sent.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: sent
|
|
|
|
/api/integrations/chat/system/client/{clientId}:
|
|
post:
|
|
summary: Send system chat message to a client, identified by its ClientId
|
|
description: Send a chat message on behalf of the system/server to a single client.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AccessToken: []
|
|
parameters:
|
|
- name: clientId
|
|
in: path
|
|
description: Client ID (a unique numeric Id, identifying the client connection)
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- 'body'
|
|
properties:
|
|
body:
|
|
type: string
|
|
description: The message text that will be sent to the client.
|
|
example: 'What a beautiful day. I love it'
|
|
responses:
|
|
'200':
|
|
description: Message was sent.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
messages:
|
|
type: string
|
|
example: sent
|
|
'500':
|
|
description: Message was not sent to the client
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
description: message explaining what went wrong sending the message to the client
|
|
|
|
/api/admin/accesstokens/create:
|
|
post:
|
|
summary: Create an access token.
|
|
description: Create a single access token that has access to the access scopes provided.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The human-readable name to give this access token.
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
responses:
|
|
'200':
|
|
description: Token was created.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: your new token
|
|
token:
|
|
type: string
|
|
example: 'zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI='
|
|
|
|
/api/admin/accesstokens/delete:
|
|
post:
|
|
summary: Delete an access token.
|
|
description: Delete a single access token.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
description: The token to delete
|
|
|
|
responses:
|
|
'200':
|
|
description: Token was deleted.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
example: true
|
|
message:
|
|
type: string
|
|
example: deleted token
|
|
|
|
/api/admin/accesstokens:
|
|
get:
|
|
summary: Return all access tokens.
|
|
description: Return all of the available access tokens.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
description: Tokens are returned
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/api/admin/webhooks:
|
|
get:
|
|
summary: Return all webhooks.
|
|
description: Return all of the configured webhooks for external events.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
description: Webhooks are returned
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Webhook'
|
|
|
|
/api/admin/config/externalactions:
|
|
post:
|
|
summary: Set external action URLs.
|
|
description: Set a collection of external action URLs that are displayed in the UI.
|
|
tags: ['Admin', 'Integrations']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
description: URL of the external action content.
|
|
title:
|
|
type: string
|
|
description: The title to put on the external action button.
|
|
description:
|
|
type: string
|
|
description: Optional additional description to display in the UI.
|
|
icon:
|
|
type: string
|
|
description: The URL to an image to place on the external action button.
|
|
color:
|
|
type: string
|
|
description: Optional color to use for drawing the action button.
|
|
openExternally:
|
|
type: boolean
|
|
description: If set this action will open in a new browser tab instead of an internal modal.
|
|
responses:
|
|
'200':
|
|
description: Actions have been updated.
|
|
|
|
/api/admin/webhooks/delete:
|
|
post:
|
|
summary: Delete a single webhook.
|
|
description: Delete a single webhook by its ID.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The webhook id to delete
|
|
responses:
|
|
'200':
|
|
description: Webhook is deleted
|
|
|
|
/api/admin/webhooks/create:
|
|
post:
|
|
summary: Create a webhook.
|
|
description: Create a single webhook that acts on the requested events.
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
description: The url to post the events to.
|
|
events:
|
|
description: The events to be notified about.
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
responses:
|
|
'200':
|
|
description: Token was created.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: your new token
|
|
token:
|
|
type: string
|
|
example: 'zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI='
|
|
|
|
/api/integrations/clients:
|
|
get:
|
|
summary: Return a list of currently connected clients
|
|
description: Return a list of currently connected clients with optional geo details.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AccessToken: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/ClientsResponse'
|
|
|
|
/api/integrations/chat:
|
|
get:
|
|
summary: Historical Chat Messages
|
|
description: Used to get the backlog of chat messages.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AccessToken: []
|
|
responses:
|
|
'200':
|
|
description: ''
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: '#/components/schemas/User'
|
|
body:
|
|
type: string
|
|
description: Escaped HTML of the chat message content.
|
|
id:
|
|
type: string
|
|
description: Unique ID of the chat message.
|
|
visible:
|
|
type: boolean
|
|
description: 'Should chat message be visibly rendered.'
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
|
|
/api/integrations/chat/messagevisibility:
|
|
post:
|
|
summary: Update the visibility of chat messages.
|
|
description: Pass an array of IDs you want to change the chat visibility of.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
visible:
|
|
type: boolean
|
|
description: Are these messages visible.
|
|
idArray:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: IDs of the chat messages you wish to change the visibility of.
|
|
tags: ['Integrations']
|
|
security:
|
|
- AccessToken: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/chat/users/setmoderator:
|
|
post:
|
|
summary: Set moderator privileges on a chat users.
|
|
description: Give a chat user ID and be able to grant or remove moderator privileges to this user.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
userId:
|
|
type: string
|
|
description: User ID of the chat user you want to change moderation status of.
|
|
example: xJ84_48Ghj
|
|
isModerator:
|
|
type: boolean
|
|
description: The moderator status of this user.
|
|
example: true
|
|
tags: ['Admin', 'Moderation']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
responses:
|
|
'200':
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/chat/users/moderators:
|
|
get:
|
|
tags: ['Admin', 'Moderation']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
summary: Get a list of chat moderator users.
|
|
responses:
|
|
'200':
|
|
description: List of moderators
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
|
|
/api/moderation/chat/user/:
|
|
get:
|
|
tags: ['Moderation']
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
description: User ID
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: USER-ID
|
|
responses:
|
|
'200':
|
|
description: User
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: '#/components/schemas/User'
|
|
connectClients:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Client'
|
|
messages:
|
|
$ref: '#/components/schemas/ChatMessageArray'
|
|
|
|
/api/admin/followers:
|
|
get:
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
summary: Get the followers of this instance
|
|
responses:
|
|
'200':
|
|
description: Followers
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Follower'
|
|
|
|
/api/admin/followers/pending:
|
|
get:
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
summary: Get a list of follow requests that are pending.
|
|
responses:
|
|
'200':
|
|
description: Followers
|
|
$ref: '#/components/schemas/FollowerArray'
|
|
|
|
/api/admin/followers/blocked:
|
|
get:
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
summary: Get a list of follow requests that have been blocked/rejected.
|
|
responses:
|
|
'200':
|
|
description: Follower requests that have been rejected or blocked.
|
|
$ref: '#/components/schemas/FollowerArray'
|
|
|
|
/api/admin/followers/approve:
|
|
post:
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
summary: Approve a pending follow request.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
actorIRI:
|
|
type: string
|
|
description: The requestor's remote IRI used to identify the user.
|
|
responses:
|
|
'200':
|
|
description: The request has been successfully approved.
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/config/chat/suggestedusernames:
|
|
post:
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
summary: A list of names to select from randomly for new chat users.
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: The list of default names have been updated.
|
|
$ref: '#/components/responses/BasicResponse'
|
|
|
|
/api/admin/prometheus:
|
|
get:
|
|
tags: ['Admin']
|
|
security:
|
|
- AdminBasicAuth: []
|
|
summary: Return Prometheus-compatible scraper metrics.
|
|
responses:
|
|
'200':
|
|
description: Prometheus-compatible scraper values.
|