Dolby OptiView Live
THEOlive API v2 - live streaming channel orchestration: channels, ingests, engines, distributions, ABR ladders, schedulers, custom endpoints, webhooks and per-channel analytics. 57 paths / 82 operations over HTTP Basic auth.
THEOlive API v2 - live streaming channel orchestration: channels, ingests, engines, distributions, ABR ladders, schedulers, custom endpoints, webhooks and per-channel analytics. 57 paths / 82 operations over HTTP Basic auth.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/optiview-live"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.0.0
info:
title: THEOlive API
version: v2
servers:
- url: https://api.theo.live/v2
description: V2 API
- url: https://api.theo.live
description: Base (for /v1 endpoints)
security:
- BasicAuth: []
components:
securitySchemes:
BasicAuth:
type: http
scheme: basic
schemas:
PaginatedChannelResult:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Channel'
description: List of channels
pagination:
type: object
properties:
hasMore:
type: boolean
description: Whether more results are available
cursor:
type: string
description: Cursor for the next page of results
required:
- hasMore
- cursor
description: Pagination info
required:
- data
- pagination
Channel:
type: object
properties:
id:
type: string
description: Unique identifier of the channel
createdAt:
type: string
description: Creation timestamp
name:
type: string
description: Name of the channel
status:
type: string
enum:
- ready
- stopped
- deploying
- starting
- waiting
- ingesting
- playing
- stopping
- error
- deleting
- deleted
description: Current status of the channel
externalId:
type: string
description: Deprecated, use 'externalIds' instead. For now, this returns the first entry of the 'externalIds' list.
deprecated: true
externalIds:
type: array
items:
type: string
description: External identifiers of the channel
timeout:
type: number
description: Timeout in seconds
ads:
type: object
properties:
enabled:
type: boolean
description: Whether OptiView ads are enabled on the channel
settings:
type: object
properties:
assetKey:
type: string
description: Deprecated. Use customAssetKey instead.
deprecated: true
layout:
type: string
enum:
- SINGLE
- DOUBLE
- LSHAPE_AD
- LSHAPE_CONTENT
deprecated: true
enableBumperAds:
type: boolean
deprecated: true
podDuration:
type: number
deprecated: true
customAdTagParameters:
type: object
additionalProperties:
type: string
deprecated: true
description: Deprecated. Only returned for channels still using the old (V1) ads API underneath.
deprecated: true
required:
- enabled
description: OptiView Ads configuration
dvr:
type: object
properties:
enabled:
type: boolean
description: Whether DVR is enabled
windowInSeconds:
type: number
minimum: 60
maximum: 86400
description: DVR window in seconds (60-86400)
required:
- enabled
description: DVR configuration
nielsen:
type: object
properties:
enabled:
type: boolean
description: Whether Nielsen is enabled
required:
- enabled
description: Nielsen configuration
instreamMetadata:
type: object
properties:
enabled:
type: boolean
description: Whether instream metadata is enabled. Supported metadata is h264 registered or unregistered SEI
metadata
uuids:
type: array
items:
type: string
format: uuid
description: Array of instream metadata SEI UUIDs
required:
- enabled
description: Instream metadata configuration
perpetual:
type: boolean
description: Whether this channel is 24/7 (never times out, excluded from transcoding analytics)
organizationId:
type: string
description: Organization ID
required:
- id
- createdAt
- name
- status
- timeout
- perpetual
- organizationId
ChannelCreatedObjectResult:
type: object
properties:
data:
$ref: '#/components/schemas/ChannelCreated'
required:
- data
ChannelCreated:
allOf:
- $ref: '#/components/schemas/Channel'
- type: object
properties:
ingests:
type: array
items:
$ref: '#/components/schemas/Ingest'
description: Connected ingests
engines:
type: array
items:
type: object
properties:
id:
type: string
description: Unique identifier of the engine
name:
type: string
description: Name of the engine
createdAt:
type: string
description: Creation timestamp
updatedAt:
type: string
description: Last update timestamp
quality:
type: object
properties:
abrLadderId:
type: string
description: ABR ladder ID
required:
- abrLadderId
description: Quality configuration
overlays:
type: array
items:
type: object
properties:
url:
type: string
description: URL of the overlay image
position:
type: object
properties:
top:
type: integer
minimum: 0
description: Pixels from top
bottom:
type: integer
minimum: 0
description: Pixels from bottom (ignored if top is present)
left:
type: integer
minimum: 0
description: Pixels from left
right:
type: integer
minimum: 0
description: Pixels from right (ignored if left is present)
description: Overlay position
size:
type: object
properties:
width:
type: integer
minimum: 0
description: Width in pixels
height:
type: integer
minimum: 0
description: Height in pixels
description: Overlay size
opacity:
type: number
minimum: 0
maximum: 1
description: Overlay opacity (`0`=fully transparent, `1`=fully opaque)
required:
- url
description: Image overlay configuration
drm:
type: boolean
description: Whether DRM is enabled
drmProvider:
type: string
enum:
- ezdrm
- drmtoday
description: DRM provider used by this engine
priority:
type: number
description: Engine priority
status:
type: string
enum:
- stopped
- deploying
- starting
- waiting
- ingesting
- playing
- stopping
- error
- deleting
- deleted
description: Current status of the engine
daiAssetKey:
type: string
nullable: true
description: DAI asset key
outputs:
type: object
properties:
hesp:
type: boolean
default: true
description: Enable HESP output. Enabled by default.
hls:
type: boolean
default: true
description: Enable HLS output. Enabled by default.
hlsMpegTs:
type: boolean
default: false
description: Enable HLS MPEG-TS output. Only available when enabled for your organization.
llHls:
type: boolean
default: false
description: Enable Low-Latency HLS output. Enabling this also enables HLS output. Disabled by default.
description: Output format configuration
vision:
type: object
nullable: true
properties:
toneLut:
type: object
nullable: true
properties:
saturationBoost:
type: string
nullable: true
enum:
- high
- low
- null
description: Saturation boost level
strength:
type: string
nullable: true
enum:
- low
- medium
- high
- null
description: Tone mapping strength
additionalProperties: false
description: Tone mapping LUT configuration
masteringDisplay:
type: object
nullable: true
properties:
primaries:
type: object
nullable: true
properties:
type:
type: string
nullable: true
enum:
- rec2020
- p3d65
- rec709
- custom
- null
description: Color primaries preset
red:
type: object
nullable: true
properties:
x:
type: number
description: Chromaticity x coordinate
y:
type: number
description: Chromaticity y coordinate
required:
- x
- y
additionalProperties: false
description: Custom red primary coordinates (required when type is `custom`)
green:
type: object
nullable: true
properties:
x:
type: number
description: Chromaticity x coordinate
y:
type: number
description: Chromaticity y coordinate
required:
- x
- y
additionalProperties: false
description: Custom green primary coordinates (required when type is `custom`)
blue:
type: object
nullable: true
properties:
x:
type: number
description: Chromaticity x coordinate
y:
type: number
description: Chromaticity y coordinate
required:
- x
- y
additionalProperties: false
description: Custom blue primary coordinates (required when type is `custom`)
additionalProperties: false
description: Mastering display color primaries
whitePoint:
type: object
nullable: true
properties:
type:
type: string
nullable: true
enum:
- d65
- d60
- dci
- custom
- null
description: White point preset
x:
type: number
nullable: true
description: Custom white point x coordinate (required when type is `custom`)
y:
type: number
nullable: true
description: Custom white point y coordinate (required when type is `custom`)
additionalProperties: false
description: Mastering display white point
maxDisplayMasteringLuminance:
type: number
nullable: true
minimum: 0
maximum: 10000
description: Maximum display mastering luminance in nits (0-10000)
minDisplayMasteringLuminance:
type: number
nullable: true
minimum: 0
description: Minimum display mastering luminance in nits
additionalProperties: false
description: Mastering display configuration
contentLightLevels:
type: object
nullable: true
properties:
cllMode:
type: string
nullable: true
enum:
- auto
- expert
- null
description: Content light level mode. `expert` requires maxCll and maxFall (nits)
maxCll:
type: number
nullable: true
minimum: 0
description: Maximum content light level in nits (required when cllMode is `expert`)
maxFall:
type: number
nullable: true
minimum: 0
description: Maximum frame-average light level in nits (required when cllMode is `expert`)
additionalProperties: false
description: Content light level configuration
globalLook:
type: object
nullable: true
properties:
l8Mode:
type: string
nullable: true
enum:
- 'off'
- quickControls
- null
description: L8 global look mode
l8ContrastBoost:
type: string
nullable: true
enum:
- 'off'
- low
- mid
- high
- null
description: L8 contrast boost (required when l8Mode is `quickControls`)
l8MidBoost:
type: string
nullable: true
enum:
- 'off'
- low
- mid
- high
- null
description: L8 mid boost (required when l8Mode is `quickControls`)
l8SaturationBoost:
type: string
nullable: true
enum:
- 'off'
- low
- mid
- high
- null
description: L8 saturation boost (required when l8Mode is `quickControls`)
additionalProperties: false
description: Global look (L8) configuration
contentType:
type: object
nullable: true
properties:
l11ContentType:
type: string
nullable: true
enum:
- default
- cinema
- game
- sport
- ugc
- null
description: L11 content type
l11WhitePointK:
type: number
nullable: true
description: L11 white point in Kelvin, snapped to the 16 RPU steps
additionalProperties: false
description: Content type (L11) configuration
additionalProperties: false
description: Vision configuration
atmos:
type: object
nullable: true
properties:
dialnorm:
type: integer
minimum: -31
maximum: -1
description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31.
required:
- dialnorm
additionalProperties: false
description: Dolby Atmos configuration
required:
- id
- name
- createdAt
- updatedAt
- quality
- overlays
- drm
- priority
- status
- outputs
description: Connected engines
distributions:
type: array
items:
$ref: '#/components/schemas/Distribution'
description: Connected distributions
required:
- ingests
- engines
- distributions
description: Created channel with connected resources
Ingest:
type: object
properties:
id:
type: string
description: Unique identifier of the ingest
name:
type: string
description: Name of the ingest
createdAt:
type: string
description: Creation timestamp
type:
type: string
enum:
- rtmp-push
- rtmp-pull
- srt-pull
- srt-push
- sdi-pull
- rtsp-pull
- ndi-pull
description: Ingest type
url:
type: string
description: Ingest URL
streamKey:
type: string
description: Stream key for RTMP push ingests
tracks:
type: object
properties:
audio:
type: array
items:
type: object
properties:
pid:
type: number
description: Audio track PID (mandatory for multi-audio)
language:
type: string
description: Audio track language code
label:
type: string
description: Audio track label
required:
- language
- label
description: Audio track configuration
description: Audio track configuration
captions:
type: array
items:
type: object
properties:
channel:
type: number
description: Caption channel number
language:
type: string
description: Caption language code
label:
type: string
description: Caption label
required:
- channel
- language
description: Caption configuration
sdi:
$ref: '#/components/schemas/IngestSdi'
ndi:
$ref: '#/components/schemas/IngestNdi'
required:
- id
- name
- createdAt
- type
- url
- tracks
- captions
IngestSdi:
type: object
properties:
persistentId:
type: string
description: 'Persistent ID of the SDI capture card, identifying it across reboots. Required for sdi-pull ingests:
it must match an available SDI device of the region (see `/regions/{regionId}/sdi`) that is not connected to another
ingest'
audioConnection:
type: string
enum:
- auto
- sdi
- hdmi
- optical-sdi
- component
- composite
- svideo
description: Audio connection type
videoConnection:
type: string
enum:
- auto
- sdi
- hdmi
- optical-sdi
- component
- composite
- svideo
description: Video connection type
videoMode:
type: string
enum:
- auto
- ntsc
- ntsc2398
- pal
- ntsc-p
- pal-p
- 1080p2398
- 1080p24
- 1080p25
- 1080p2997
- 1080p30
- 1080i50
- 1080i5994
- 1080i60
- 1080p50
- 1080p5994
- 1080p60
- 720p50
- 720p5994
- 720p60
- 1556p2398
- 1556p24
- 1556p25
- 2kdcip2398
- 2kdcip24
- 2kdcip25
- 2kdcip2997
- 2kdcip30
- 2kdcip50
- 2kdcip5994
- 2kdcip60
- 2160p2398
- 2160p24
- 2160p25
- 2160p2997
- 2160p30
- 2160p50
- 2160p5994
- 2160p60
- ntsc-widescreen
- ntsc2398-widescreen
- pal-widescreen
- ntsc-p-widescreen
- pal-p-widescreen
- 4kdcip2398
- 4kdcip24
- 4kdcip25
- 4kdcip2997
- 4kdcip30
- 4kdcip50
- 4kdcip5994
- 4kdcip60
- 8kp2398
- 8kp24
- 8kp25
- 8kp2997
- 8kp30
- 8kp50
- 8kp5994
- 8kp60
- 8kdcip2398
- 8kdcip24
- 8kdcip25
- 8kdcip2997
- 8kdcip30
- 8kdcip50
- 8kdcip5994
- 8kdcip60
description: Video mode
profile:
type: string
enum:
- default
- one-sub-device-full
- one-sub-device-half
- two-sub-devices-full
- two-sub-devices-half
- four-sub-devices-half
description: SDI profile
videoFormat:
type: string
enum:
- auto
- 8bit-yuv
- 10bit-yuv
- 8bit-argb
- 8bit-bgra
- 10bit-rgb
description: Video format
additionalProperties: false
description: SDI capture card configuration (only for sdi-pull ingests)
IngestNdi:
type: object
properties:
id:
type: string
description: 'ID of the NDI source. Required for ndi-pull ingests: it must match a non-stale NDI source of the region
(see `/regions/{regionId}/ndi`) that is not connected to another ingest'
required:
- id
additionalProperties: false
description: NDI source configuration (only for ndi-pull ingests)
Distribution:
type: object
properties:
id:
type: string
description: Unique identifier of the distribution
createdAt:
type: string
description: Creation timestamp
name:
type: string
description: Name of the distribution
externalId:
type: string
description: External identifier for the distribution
enabled:
type: boolean
description: Whether the distribution is enabled
targetLatency:
type: number
description: 'Deprecated: use latencies instead.'
latencies:
type: object
properties:
hesp:
type: number
nullable: true
minimum: 1
maximum: 30
description: 'HESP latency in seconds (1-30, default: 2)'
hls:
type: number
nullable: true
minimum: 6
maximum: 30
description: 'HLS latency in seconds (6-30, default: 10)'
description: Latency configuration per output protocol
security:
type: object
properties:
geoBlocking:
type: object
properties:
enabled:
type: boolean
description: Whether geo-blocking is enabled
mode:
type: string
enum:
- allow
- deny
description: Geo-blocking mode
countries:
type: array
items:
type: string
description: List of country codes
required:
- enabled
- mode
- countries
description: Geo-blocking configuration
ipBlocking:
type: object
properties:
enabled:
type: boolean
description: Whether IP blocking is enabled
mode:
type: string
enum:
- allow
- deny
description: IP blocking mode
cidrs:
type: array
items:
type: string
description: List of CIDR ranges
required:
- enabled
- mode
- cidrs
description: IP blocking configuration
refererBlocking:
type: object
properties:
enabled:
type: boolean
description: Whether referer blocking is enabled
allowedDomains:
type: array
items:
type: string
description: List of allowed domains
allowNativeApps:
type: boolean
description: Whether native apps are allowed
required:
- enabled
- allowedDomains
- allowNativeApps
description: Referer blocking configuration
rewriteSegmentUrls:
type: boolean
description: When enabled, a short-lived token is added to the segment URLs, derived from the token that was
passed. This only works when JWT security is enabled on the same distribution.
keys:
type: array
items:
type: object
properties:
id:
type: string
description: Security key ID
name:
type: string
description: Security key name
required:
- id
description: Security keys
required:
- geoBlocking
- ipBlocking
- keys
description: Security configuration
endpoints:
type: object
properties:
engineIds:
type: array
items:
type: string
description: Connected engine IDs
required:
- engineIds
description: Endpoint configuration
webRtc:
type: object
properties:
priority:
type: number
description: WebRTC priority
src:
type: object
properties:
name:
type: string
description: WebRTC source name
accountId:
type: string
description: WebRTC account ID
apiUrl:
type: string
description: WebRTC API URL
required:
- name
- accountId
- apiUrl
description: WebRTC source configuration
required:
- priority
- src
description: WebRTC configuration
maxBitrate:
type: number
description: Maximum bitrate limit in bps
outputs:
type: object
properties:
hesp:
type: boolean
default: true
description: Enable HESP output. Enabled by default.
hls:
type: boolean
default: true
description: Enable HLS output. Enabled by default.
hlsMpegTs:
type: boolean
default: false
description: Enable HLS MPEG-TS output. Disabled by default.
description: Output format configuration
dvr:
type: object
properties:
enabled:
type: boolean
description: Whether DVR is enabled on the distribution
description: DVR configuration
overrides:
type: array
# --- truncated at 32 KB (323 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dolby/refs/heads/main/openapi/dolby-optiview-live-openapi.yml