Skip to main content

Create a new channel

Create an event-bound or standalone channel.

Broadcaster-first saga:

  1. INSERT row with lifecycle_status='creating', broadcast_id=NULL.
  2. POST /broadcasts on broadcaster.
  3. On success: UPDATE row → broadcast_id, lifecycle_status='ready'.
  4. Invalidate Redis bundle cache for the parent event.
Request Body — REQUIRED
data Data — REQUIRED
Responses
201

Successful Response

Schema — OPTIONAL
ok Ok — OPTIONAL

Indicates if the request was successful or not.

data object

Broadcaster Broadcast passthrough + public_api channel keys.

Broadcaster fields (id, title, status, input, outputs, translation_pipeline, …) are inherited from BroadcastDTO and served live from broadcaster; they are null when broadcaster is unreachable. The channel-core fields below are always served from the PG row so the UI (name=title, status) renders even on a broadcaster outage; languages are read from translation_pipeline (backfilled from cache on an outage).

id Id — OPTIONAL

Broadcast ID

user User — OPTIONAL

Owner user ID

title Title — OPTIONAL

Broadcast title

region Region — OPTIONAL

Deployment/ingest region

status Status — OPTIONAL

Runtime status (pending/active/failed/stopped)

error Error — OPTIONAL

Error description, if any

input_bitrate Input Bitrate — OPTIONAL

Measured input bitrate

ignore_video Ignore Video — OPTIONAL
original_delay_seconds Original Delay Seconds — OPTIONAL
original_ducked_volume Original Ducked Volume — OPTIONAL
input Input — OPTIONAL

Resolved input endpoint/credentials

outputs Outputs — OPTIONAL

Configured egress outputs

translation_pipeline Translation Pipeline — OPTIONAL

Translation pipeline settings

channel_id uuid

Channel ID (public_api addressing key)

type ChannelType

Possible values: [event, standalone]

event_id Event Id — OPTIONAL

Parent event ID

stage_id Stage Id — OPTIONAL

Parent stage ID

broadcast_id Broadcast Id — OPTIONAL

Underlying broadcast ID; null when broadcaster create failed

input_type ChannelInputType

Possible values: [webrtc_push, rtmp_push, srt_push, hls_pull]

room_name_suffix Room Name Suffix — OPTIONAL

LiveKit room name suffix

runtime_status — OPTIONAL

Cached channel runtime status

audio_settings Audio Settings — OPTIONAL

Channel audio settings

cache_synced_at Cache Synced At — OPTIONAL

Last broadcaster sync time in UTC

utc_created_at date-time

Channel creation time in UTC

utc_updated_at date-time

Channel last update time in UTC

default

Default Response

Schema — OPTIONAL
ok Ok — OPTIONAL

Indicates if the request was successful or not.

errors object[]

List of errors

type uri

Possible values: 1 ≤ length ≤ 2083

A string containing a URI reference that identifies the problem type.

status Status

Possible values: 399 < value < 600

A number indicating the HTTP status code.

title Title

Possible values: 5 ≤ length

A string containing a short, human-readable summary of the problem type.

detail Detail

Possible values: 5 ≤ length

A string containing a human-readable explanation specific to this occurrence of the problem.

instance Instance

Possible values: 1 ≤ length

A string containing a URI reference that identifies the specific occurrence of the problem.

error_code Error Code

A Number that indicates the error type that occurred.