Live Streaming

Live channel management, inputs, output profiles, schedule events, live schedules, and broadcast operator controls.

Live Streaming

Overview

The Live Streaming APIs provide comprehensive management of live video channels, inputs, output profiles, schedules, and broadcast operations. These APIs cover the full lifecycle of live streaming—from provisioning channels and configuring encoding profiles to controlling broadcasts and capturing clips.

Base Routes

Route PrefixDescription
/liveChannelLive channel CRUD, lifecycle controls, clipping, and schedule events
/liveInputLive input source management
/liveOutputProfileOutput encoding profile configuration
/liveOutputProfileGroupOutput profile group management
/admin/liveScheduleContent-based live schedule management
/admin/liveOperatorLive broadcast operator controls and recording

Live Channels

Get New Channel Template

GET /liveChannel/new
Response: LiveChannelNewModel

Returns a pre-populated template with default values for creating a new live channel.

Create Channel

POST /liveChannel
Request body: LiveChannelNewModel
Response: LiveChannelModel

Creates a new live channel and initiates cloud resource provisioning. The channel will have a Creating status until provisioning completes.

List All Channels

GET /liveChannel
Response: LiveChannelModel[]

Returns all live channels regardless of their current status.

Get Channel

GET /liveChannel/{channelId}
Response: LiveChannelModel

Returns the full live channel model for the specified channel.

Update Channel

PUT /liveChannel
Request body: LiveChannelEditModel
Response: LiveChannelModel

Updates an existing live channel configuration. Cloud resource updates may not take effect immediately.

Delete Channel

DELETE /liveChannel/{channelId}
Response: LiveResultModel<LiveChannelModel>

Deletes a live channel and its associated cloud resource. Fails if other resources (schedule events) still reference the channel.

Channel Lifecycle Controls

EndpointMethodDescription
/liveChannel/{channelId}/startPOSTStart the live channel stream
/liveChannel/{channelId}/pausePOSTPause the live channel stream
/liveChannel/{channelId}/resumePOSTResume a paused live channel
/liveChannel/{channelId}/stopPOSTStop the live channel stream
/liveChannel/{channelId}/nextEventPOSTAdvance to the next scheduled event

Channel Refresh

EndpointMethodDescription
/liveChannel/refreshPOSTRefresh all live channels
/liveChannel/{channelId}/refresh/{utcDateTimeTicks}POSTRefresh a specific channel at a point in time

Clipping

POST /liveChannel/{channelId}/clip
Request body: ClipModel { startTimeCode, endTimeCode, title, outputFolderId, tags, collections, relatedContent }
Response: IdModel

Creates a clip from the live channel stream using the specified time range and metadata.

POST /liveChannel/{channelId}/clipsnapshot
Response: LiveClipResponseModel

Captures a snapshot clip from the live channel at the current playback position.

Stream Authentication

GET /liveChannel/{channelId}/set-cookies
Response: string[]

Retrieves signed cookies or tokens for secure live stream playback via CDN. Sets cookies on the HTTP response for authenticated access.

Channel Properties

PUT /liveChannel/{channelId}/properties
Request body: IDictionary<string, object>

Updates the custom properties map for a live channel.

Output Tracking

POST /liveChannel/{channelId}/startOutputTracking

Starts output tracking for a live channel, enabling monitoring of output streams.

Channel Schedule Events

Schedule events define the playback sequence within a live channel.

Get New Schedule Event Template

GET /liveChannel/{channelId}/liveScheduleEvent/new
Response: LiveScheduleEventNewModel

Returns a pre-populated template for creating a new schedule event on the specified channel.

Create Schedule Event

POST /liveChannel/{channelId}/liveScheduleEvent
Request body: LiveScheduleEventNewModel
Response: LiveScheduleEventResultModel

Creates a new event in the channel's schedule. The channel ID in the body must match the route.

List Schedule Events

GET /liveChannel/{channelId}/liveScheduleEvent
Response: LiveCrudModelList<LiveScheduleEventModel>

Returns all schedule events for the specified live channel.

Get Schedule Event

GET /liveChannel/{channelId}/liveScheduleEvent/{scheduleEventId}
Response: LiveScheduleEventModel

Returns a specific schedule event from a live channel.

Update Schedule Event

PUT /liveChannel/{channelId}/liveScheduleEvent
Request body: LiveScheduleEventEditModel
Response: LiveScheduleEventModel

Updates an existing schedule event. The channel ID in the body must match the route.

Delete Schedule Event

DELETE /liveChannel/{channelId}/liveScheduleEvent/{scheduleEventId}
Response: LiveScheduleEventResultModel

Removes a schedule event from the channel's schedule.

Move Schedule Event

PUT /liveChannel/{channelId}/liveScheduleEvent/{scheduleEventId}/move
Request body: LiveScheduleEventMoveModel { previousScheduleEventId }
Response: LiveScheduleEventModel[]

Repositions a schedule event within the channel's schedule order.

Live Inputs

Get New Input Template

