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 Prefix | Description |
|---|---|
/liveChannel | Live channel CRUD, lifecycle controls, clipping, and schedule events |
/liveInput | Live input source management |
/liveOutputProfile | Output encoding profile configuration |
/liveOutputProfileGroup | Output profile group management |
/admin/liveSchedule | Content-based live schedule management |
/admin/liveOperator | Live 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
| Endpoint | Method | Description |
|---|---|---|
/liveChannel/{channelId}/start | POST | Start the live channel stream |
/liveChannel/{channelId}/pause | POST | Pause the live channel stream |
/liveChannel/{channelId}/resume | POST | Resume a paused live channel |
/liveChannel/{channelId}/stop | POST | Stop the live channel stream |
/liveChannel/{channelId}/nextEvent | POST | Advance to the next scheduled event |
Channel Refresh
| Endpoint | Method | Description |
|---|---|---|
/liveChannel/refresh | POST | Refresh all live channels |
/liveChannel/{channelId}/refresh/{utcDateTimeTicks} | POST | Refresh 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
| Endpoint | Method | Description |
|---|---|---|
/admin/liveOperator/{liveOperatorId}/startSegment | POST | Start a new recording segment |
/admin/liveOperator/{liveOperatorId}/cancelSegment | POST | Cancel the current segment (discards content) |
/admin/liveOperator/{liveOperatorId}/completeSegment | POST | Complete and save the current segment |
/admin/liveOperator/{liveOperatorId}/segments | GET | Get 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 Code | Description |
|---|---|
| 400 | Bad Request — Missing or invalid parameters |
| 401 | Unauthorized — Missing or invalid Bearer token |
| 404 | Not Found — Resource not found or template generation failed |
