diff --git a/docs/api/index.html b/docs/api/index.html index e7a955330..f5487522d 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -1931,6 +1931,29 @@ data-styled.g32[id="sc-iJCRrE"]{content:"jCdxGr,"}/*!sc*/ .hMPeqJ > button{background-color:transparent;border:0;color:inherit;padding:2px 10px;font-family:Roboto,sans-serif;font-size:14px;line-height:1.5em;cursor:pointer;outline:0;}/*!sc*/ .hMPeqJ > button:hover,.hMPeqJ > button:focus{background:rgba(255,255,255,0.1);}/*!sc*/ data-styled.g33[id="sc-giAqHp"]{content:"hMPeqJ,"}/*!sc*/ +.kiAqTA:hover .sc-giAqHp{opacity:1;}/*!sc*/ +data-styled.g34[id="sc-ezzafa"]{content:"kiAqTA,"}/*!sc*/ +.eMUKnN code[class*='language-'],.eMUKnN pre[class*='language-']{text-shadow:0 -0.1em 0.2em black;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/ +@media print{.eMUKnN code[class*='language-'],.eMUKnN pre[class*='language-']{text-shadow:none;}}/*!sc*/ +.eMUKnN pre[class*='language-']{padding:1em;margin:0.5em 0;overflow:auto;}/*!sc*/ +.eMUKnN .token.comment,.eMUKnN .token.prolog,.eMUKnN .token.doctype,.eMUKnN .token.cdata{color:hsl(30,20%,50%);}/*!sc*/ +.eMUKnN .token.punctuation{opacity:0.7;}/*!sc*/ +.eMUKnN .namespace{opacity:0.7;}/*!sc*/ +.eMUKnN .token.property,.eMUKnN .token.tag,.eMUKnN .token.number,.eMUKnN .token.constant,.eMUKnN .token.symbol{color:#4a8bb3;}/*!sc*/ +.eMUKnN .token.boolean{color:#e64441;}/*!sc*/ +.eMUKnN .token.selector,.eMUKnN .token.attr-name,.eMUKnN .token.string,.eMUKnN .token.char,.eMUKnN .token.builtin,.eMUKnN .token.inserted{color:#a0fbaa;}/*!sc*/ +.eMUKnN .token.selector + a,.eMUKnN .token.attr-name + a,.eMUKnN .token.string + a,.eMUKnN .token.char + a,.eMUKnN .token.builtin + a,.eMUKnN .token.inserted + a,.eMUKnN .token.selector + a:visited,.eMUKnN .token.attr-name + a:visited,.eMUKnN .token.string + a:visited,.eMUKnN .token.char + a:visited,.eMUKnN .token.builtin + a:visited,.eMUKnN .token.inserted + a:visited{color:#4ed2ba;-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ +.eMUKnN .token.property.string{color:white;}/*!sc*/ +.eMUKnN .token.operator,.eMUKnN .token.entity,.eMUKnN .token.url,.eMUKnN .token.variable{color:hsl(40,90%,60%);}/*!sc*/ +.eMUKnN .token.atrule,.eMUKnN .token.attr-value,.eMUKnN .token.keyword{color:hsl(350,40%,70%);}/*!sc*/ +.eMUKnN .token.regex,.eMUKnN .token.important{color:#e90;}/*!sc*/ +.eMUKnN .token.important,.eMUKnN .token.bold{font-weight:bold;}/*!sc*/ +.eMUKnN .token.italic{font-style:italic;}/*!sc*/ +.eMUKnN .token.entity{cursor:help;}/*!sc*/ +.eMUKnN .token.deleted{color:red;}/*!sc*/ +data-styled.g35[id="sc-bYwzuL"]{content:"eMUKnN,"}/*!sc*/ +.bOBJeo{font-family:Courier,monospace;font-size:13px;overflow-x:auto;margin:0;white-space:pre;}/*!sc*/ +data-styled.g36[id="sc-kLojOw"]{content:"bOBJeo,"}/*!sc*/ .leCKhp{position:relative;}/*!sc*/ data-styled.g38[id="sc-iklJeh"]{content:"leCKhp,"}/*!sc*/ .gVpQmv{position:absolute;pointer-events:none;z-index:1;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:8px;margin:auto;text-align:center;}/*!sc*/ @@ -2069,6 +2092,9 @@ data-styled.g61[id="sc-jffHpj"]{content:"cThoNa,"}/*!sc*/ data-styled.g63[id="sc-oeezt"]{content:"dLCGMn,"}/*!sc*/ .hIkHYw{color:#d41f1c;font-size:0.9em;font-weight:normal;margin-left:20px;line-height:1;}/*!sc*/ data-styled.g64[id="sc-hhIiOg"]{content:"hIkHYw,"}/*!sc*/ +.fElSEN{border-radius:2px;word-break:break-word;background-color:rgba(51,51,51,0.05);color:rgba(51,51,51,0.9);padding:0 5px;border:1px solid rgba(51,51,51,0.1);font-family:Courier,monospace;}/*!sc*/ +.sc-ckTSus + .sc-ckTSus{margin-left:0;}/*!sc*/ +data-styled.g68[id="sc-ckTSus"]{content:"fElSEN,"}/*!sc*/ .gBTJlj{padding-left:10px;}/*!sc*/ data-styled.g77[id="sc-hmbstg"]{content:"gBTJlj,"}/*!sc*/ .dPrSxx:after{content:' and ';font-weight:normal;}/*!sc*/ @@ -2215,7 +2241,7 @@ data-styled.g138[id="sc-iIgjPs"]{content:"jIUTls,"}/*!sc*/ -

Owncast (0.0.13)

Download OpenAPI specification:Download

Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.

+ " fill="currentColor">

Owncast (0.1.0)

Download OpenAPI specification:Download

Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software.

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.

Admin

Admin operations requiring authentication.

Server status and broadcaster

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
{
  • "broadcaster": {
    },
  • "online": true,
  • "viewerCount": 3,
  • "overallPeakViewerCount": 4,
  • "sessionPeakViewerCount": 4,
  • "versionNumber": "0.0.3"
}

Disconnect Broadcaster

Disconnect the active inbound stream, if one exists, and terminate the broadcast.

@@ -2257,59 +2283,72 @@ data-styled.g138[id="sc-iIgjPs"]{content:"jIUTls,"}/*!sc*/
Authorizations:
AdminBasicAuth
Request Body schema: application/json
userId
string

User ID to act upon.

enabled
boolean

Set the enabled state of this user.

Responses

Request samples

Content type
application/json
{
  • "userId": "yklw5Imng",
  • "enabled": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the stream key.

Set the stream key. Also used as the admin password.

+

Request samples

Content type
application/json
{
  • "userId": "yklw5Imng",
  • "enabled": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the admin password.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the stream keys.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
Array
id
string

The key used for authing a stream.

+
comment
string

The user-facing description or explanation of this single key

+

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the custom page content.

Set the custom page content using markdown.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the custom page content.

Set the custom page content using markdown.

+

Request samples

Content type
application/json
"# Welcome to my cool server!<br><br>I _hope_ you enjoy it."

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the stream title.

Set the title of the currently streaming content.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
"# Welcome to my cool server!<br><br>I _hope_ you enjoy it."

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the stream title.

Set the title of the currently streaming content.

+

Request samples

Content type
application/json
{
  • "value": "Streaming my favorite game, Desert Bus."
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the server name.

Set the name associated with your server. Often is your name, username or identity.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "Streaming my favorite game, Desert Bus."
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the server name.

Set the name associated with your server. Often is your name, username or identity.

+

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the server summary.

Set the summary of your server's streaming content.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the server summary.

Set the summary of your server's streaming content.

+

Request samples

Content type
application/json
{
  • "value": "The best in Desert Bus Streaming"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the offline message.

Set the message that is displayed when a stream is not live.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "The best in Desert Bus Streaming"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the server logo.

Set the logo for your server. Path is relative to webroot.

+

Request samples

Content type
application/json
{
  • "value": "Come back on Friday at 2pm, I'll be streaming then."
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the server logo.

Set the logo for your server. Path is relative to webroot.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "/img/mylogo.png"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the server tags.

Set the tags displayed for your server and the categories you can show up in on the directory.

+

Request samples

Content type
application/json
{
  • "value": "/img/mylogo.png"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the server tags.

Set the tags displayed for your server and the categories you can show up in on the directory.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the ffmpeg binary path

Set the path for a specific copy of ffmpeg on your system.

+

Request samples

Content type
application/json
{
  • "value": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the ffmpeg binary path

Set the path for a specific copy of ffmpeg on your system.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "/home/owncast/ffmpeg"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the owncast web port.

Set the port the owncast web server should listen on.

+

Request samples

Content type
application/json
{
  • "value": "/home/owncast/ffmpeg"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the owncast web port.

Set the port the owncast web server should listen on.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": 8080
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the inbound rtmp server port.

Set the port where owncast service will listen for inbound broadcasts.

+

Request samples

Content type
application/json
{
  • "value": 8080
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the inbound rtmp server port.

Set the port where owncast service will listen for inbound broadcasts.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": 1935
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Mark if your stream is not safe for work

Mark if your stream can be consitered not safe for work. Used in different contexts, including the directory for filtering purposes.

+

Request samples

Content type
application/json
{
  • "value": 1935
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Mark if your stream is not safe for work

Mark if your stream can be consitered not safe for work. Used in different contexts, including the directory for filtering purposes.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": false
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set if this server supports the Owncast directory.

If set to true the server will attempt to register itself with the Owncast Directory. Off by default.

+

Request samples

Content type
application/json
{
  • "value": false
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set if this server supports the Owncast directory.

If set to true the server will attempt to register itself with the Owncast Directory. Off by default.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the public url of this owncast server.

Set the public url of this owncast server. Used for the directory and optional integrations.

+

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the public url of this owncast server.

Set the public url of this owncast server. Used for the directory and optional integrations.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the latency level for the stream.

Sets the latency level that determines how much video is buffered between the server and viewer. Less latency can end up with more buffering.

+

Request samples

Content type
application/json

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the latency level for the stream.

Sets the latency level that determines how much video is buffered between the server and viewer. Less latency can end up with more buffering.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
integer

The latency level

Responses

Request samples

Content type
application/json
{
  • "value": 4
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the configuration of your stream output.

Sets the detailed configuration for all of the stream variants you support.

+

Request samples

Content type
application/json
{
  • "value": 4
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the configuration of your stream output.

Sets the detailed configuration for all of the stream variants you support.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the video codec.

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.

+

Request samples

Content type
application/json
{
  • "value": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the video codec.

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.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
string

The video codec to change to.

Responses

Request samples

Content type
application/json
{
  • "value": "libx264"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set your storage configuration.

Sets your S3 storage provider configuration details to enable external storage.

+

Request samples

Content type
application/json
{
  • "value": "libx264"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set your storage configuration.

Sets your S3 storage provider configuration details to enable external storage.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set your social handles.

Sets the external links to social networks and profiles.

+

Request samples

Content type
application/json
{
  • "value": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set your social handles.

Sets the external links to social networks and profiles.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Custom CSS styles to be used in the web front endpoints.

Save a string containing CSS to be inserted in to the web frontend page.

+

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Custom CSS styles to be used in the web front endpoints.

Save a string containing CSS to be inserted in to the web frontend page.

Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "body { color: orange; background: black; }"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Viewers Over Time

Get the tracked viewer count over the collected period.

-
Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Hardware Stats

Get the CPU, Memory and Disk utilization levels over the collected period.

-
Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
{
  • "cpu": [
    ],
  • "memory": [
    ],
  • "disk": [
    ]
}

Enable or disable federated social features.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
boolean

Responses

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Enable or disable private federation mode.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
boolean

Responses

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Enable or disable Federation activity showing in chat.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
boolean

Responses

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the username you are seen as on the fediverse.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the message sent to the fediverse when this instance goes live.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Save a collection of domains that should be ignored on the fediverse.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Manually send a message to the fediverse from this instance.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "I'm still streaming, you should come visit."
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Get a list of accepted actions that took place on the Fediverse.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[]

Return all webhooks.

Return all of the configured webhooks for external events.

+

Request samples

Content type
application/json
{
  • "value": "body { color: orange; background: black; }"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Custom Javascript to be inserted into the frontend

Save a string containing Javascript to be inserted in to the web frontend page.

+
Request Body schema: application/javascript
string or integer or object or boolean

Responses

Request samples

Content type
application/javascript
{
+  "value": "console.log('Hello world.');"
+}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Save a map of variables and values to be used in the frontend.

These values will override the default values in the frontend.

+
Request Body schema: application/json
value
object

Responses

Request samples

Content type
application/json
{
  • "value": {
    }
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Viewers Over Time

Get the tracked viewer count over the collected period.

+
Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Hardware Stats

Get the CPU, Memory and Disk utilization levels over the collected period.

+
Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
{
  • "cpu": [
    ],
  • "memory": [
    ],
  • "disk": [
    ]
}

Enable or disable showing the viewer count.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
boolean

Responses

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Enable or disable federated social features.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
boolean

Responses

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Enable or disable private federation mode.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
boolean

Responses

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Enable or disable Federation activity showing in chat.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
boolean

Responses

Request samples

Content type
application/json
{
  • "value": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the username you are seen as on the fediverse.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set the message sent to the fediverse when this instance goes live.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Save a collection of domains that should be ignored on the fediverse.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Manually send a message to the fediverse from this instance.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "I'm still streaming, you should come visit."
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Get a list of accepted actions that took place on the Fediverse.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[]

Upload a single emoji image.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Delete a single emoji image.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
object

Responses

Request samples

Content type
application/json
{
  • "name": "test.svg"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Return all webhooks.

Return all of the configured webhooks for external events.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "url": "string",
  • "events": [
    ],
  • "timestamp": "2019-08-24T14:15:22Z",
  • "lastUsed": "2019-08-24T14:15:22Z"
}

Set external action URLs.

Set a collection of external action URLs that are displayed in the UI.

+

Response samples

Content type
application/json
{
  • "id": "string",
  • "url": "string",
  • "events": [
    ],
  • "timestamp": "2019-08-24T14:15:22Z",
  • "lastUsed": "2019-08-24T14:15:22Z"
}

Set external action URLs.

Set a collection of external action URLs that are displayed in the UI.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
Array
url
string

URL of the external action content.

title
string

The title to put on the external action button.

description
string

Optional additional description to display in the UI.

@@ -2317,55 +2356,58 @@ data-styled.g138[id="sc-iIgjPs"]{content:"jIUTls,"}/*!sc*/
color
string

Optional color to use for drawing the action button.

openExternally
boolean

If set this action will open in a new browser tab instead of an internal modal.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Delete a single webhook.

Delete a single webhook by its ID.

+

Request samples

Content type
application/json
[
  • {
    }
]

Delete a single webhook.

Delete a single webhook by its ID.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
id
string

The webhook id to delete

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Create a webhook.

Create a single webhook that acts on the requested events.

+

Request samples

Content type
application/json
{
  • "id": "string"
}

Create a webhook.

Create a single webhook that acts on the requested events.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
url
string

The url to post the events to.

events
Array of strings

The events to be notified about.

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "events": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "your new token",
  • "token": "zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI="
}

Set moderator privileges on a chat users.

Give a chat user ID and be able to grant or remove moderator privileges to this user.

+

Request samples

Content type
application/json
{
  • "url": "string",
  • "events": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "your new token",
  • "token": "zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI="
}

Set moderator privileges on a chat users.

Give a chat user ID and be able to grant or remove moderator privileges to this user.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
userId
string

User ID of the chat user you want to change moderation status of.

isModerator
boolean

The moderator status of this user.

Responses

Request samples

Content type
application/json
{
  • "userId": "xJ84_48Ghj",
  • "isModerator": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Get a list of chat moderator users.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the followers of this instance

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[]

Get a list of follow requests that are pending.

Authorizations:
AdminBasicAuth

Responses

Get a list of follow requests that have been blocked/rejected.

Authorizations:
AdminBasicAuth

Responses

Approve a pending follow request.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
actorIRI
string

The requestor's remote IRI used to identify the user.

+

Request samples

Content type
application/json
{
  • "userId": "xJ84_48Ghj",
  • "isModerator": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Get a list of chat moderator users.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the followers of this instance

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[]

Get a list of follow requests that are pending.

Authorizations:
AdminBasicAuth

Responses

Get a list of follow requests that have been blocked/rejected.

Authorizations:
AdminBasicAuth

Responses

Approve a pending follow request.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
actorIRI
string

The requestor's remote IRI used to identify the user.

Responses

Request samples

Content type
application/json
{
  • "actorIRI": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

A list of names to select from randomly for new chat users.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
Array of strings

Responses

Request samples

Content type
application/json
{
  • "value": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Return Prometheus-compatible scraper metrics.

Authorizations:
AdminBasicAuth

Responses

Request samples

Content type
application/json
{
  • "actorIRI": "string"
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

A list of names to select from randomly for new chat users.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
value
Array of strings

Responses

Request samples

Content type
application/json
{
  • "value": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Return Prometheus-compatible scraper metrics.

Authorizations:
AdminBasicAuth

Responses

Chat

Endpoints related to the chat interface.

Register a chat user

Register a user that returns an access token for accessing chat.

Authorizations:
UserToken
Request Body schema: application/json
displayName
string

Optionally provide a display name you want to assign to this user when registering.

-

Responses

Request samples

Content type
application/json
{
  • "displayName": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "accessToken": "string",
  • "displayName": "string"
}

Chat Messages Backlog

Used to get chat messages prior to connecting to the websocket.

-
Authorizations:
UserToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Custom Emoji

Get a list of custom emoji that are supported in chat.

-

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Integrations

APIs built to allow 3rd parties to interact with an Owncast server.

+

Responses

Request samples

Content type
application/json
{
  • "displayName": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "accessToken": "string",
  • "displayName": "string"
}

Chat Messages Backlog

Used to get chat messages prior to connecting to the websocket.

+
Authorizations:
UserToken

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Get Emoji Image

Get an emoji image.

+
path Parameters
name
required
string
Example: test.svg

Emoji image name

+

Responses

Get Custom Emoji

Get a list of custom emoji that are supported in chat.

+

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Integrations

APIs built to allow 3rd parties to interact with an Owncast server.

Set the stream title.

Set the title of the currently streaming content.

Authorizations:
AccessToken
Request Body schema: application/json
string or integer or object or boolean

Responses

Request samples

Content type
application/json
{
  • "value": "Streaming my favorite game, Desert Bus."
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Send a chat message.

Send a chat message on behalf of a 3rd party integration, bot or service.

+

Request samples

Content type
application/json
{
  • "value": "Streaming my favorite game, Desert Bus."
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Send a chat message.

Send a chat message on behalf of a 3rd party integration, bot or service.

Authorizations:
AccessToken
Request Body schema: application/json
body
string

The message text that will be sent as the user.

Responses

Request samples

Content type
application/json
{
  • "body": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "sent"
}

Send a system chat message.

Send a chat message on behalf of the system/server.

+

Request samples

Content type
application/json
{
  • "body": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "sent"
}

Send a system chat message.

Send a chat message on behalf of the system/server.

Authorizations:
AccessToken
Request Body schema: application/json
body
string

The message text that will be sent as the system user.

Responses

Request samples

Content type
application/json
{
  • "body": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "sent"
}

Send a chat action.

Send an action that took place to the chat.

+

Request samples

Content type
application/json
{
  • "body": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "sent"
}

Send a chat action.

Send an action that took place to the chat.

Authorizations:
AccessToken
Request Body schema: application/json
body
required
string

The message text that will be sent as the system user.

author
string

An optional user name that performed the action.

Responses

Request samples

Content type
application/json
{
  • "body": "rolled a 15 on the dice",
  • "author": "JohnSmith"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "sent"
}

Send system chat message to a client, identified by its ClientId

Send a chat message on behalf of the system/server to a single client.

+

Request samples

Content type
application/json
{
  • "body": "rolled a 15 on the dice",
  • "author": "JohnSmith"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "sent"
}

Send system chat message to a client, identified by its ClientId

Send a chat message on behalf of the system/server to a single client.

Authorizations:
AccessToken
path Parameters
clientId
required
integer <int64>

Client ID (a unique numeric Id, identifying the client connection)

Request Body schema: application/json
body
required
string

The message text that will be sent to the client.

Responses

Request samples

Content type
application/json
{
  • "body": "What a beautiful day. I love it"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "messages": "sent"
}

Create an access token.

Create a single access token that has access to the access scopes provided.

+

Request samples

Content type
application/json
{
  • "body": "What a beautiful day. I love it"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "messages": "sent"
}

Create an access token.

Create a single access token that has access to the access scopes provided.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
name
string

The human-readable name to give this access token.

scopes
Array of strings

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "scopes": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "your new token",
  • "token": "zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI="
}

Delete an access token.

Delete a single access token.

+

Request samples

Content type
application/json
{
  • "name": "string",
  • "scopes": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "your new token",
  • "token": "zG2xO-mHTFnelCp5xaIkYEFWcPhoOswOSRmFC1BkI="
}

Delete an access token.

Delete a single access token.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
token
string

The token to delete

Responses

Request samples

Content type
application/json
{
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "deleted token"
}

Return all access tokens.

Return all of the available access tokens.

+

Request samples

Content type
application/json
{
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "deleted token"
}

Return all access tokens.

Return all of the available access tokens.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[
  • "string"
]

Set external action URLs.

Set a collection of external action URLs that are displayed in the UI.

+

Response samples

Content type
application/json
[
  • "string"
]

Set external action URLs.

Set a collection of external action URLs that are displayed in the UI.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
Array
url
string

URL of the external action content.

title
string

The title to put on the external action button.

description
string

Optional additional description to display in the UI.

@@ -2373,35 +2415,38 @@ data-styled.g138[id="sc-iIgjPs"]{content:"jIUTls,"}/*!sc*/
color
string

Optional color to use for drawing the action button.

openExternally
boolean

If set this action will open in a new browser tab instead of an internal modal.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Return a list of currently connected clients

Return a list of currently connected clients with optional geo details.

+

Request samples

Content type
application/json
[
  • {
    }
]

Return a list of currently connected clients

Return a list of currently connected clients with optional geo details.

Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Historical Chat Messages

Used to get the backlog of chat messages.

-
Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update the visibility of chat messages.

Pass an array of IDs you want to change the chat visibility of.

+

Response samples

Content type
application/json
[
  • {
    }
]

Historical Chat Messages

Used to get the backlog of chat messages.

+
Authorizations:
AccessToken

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update the visibility of chat messages.

Pass an array of IDs you want to change the chat visibility of.

Authorizations:
AccessToken
Request Body schema: application/json
visible
boolean

Are these messages visible.

idArray
Array of strings

Responses

Request samples

Content type
application/json
{
  • "visible": true,
  • "idArray": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Moderation

Chat-related actions that can take place by a moderator.

+

Request samples

Content type
application/json
{
  • "visible": true,
  • "idArray": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Moderation

Chat-related actions that can take place by a moderator.

Update the visibility of chat messages.

Pass an array of IDs you want to change the chat visibility of.

Authorizations:
ModeratorUserToken
Request Body schema: application/json
visible
boolean

Are these messages visible.

idArray
Array of strings

Responses

Request samples

Content type
application/json
{
  • "visible": true,
  • "idArray": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Disable (block) or re-enable a chat user.

Authorizations:
ModeratorUserToken
Request Body schema: application/json
userId
string

User ID of the chat user you're changing.

+

Request samples

Content type
application/json
{
  • "visible": true,
  • "idArray": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Disable (block) or re-enable a chat user.

Authorizations:
ModeratorUserToken
Request Body schema: application/json
userId
string

User ID of the chat user you're changing.

enabled
boolean

State of this user. False to block/disable.

Responses

Request samples

Content type
application/json
{
  • "userId": "string",
  • "enabled": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set moderator privileges on a chat users.

Give a chat user ID and be able to grant or remove moderator privileges to this user.

+

Request samples

Content type
application/json
{
  • "userId": "string",
  • "enabled": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Set moderator privileges on a chat users.

Give a chat user ID and be able to grant or remove moderator privileges to this user.

Authorizations:
AdminBasicAuth
Request Body schema: application/json
userId
string

User ID of the chat user you want to change moderation status of.

isModerator
boolean

The moderator status of this user.

Responses

Request samples

Content type
application/json
{
  • "userId": "xJ84_48Ghj",
  • "isModerator": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Get a list of chat moderator users.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Server

Information

The client configuration. Information useful for the user interface.

-

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "summary": "string",
  • "logo": "string",
  • "tags": [
    ],
  • "socialHandles": [],
  • "extraPageContent": "<p>This page is <strong>super</strong> cool!",
  • "version": "Owncast v0.0.3-macOS (ef3796a033b32a312ebf5b334851cbf9959e7ecb)"
}

Mark the current viewer as active.

For tracking viewer count, periodically hit the ping endpoint.

+

Request samples

Content type
application/json
{
  • "userId": "xJ84_48Ghj",
  • "isModerator": true
}

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "message": "context specific success message"
}

Get a list of chat moderator users.

Authorizations:
AdminBasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

/api/moderation/chat/user/

path Parameters
name
required
string
Example: USER-ID

User ID

+

Responses

Response samples

Content type
application/json
{
  • "user": {
    },
  • "connectClients": [
    ],
  • "messages": [
    ]
}

Server

Information

The client configuration. Information useful for the user interface.

+

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "summary": "string",
  • "logo": "string",
  • "tags": [
    ],
  • "socialHandles": [],
  • "extraPageContent": "<p>This page is <strong>super</strong> cool!",
  • "version": "Owncast v0.0.3-macOS (ef3796a033b32a312ebf5b334851cbf9959e7ecb)"
}

Mark the current viewer as active.

For tracking viewer count, periodically hit the ping endpoint.

Responses

Current Status

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.

-

Responses

Response samples

Content type
application/json
{
  • "lastConnectTime": "2020-10-03T21:36:22-05:00",
  • "lastDisconnectTime": null,
  • "online": true,
  • "overallMaxViewerCount": 420,
  • "sessionMaxViewerCount": 12,
  • "viewerCount": 7
}

Yellow Pages Information

Information to be used in the Yellow Pages service, a global directory of Owncast servers.

-

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "logo": "string",
  • "nsfw": true,
  • "tags": [
    ],
  • "online": true,
  • "viewerCount": 0,
  • "overallMaxViewerCount": 0,
  • "sessionMaxViewerCount": 0,
  • "lastConnectTime": "2019-08-24T14:15:22Z"
}

Get the public followers of this instance

Responses

Response samples

Content type
application/json
[]

Return the information needed to redirect a user to a fediverse server to perform a remote follow action.

Request Body schema: application/json
account
string

The fediverse username@server.tld account that wants to perform the remote follow action.

+

Responses

Response samples

Content type
application/json
{
  • "lastConnectTime": "2020-10-03T21:36:22-05:00",
  • "lastDisconnectTime": null,
  • "online": true,
  • "overallMaxViewerCount": 420,
  • "sessionMaxViewerCount": 12,
  • "viewerCount": 7
}

Custom Javascript to execute.

Returns custom Javascript that was set in the Owncast admin to be run in the Owncast frontend.

+

Responses

Response samples

Content type
application/javascript
console.log("Hello World");

Yellow Pages Information

Information to be used in the Yellow Pages service, a global directory of Owncast servers.

+

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "logo": "string",
  • "nsfw": true,
  • "tags": [
    ],
  • "online": true,
  • "viewerCount": 0,
  • "overallMaxViewerCount": 0,
  • "sessionMaxViewerCount": 0,
  • "lastConnectTime": "2019-08-24T14:15:22Z"
}

Get the public followers of this instance

Responses

Response samples

Content type
application/json
[]

Return the information needed to redirect a user to a fediverse server to perform a remote follow action.

Request Body schema: application/json
account
string

The fediverse username@server.tld account that wants to perform the remote follow action.

Responses

Request samples

Content type
application/json
{
  • "account": "johnsmith@fediverse.biz"
}

Response samples

+

Request samples

Content type
application/json
{
  • "account": "johnsmith@fediverse.biz"
}

Response samples