GET /liveInput/new
Response: LiveInputNewModel

Returns a pre-populated template for creating a new live input.

Create Input

POST /liveInput
Request body: LiveInputNewModel
Response: LiveInputModel

Creates a new live input and begins provisioning the underlying resource.

List All Inputs

GET /liveInput
Response: LiveInputModel[]

Returns all live inputs, excluding those with a Deleting status.

Get Input

GET /liveInput/{inputId}
Response: LiveInputModel

Returns a specific live input by its identifier.

Update Input

PUT /liveInput
Request body: LiveInputEditModel
Response: LiveInputModel

Updates an existing live input configuration.

Delete Input

DELETE /liveInput/{inputId}
Response: LiveResultModel<LiveInputModel>

Deletes a live input and its provisioned resources. Fails if channels or schedule events still reference the input.

Output Profiles

Get New Profile Template

GET /liveOutputProfile/new
Response: LiveOutputProfileModel

Returns a pre-populated template for creating a new output profile.

Create Profile

POST /liveOutputProfile
Request body: LiveOutputProfileModel
Response: LiveOutputProfileModel

Creates a new output encoding profile.

List All Profiles

GET /liveOutputProfile
Response: LiveOutputProfileModel[]

Returns all output profiles configured in the system.

Get Profile

GET /liveOutputProfile/{liveOutputProfileId}
Response: LiveOutputProfileModel

Returns a specific output profile.

Update Profile

PUT /liveOutputProfile
Request body: LiveOutputProfileModel
Response: LiveOutputProfileModel

Updates an existing output profile configuration.

Delete Profile

DELETE /liveOutputProfile/{liveOutputProfileId}
Response: LiveResultModel<LiveOutputProfileModel>

Deletes an output profile.

Output Profile Groups

Create Group

POST /liveOutputProfileGroup
Request body: LiveOutputProfileGroupModel
Response: LiveOutputProfileGroupModel

Creates a new group of output profiles with shared configuration.

List All Groups

GET /liveOutputProfileGroup
Response: LiveOutputProfileGroupModel[]

Returns all output profile groups.

Get Group

GET /liveOutputProfileGroup/{liveOutputProfileGroupId}
Response: LiveOutputProfileGroupModel

Returns a specific output profile group.

Update Group

PUT /liveOutputProfileGroup
Request body: LiveOutputProfileGroupModel
Response: LiveOutputProfileGroupModel

Updates an existing output profile group.

Delete Group

DELETE /liveOutputProfileGroup/{liveOutputProfileGroupId}
Response: IdModel

Deletes an output profile group.

Live Schedules

Content-based live schedules link content items to live channel broadcasting.

Save Schedule

POST /admin/liveSchedule
Request body: LiveScheduleEditModel

Creates or updates a live schedule for a content item.

Get Schedule

GET /admin/liveSchedule/content/{contentId}
Response: LiveScheduleModel

Returns the live schedule for a specific content item.

Start Schedule

POST /admin/liveSchedule/content/{contentId}/start

Starts the live schedule immediately, beginning live channel broadcasting.

Stop Schedule

POST /admin/liveSchedule/content/{contentId}/stop

Stops the live schedule immediately, halting live channel broadcasting.

Copy Schedule

POST /admin/liveSchedule/content/{contentId}/copy
Request body: LiveScheduleCopyModel { recurringWeeks, recurringDays, timeZoneOffsetSeconds, recurringEndDate }

Copies a content item and its live schedule using recurring criteria.

Delete Schedule

DELETE /admin/liveSchedule/content/{contentId}

Deletes the live schedule for a content item.

Live Operator (Broadcast Control)

The Live Operator API provides real-time broadcast session management including recording and segmentation.

Start Broadcast

POST /admin/liveOperator/start
Request body: CreateLiveOperatorStreamRequestModel
Response: LiveOperatorModel

Initiates a new live broadcast session with the provided configuration.

Cancel Broadcast

POST /admin/liveOperator/{liveOperatorId}/cancel

Cancels a broadcast session. No recorded content is saved.

Stop Broadcast

POST /admin/liveOperator/{liveOperatorId}/stop

Stops a broadcast session gracefully.

Recording Segments

EndpointMethodDescription
/admin/liveOperator/{liveOperatorId}/startSegmentPOSTStart a new recording segment
/admin/liveOperator/{liveOperatorId}/cancelSegmentPOSTCancel the current segment (discards content)
/admin/liveOperator/{liveOperatorId}/completeSegmentPOSTComplete and save the current segment
/admin/liveOperator/{liveOperatorId}/segmentsGETGet completed recording segments

List Operators

GET /admin/liveOperator
Response: LiveOperatorModel[]

Returns all live operator records.

Get Operator

GET /admin/liveOperator/{liveOperatorId}
Response: LiveOperatorModel

Returns a specific live operator by its identifier.

Common Error Responses

Status CodeDescription
400Bad Request — Missing or invalid parameters
401Unauthorized — Missing or invalid Bearer token
404Not Found — Resource not found or template generation failed