# OptiView Live REST API

OptiView Live provides a REST API to manage channels, receive events, create reports, and set up webhooks.

Alternatively, you can perform the most common actions directly from the OptiView Live dashboard. See [our getting started guide](https://docs-preview.optiview.dolby.com/pr-943/theolive/getting-started.md) for more information.

To get started with the API, see the [Authentication](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/authentication.md) guide.

The full API specification is also available as a [Swagger document](https://api.theo.live/v2/api-docs/swagger.json).

## Channels

## [📄️Get all channels](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channels.md)

[Get all channels](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channels.md)

## [📄️Create a new channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel.md)

[Create a new channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel.md)

## [📄️Get a channel by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel.md)

[Get a channel by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel.md)

## [📄️Update a channel by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-channel.md)

[Update a channel by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-channel.md)

## [📄️Delete a channel by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-channel.md)

[Delete a channel by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-channel.md)

## [📄️Get the DRM content protection configurations of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-drm-configs.md)

[Get the DRM content protection configurations of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-drm-configs.md)

## [📄️Start a channel (will start all connected engines and rtsp-pull ingests)](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/start-channel.md)

[Starts all connected engines and all connected rtsp-pull ingests of the channel.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/start-channel.md)

## [📄️Stop a channel (will stop all connected engines and rtsp-pull ingests)](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/stop-channel.md)

[Stops all connected engines and all connected rtsp-pull ingests of the channel. Running engines are stopped gracefully (playlists are closed so that viewers see the stream end, then the engine is torn down; \`stopping\` for typically 10–20 seconds). To skip the graceful shutdown use \`POST /channels/{id}/force-stop\`; engines that are already \`stopping\` are force stopped by this endpoint as well, so calling it twice also force stops the channel. Engines in \`error\` are always force stopped.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/stop-channel.md)

## [📄️Force stop a channel (will force stop all connected engines and rtsp-pull ingests)](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/force-stop-channel.md)

[Stops all connected engines and all connected rtsp-pull ingests of the channel immediately, skipping the graceful shutdown: the engines are torn down right away without closing their playlists first, so viewers may see playback fail instead of the stream ending cleanly. Works from any non-stopped state, including while engines are \`stopping\` after a regular stop. Engines report \`stopping\` until the teardown has completed (usually a few seconds), then \`stopped\`. Prefer \`POST /channels/{id}/stop\` unless the engines have to be gone immediately.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/force-stop-channel.md)

## [📄️Get ingests of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-ingests.md)

[Ingests are ordered alphabetically by name.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-ingests.md)

## [📄️Create an ingest for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-ingest.md)

[Create an ingest for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-ingest.md)

## [📄️Get engines of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-engines.md)

[Engines are ordered alphabetically by name.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-engines.md)

## [📄️Create an engine for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-engine.md)

[Create an engine for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-engine.md)

## [📄️Get distributions of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-distributions.md)

[Distributions are ordered alphabetically by name.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-distributions.md)

## [📄️Create a distribution for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-distribution.md)

[Create a distribution for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-distribution.md)

## [📄️Send instream metadata for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/send-channel-instream-metadata.md)

[Send instream metadata for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/send-channel-instream-metadata.md)

## [📄️Get engine runs of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-runs.md)

[Get engine runs of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-runs.md)

## [📄️Get transcoding minutes analytics for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-transcoding-minutes.md)

[Get transcoding minutes analytics for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-transcoding-minutes.md)

## [📄️Get viewing minutes analytics for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-viewing-minutes.md)

[Get viewing minutes analytics for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-viewing-minutes.md)

## [📄️Get bytes transferred analytics for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-bytes-transferred.md)

[Get bytes transferred analytics for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-bytes-transferred.md)

## [📄️Get translated minutes analytics for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-captions-translated-minutes.md)

[Only available when the Captions & Translations feature is enabled on organization level. The 'start' and 'end' dates are always interpreted as UTC; timezone and UTC offset options are not supported.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-captions-translated-minutes.md)

## [📄️Get captioned minutes analytics for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-captions-captioned-minutes.md)

[Only available when the Captions & Translations feature is enabled on organization level. The 'start' and 'end' dates are always interpreted as UTC; timezone and UTC offset options are not supported.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-captions-captioned-minutes.md)

## [📄️Get viewing minutes grouped by browser for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-viewing-minutes-browsers.md)

[Get viewing minutes grouped by browser for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-viewing-minutes-browsers.md)

## [📄️Get viewing minutes grouped by country for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-viewing-minutes-countries.md)

[Get viewing minutes grouped by country for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-viewing-minutes-countries.md)

## [📄️Get bytes transferred grouped by browser for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-bytes-transferred-browsers.md)

[Get bytes transferred grouped by browser for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-bytes-transferred-browsers.md)

## [📄️Get bytes transferred grouped by country for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-bytes-transferred-countries.md)

[Get bytes transferred grouped by country for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-bytes-transferred-countries.md)

## [📄️Get country insights for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-insights-countries.md)

[Data is only available for the last 30 days.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-insights-countries.md)

## [📄️Get browser and OS insights for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-insights-browsers-os.md)

[Data is only available for the last 30 days.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-insights-browsers-os.md)

## [📄️Get viewer count insights for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-insights-viewers.md)

[Data is only available for the last 30 days.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-insights-viewers.md)

## [📄️Create a custom endpoint on a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-custom-endpoint.md)

[Create a custom endpoint on a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-custom-endpoint.md)

## [📄️List all custom endpoints of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-custom-endpoints.md)

[List all custom endpoints of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-custom-endpoints.md)

## Ingests

## [📄️Get ingests of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-ingests.md)

[Ingests are ordered alphabetically by name.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-ingests.md)

## [📄️Create an ingest for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-ingest.md)

[Create an ingest for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-ingest.md)

## [📄️Get an ingest by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest.md)

[Get an ingest by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest.md)

## [📄️Update an ingest by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-ingest.md)

[Update an ingest by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-ingest.md)

## [📄️Delete an ingest by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-ingest.md)

[Delete an ingest by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-ingest.md)

## [📄️Get engines of an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-engines.md)

[Engines are ordered alphabetically by name.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-engines.md)

## [📄️Create an engine for an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-ingest-engine.md)

[Create an engine for an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-ingest-engine.md)

## [📄️Start an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/start-ingest.md)

[Currently only available for rtsp-pull ingests. Starts ingesting from the source; the ingest status becomes \`active\` and a new ingest run is recorded. Returns 400 \`not\_supported\` for other ingest types and 409 \`already\_active\` when the ingest is already active.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/start-ingest.md)

## [📄️Stop an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/stop-ingest.md)

[Currently only available for rtsp-pull ingests. Stops ingesting; the ingest status becomes \`stopped\` and the open ingest run is ended. Returns 400 \`not\_supported\` for other ingest types and 409 \`already\_stopped\` when the ingest is already stopped.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/stop-ingest.md)

## [📄️Get runs of an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-runs.md)

[Currently only available for rtsp-pull ingests: a run is recorded every time the ingest is started. Runs are ordered by start time (most recent first).](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-runs.md)

## [📄️Get the last run of an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-last-run.md)

[Currently only available for rtsp-pull ingests: a run is recorded every time the ingest is started.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-last-run.md)

## [📄️Get translated minutes analytics for an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-captions-translated-minutes.md)

[Only available when the Captions & Translations feature is enabled on organization level. The 'start' and 'end' dates are always interpreted as UTC; timezone and UTC offset options are not supported.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-captions-translated-minutes.md)

## [📄️Get captioned minutes analytics for an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-captions-captioned-minutes.md)

[Only available when the Captions & Translations feature is enabled on organization level. The 'start' and 'end' dates are always interpreted as UTC; timezone and UTC offset options are not supported.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-captions-captioned-minutes.md)

## Engines

## [📄️Get engines of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-engines.md)

[Engines are ordered alphabetically by name.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-engines.md)

## [📄️Create an engine for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-engine.md)

[Create an engine for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-engine.md)

## [📄️Get an engine by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-engine.md)

[Get an engine by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-engine.md)

## [📄️Update an engine by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-engine.md)

[Only \`name\` and \`priority\` can be updated while the engine is not stopped; updates to any other field are rejected with a 409 \`engine\_playing\` error.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-engine.md)

## [📄️Delete an engine by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-engine.md)

[Delete an engine by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-engine.md)

## [📄️Start an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/start-engine.md)

[Start an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/start-engine.md)

## [📄️Stop an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/stop-engine.md)

[Stops the engine gracefully: its playlists are closed so that viewers see the stream end, after which the engine is torn down. The engine reports \`stopping\` until the teardown has completed (typically 10–20 seconds), then \`stopped\`. To skip the graceful shutdown use \`POST /engines/{id}/force-stop\`; calling this endpoint again while the engine is \`stopping\` also force stops it. An engine in \`error\` is always force stopped. The engine can only be started again once it is \`stopped\`.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/stop-engine.md)

## [📄️Force stop an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/force-stop-engine.md)

[Stops the engine immediately, skipping the graceful shutdown: the engine is torn down right away without closing its playlists first, so viewers may see playback fail instead of the stream ending cleanly. Works from any non-stopped state, including while the engine is \`stopping\` after a regular stop. The engine reports \`stopping\` until the teardown has completed (usually a few seconds), then \`stopped\`, and can only be started again once it is \`stopped\`. Prefer \`POST /engines/{id}/stop\` unless the engine has to be gone immediately. Returns 409 \`already\_stopped\` for a stopped engine.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/force-stop-engine.md)

## [📄️Get the last run of an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-engine-last-run.md)

[Get the last run of an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-engine-last-run.md)

## [📄️Get runs of an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-engine-runs.md)

[Get runs of an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-engine-runs.md)

## Distributions

## [📄️Get distributions of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-distributions.md)

[Distributions are ordered alphabetically by name.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-distributions.md)

## [📄️Create a distribution for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-distribution.md)

[Create a distribution for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-channel-distribution.md)

## [📄️Get a distribution by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution.md)

[Get a distribution by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution.md)

## [📄️Update a distribution by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-distribution.md)

[Update a distribution by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-distribution.md)

## [📄️Delete a distribution by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-distribution.md)

[Delete a distribution by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-distribution.md)

## [📄️Get security keys of a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-security-keys.md)

[Get security keys of a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-security-keys.md)

## [📄️Add a security key to a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-distribution-security-key.md)

[Add a security key to a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-distribution-security-key.md)

## [📄️Delete all security keys of a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-all-distribution-security-keys.md)

[Delete all security keys of a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-all-distribution-security-keys.md)

## [📄️Get a specific security key](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-security-key.md)

[Get a specific security key](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-security-key.md)

## [📄️Delete a specific security key](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-distribution-security-key.md)

[Delete a specific security key](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-distribution-security-key.md)

## [📄️Get viewing minutes analytics for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-viewing-minutes.md)

[Get viewing minutes analytics for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-viewing-minutes.md)

## [📄️Get bytes transferred analytics for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-bytes-transferred.md)

[Get bytes transferred analytics for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-bytes-transferred.md)

## [📄️Get viewing minutes grouped by browser for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-viewing-minutes-browsers.md)

[Get viewing minutes grouped by browser for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-viewing-minutes-browsers.md)

## [📄️Get viewing minutes grouped by country for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-viewing-minutes-countries.md)

[Get viewing minutes grouped by country for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-viewing-minutes-countries.md)

## [📄️Get bytes transferred grouped by browser for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-bytes-transferred-browsers.md)

[Get bytes transferred grouped by browser for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-bytes-transferred-browsers.md)

## [📄️Get bytes transferred grouped by country for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-bytes-transferred-countries.md)

[Get bytes transferred grouped by country for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-bytes-transferred-countries.md)

## [📄️Get country insights for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-insights-countries.md)

[Data is only available for the last 30 days.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-insights-countries.md)

## [📄️Get browser and OS insights for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-insights-browsers-os.md)

[Data is only available for the last 30 days.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-insights-browsers-os.md)

## [📄️Get viewer count insights for a distribution](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-insights-viewers.md)

[Data is only available for the last 30 days.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-distribution-insights-viewers.md)

## Regions

## [📄️Get all regions available for your organization](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-regions.md)

[Get all regions available for your organization](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-regions.md)

## [📄️Get a region by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-region.md)

[Get a region by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-region.md)

## [📄️Get the SDI devices of an on-prem region](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-region-sdi-devices.md)

[Get the SDI devices of an on-prem region](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-region-sdi-devices.md)

## [📄️Get the NDI sources of an on-prem region](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-region-ndi-sources.md)

[Get the NDI sources of an on-prem region](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-region-ndi-sources.md)

## ABR Ladders

## [📄️Get all ABR ladders for your organization](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-abr-ladders.md)

[Get all ABR ladders for your organization](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-abr-ladders.md)

## [📄️Get the number of engines using each ABR ladder of your organization](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-abr-ladder-engine-counts.md)

[Get the number of engines using each ABR ladder of your organization](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-abr-ladder-engine-counts.md)

## [📄️Get the engines using an ABR ladder](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-abr-ladder-engines.md)

[Get the engines using an ABR ladder](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-abr-ladder-engines.md)

## Webhooks

## [📄️Get all webhooks](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-webhooks.md)

[Get all webhooks](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-webhooks.md)

## [📄️Create a new webhook](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-webhook.md)

[Create a new webhook](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-webhook.md)

## [📄️Get a webhook by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-webhook.md)

[Get a webhook by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-webhook.md)

## [📄️Update a webhook by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-webhook.md)

[Update a webhook by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-webhook.md)

## [📄️Delete a webhook by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-webhook.md)

[Delete a webhook by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-webhook.md)

## [📄️Get a webhook secret](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-webhook-secret.md)

[Get a webhook secret](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-webhook-secret.md)

## [📄️Get webhook logs](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-webhook-logs.md)

[Get webhook logs](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-webhook-logs.md)

## Schedulers

## [📄️List all schedulers](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-schedulers.md)

[List all schedulers](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-schedulers.md)

## [📄️Create a scheduler](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-scheduler.md)

[Create a scheduler](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-scheduler.md)

## [📄️Get a scheduler by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-scheduler.md)

[Get a scheduler by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-scheduler.md)

## [📄️Update a scheduler by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-scheduler.md)

[Update a scheduler by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-scheduler.md)

## [📄️Delete a scheduler by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-scheduler.md)

[Delete a scheduler by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-scheduler.md)

## Custom Endpoints

## [📄️Create a custom endpoint on a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-custom-endpoint.md)

[Create a custom endpoint on a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-custom-endpoint.md)

## [📄️List all custom endpoints of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-custom-endpoints.md)

[List all custom endpoints of a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-custom-endpoints.md)

## [📄️Get a custom endpoint by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-custom-endpoint.md)

[Get a custom endpoint by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-custom-endpoint.md)

## [📄️Update a custom endpoint](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-custom-endpoint.md)

[Update a custom endpoint](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-custom-endpoint.md)

## [📄️Delete a custom endpoint](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-custom-endpoint.md)

[Delete a custom endpoint](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-custom-endpoint.md)

## Monitoring

## [📄️Get monitoring data for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-monitoring.md)

[Returns monitoring data for a specific channel including status of ingests, engines, and distributions.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-monitoring.md)

## [📄️Get detailed monitoring data for an ingest](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-monitoring.md)

[Returns monitoring data for a specific ingest including time-series metrics like packet loss, RTT, and bitrate.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-ingest-monitoring.md)

## [📄️Get detailed monitoring data for an engine](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-engine-monitoring.md)

[Returns monitoring data for a specific engine including rendition metrics.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-engine-monitoring.md)

## [📄️Get detailed ingest monitoring data for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-ingests-monitoring.md)

[Returns channel metadata along with detailed monitoring data for all ingests belonging to the channel.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-ingests-monitoring.md)

## [📄️Get detailed engine monitoring data for a channel](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-engines-monitoring.md)

[Returns channel metadata along with detailed monitoring data for all engines belonging to the channel.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-channel-engines-monitoring.md)

## Enhancements

## [📄️Get all speech dictionaries](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-dictionaries.md)

[A speech dictionary is a flat list of terms (names, proper nouns, acronyms, specialized terminology) that helps the speech recognition correctly caption the source audio of a speech enhancement. It does not translate terms: the source audio is first captioned in the source language (aided by the dictionary) and then translated into the target languages. Connect a dictionary to an ingest via the \`dictionary\` field of the speech enhancement entry; the dictionary \`language\` must match that enhancement's \`sourceLanguage\`.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-dictionaries.md)

## [📄️Create a new speech dictionary](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-speech-dictionary.md)

[A speech dictionary is a flat list of terms (names, proper nouns, acronyms, specialized terminology) that helps the speech recognition correctly caption the source audio of a speech enhancement. It does not translate terms: the source audio is first captioned in the source language (aided by the dictionary) and then translated into the target languages. Connect a dictionary to an ingest via the \`dictionary\` field of the speech enhancement entry; the dictionary \`language\` must match that enhancement's \`sourceLanguage\`. Terms are cleaned up automatically (whitespace normalized, empty and duplicate entries dropped); terms that cannot be fixed automatically (forbidden characters ';' or '/', more than 6 words) are rejected with \`invalid\_value\`.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-speech-dictionary.md)

## [📄️Get a speech dictionary by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-dictionary.md)

[Get a speech dictionary by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-dictionary.md)

## [📄️Update a speech dictionary by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-speech-dictionary.md)

[The \`terms\` list is replaced as a whole. Terms are cleaned up automatically (whitespace normalized, empty and duplicate entries dropped); terms that cannot be fixed automatically (forbidden characters ';' or '/', more than 6 words) are rejected with \`invalid\_value\`.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-speech-dictionary.md)

## [📄️Delete a speech dictionary by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-speech-dictionary.md)

[A dictionary cannot be deleted while it is connected to an ingest that has an engine which is not stopped (409 \`speech\_dictionary\_in\_use\`). Once deleted, the dictionary is automatically disconnected from all ingests that referenced it.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-speech-dictionary.md)

## [📄️Get all postprocessing dictionaries](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-postprocessing-dictionaries.md)

[A postprocessing dictionary is a list of find/replace rules applied to the source-language transcript of a speech enhancement after speech recognition and before translation: it reliably corrects spellings, standardizes formatting, removes filler words or censors terms, and the corrected text carries over into every translated text track. Unlike a speech dictionary (a hint to the speech recognition) the rules are always applied. Connect a postprocessing dictionary to an ingest via the \`postprocessingDictionary\` field of the speech enhancement entry; the dictionary \`language\` must match that enhancement's \`sourceLanguage\`.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-postprocessing-dictionaries.md)

## [📄️Create a new postprocessing dictionary](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-speech-postprocessing-dictionary.md)

[A postprocessing dictionary is a list of find/replace rules applied to the source-language transcript of a speech enhancement after speech recognition and before translation: it reliably corrects spellings, standardizes formatting, removes filler words or censors terms, and the corrected text carries over into every translated text track. Unlike a speech dictionary (a hint to the speech recognition) the rules are always applied. Connect a postprocessing dictionary to an ingest via the \`postprocessingDictionary\` field of the speech enhancement entry; the dictionary \`language\` must match that enhancement's \`sourceLanguage\`. Each entry has the format 'replacement|pattern,pattern' (an empty replacement removes the matched word). Entries are cleaned up automatically (whitespace normalized, empty and duplicate entries dropped); entries without a pattern, with spaces in a pattern, or rejected by the captioning provider (e.g. an invalid regular expression) fail with \`invalid\_value\`.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/create-speech-postprocessing-dictionary.md)

## [📄️Get a postprocessing dictionary by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-postprocessing-dictionary.md)

[Get a postprocessing dictionary by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-postprocessing-dictionary.md)

## [📄️Update a postprocessing dictionary by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-speech-postprocessing-dictionary.md)

[The \`terms\` list is replaced as a whole. Each entry has the format 'replacement|pattern,pattern' (an empty replacement removes the matched word). Entries are cleaned up automatically (whitespace normalized, empty and duplicate entries dropped); entries without a pattern, with spaces in a pattern, or rejected by the captioning provider (e.g. an invalid regular expression) fail with \`invalid\_value\`.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-speech-postprocessing-dictionary.md)

## [📄️Delete a postprocessing dictionary by ID](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-speech-postprocessing-dictionary.md)

[A postprocessing dictionary cannot be deleted while it is connected to an ingest that has an engine which is not stopped (409 \`speech\_postprocessing\_dictionary\_in\_use\`). Once deleted, the dictionary is automatically disconnected from all ingests that referenced it.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/delete-speech-postprocessing-dictionary.md)

## [📄️Get supported source languages](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-supported-source-languages.md)

[Languages the speech recognition can transcribe, i.e. the valid values for the \`sourceLanguage\` field of a speech enhancement entry (the language spoken in the stream).](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-supported-source-languages.md)

## [📄️Get supported target languages](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-supported-target-languages.md)

[Languages the source captions can be translated into, i.e. the valid values for the \`targetTextTracks\` field of a speech enhancement entry.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-supported-target-languages.md)

## [📄️Get translated minutes analytics](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-translated-minutes.md)

[Only available when the Captions & Translations feature is enabled on organization level. The 'start' and 'end' dates are always interpreted as UTC; timezone and UTC offset options are not supported.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-translated-minutes.md)

## [📄️Get captioned minutes analytics](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-captioned-minutes.md)

[Only available when the Captions & Translations feature is enabled on organization level. The 'start' and 'end' dates are always interpreted as UTC; timezone and UTC offset options are not supported.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-speech-captioned-minutes.md)

## Maintenance windows

## [📄️Get the maintenance windows of the organization](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-maintenance-windows.md)

[Maintenance windows are recurring time slots (in UTC) during which the organization allows THEO to perform maintenance on its long-running engines. Maintenance means moving an engine to fresh infrastructure: the engine is restarted with the same configuration, the stream is briefly interrupted (viewers see a clean end of stream) and the contributing encoder reconnects. The same applies to push and pull ingests on the shared ingest infrastructure: when the infrastructure carrying such an ingest is retired, the ingest is moved inside a window (the encoder reconnects to the same ingest URL, or the source is pulled again). Maintenance is only performed on engines and ingests that need it, one per channel at a time, and always inside a window. A window recurs every week, or only in selected weeks of the month (e.g. the second tuesday of the month); together the windows must offer a maintenance opportunity at least once a month. There is no default: when no windows are configured, THEO has no maintenance opportunity for the organization and maintenance that is needed stays pending. Engines and ingests report their pending or ongoing maintenance in their \`maintenance\` field, and the \`engine.maintenance.\*\` / \`ingest.maintenance.\*\` webhook events announce every step. Configuring windows does not schedule any restarts by itself.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/get-maintenance-windows.md)

## [📄️Set the maintenance windows of the organization](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-maintenance-windows.md)

[Maintenance windows are recurring time slots (in UTC) during which the organization allows THEO to perform maintenance on its long-running engines. Maintenance means moving an engine to fresh infrastructure: the engine is restarted with the same configuration, the stream is briefly interrupted (viewers see a clean end of stream) and the contributing encoder reconnects. The same applies to push and pull ingests on the shared ingest infrastructure: when the infrastructure carrying such an ingest is retired, the ingest is moved inside a window (the encoder reconnects to the same ingest URL, or the source is pulled again). Maintenance is only performed on engines and ingests that need it, one per channel at a time, and always inside a window. A window recurs every week, or only in selected weeks of the month (e.g. the second tuesday of the month); together the windows must offer a maintenance opportunity at least once a month. There is no default: when no windows are configured, THEO has no maintenance opportunity for the organization and maintenance that is needed stays pending. Engines and ingests report their pending or ongoing maintenance in their \`maintenance\` field, and the \`engine.maintenance.\*\` / \`ingest.maintenance.\*\` webhook events announce every step. Configuring windows does not schedule any restarts by itself. The list of windows is replaced as a whole; set an empty list to remove all windows. Windows may not overlap.](https://docs-preview.optiview.dolby.com/pr-943/theolive/api/update-maintenance-windows.md)
