Owncast (0.0.5-development)

Download OpenAPI specification:Download

Owncast is a self-hosted live video and web chat server for use with existing popular broadcasting software. The following APIs represent the state in the development master branch.

Authentication

AdminBasicAuth

The username for admin basic auth is admin and the password is the stream key.

Security Scheme Type HTTP
HTTP Authorization Scheme basic

Admin

Admin operations requiring authentication.

Server status and broadcaster

Authorizations:

Responses

Response samples

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

Disconnect Broadcaster

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

Authorizations:

Responses

Response samples

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

Return a list of currently connected clients

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

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Return recent log entries

Returns server logs.

Authorizations:

Responses

Response samples

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

Return recent warning and error logs.

Return recent warning and error logs.

Authorizations:

Responses

Response samples

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

Update Stream Key. Pre-release, do not use.

Change the stream key in memory, but not in the config file. This will require all broadcasters to be reconfigured to connect again.

Authorizations:
Request Body schema: application/json
key
string

Responses

Request samples

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

Response samples

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

Change the extra page content. Pre-release, do not use.

Change the extra page content in memory, but not on disk.

Authorizations:
Request Body schema: application/json
content
string

Responses

Request samples

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

Response samples

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

Update Stream Title. Pre-release, do not use.

Change the stream title in memory, but not in the config file.

Authorizations:
Request Body schema: application/json
title
string

Responses

Request samples

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

Response samples

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

Update Stream Name. Pre-release, do not use.

Change the stream name in memory, but not in the config file.

Authorizations:
Request Body schema: application/json
name
string

Responses

Request samples

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

Response samples

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

Update Stream Tags. Pre-release, do not use.

Change the stream tags in memory, but not in the config file.

Authorizations:
Request Body schema: application/json
tags
Array of strings

Responses

Request samples

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

Response samples

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

Server Configuration

Get the current configuration of the Owncast server.

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "instanceDetails": {
    },
  • "ffmpegPath": "string",
  • "webServerPort": 0,
  • "s3": {
    },
  • "videoSettings": {
    },
  • "yp": {
    }
}

Chat messages, unfiltered.

Get a list of all chat messages with no filters applied.

Authorizations:

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:
Request Body schema: application/json
visible
boolean

Are these messages visible in "Get the CPU, Memory and Disk utilization levels over the collected period."

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"
}

Viewers Over Time

Get the tracked viewer count over the collected period.

Authorizations:

Responses

Response samples

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

Hardware Stats

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

Authorizations:

Responses

Response samples

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

Chat

Endpoints related to the chat interface.

Historical Chat Messages

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

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": [
    ]
}

Server

Information

The client configuration. Information useful for the user interface.

Responses

Response samples

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

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"
}

Pre-release

Update Stream Key. Pre-release, do not use.

Change the stream key in memory, but not in the config file. This will require all broadcasters to be reconfigured to connect again.

Authorizations:
Request Body schema: application/json
key
string

Responses

Request samples

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

Response samples

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

Change the extra page content. Pre-release, do not use.

Change the extra page content in memory, but not on disk.

Authorizations:
Request Body schema: application/json
content
string

Responses

Request samples

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

Response samples

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

Update Stream Title. Pre-release, do not use.

Change the stream title in memory, but not in the config file.

Authorizations:
Request Body schema: application/json
title
string

Responses

Request samples

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

Response samples

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

Update Stream Name. Pre-release, do not use.

Change the stream name in memory, but not in the config file.

Authorizations:
Request Body schema: application/json
name
string

Responses

Request samples

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

Response samples

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

Update Stream Tags. Pre-release, do not use.

Change the stream tags in memory, but not in the config file.

Authorizations:
Request Body schema: application/json
tags
Array of strings

Responses

Request samples

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

Response samples

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