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 items: type: object properties: deviceType: type: string nullable: true enum: - tv - mobile - desktop - other - null description: Target device type sdkType: type: string nullable: true enum: - native - web - null description: Target SDK type osName: type: string nullable: true enum: - apple - android - windows - roku - other - null description: Target OS name profileId: type: string nullable: true description: Target profile ID targets: type: array items: type: object properties: distributionId: type: string description: Target distribution ID weight: type: number minimum: 0 maximum: 100 description: Weight (0-100) required: - distributionId - weight description: Override target distributions with weights required: - targets description: Distribution overrides customEndpoints: type: array items: type: object properties: customEndpointId: type: string description: ID of the connected custom endpoint weight: type: number description: Weight (0-100) required: - customEndpointId - weight description: Connected custom endpoints with weights ads: type: object properties: dai: type: object properties: weight: type: integer minimum: 0 maximum: 100 description: Weight for DAI endpoints (0-100) priority: type: integer description: Priority for DAI endpoints (any integer, lower = higher priority) required: - weight - priority additionalProperties: false description: DAI endpoint settings additionalProperties: false description: Ads configuration for the distribution playerSettings: type: object properties: hespCooldown: type: number minimum: 0 maximum: 300 description: Cooldown period in seconds (0-300) before the player retries HESP playback after falling back to another protocol. Defaults to 120 seconds when not set. additionalProperties: false description: Player settings applied to the player configuration in the discovery response required: - id - createdAt - name - enabled - latencies - security - endpoints - dvr CreateChannelBody: type: object properties: name: type: string description: Name of the channel externalId: type: string description: Deprecated, use 'externalIds' instead. Shorthand for a single-entry 'externalIds'. For now, responses will keep returning 'externalId' with the first entry of 'externalIds'. deprecated: true externalIds: type: array items: type: string minLength: 1 minItems: 1 description: External identifiers for the channel. Each must be unique across all channels of the organization. Mutually exclusive with externalId. timeout: type: number minimum: 0 default: 3600 description: Timeout in seconds. To never stop, specify 0 ads: type: object properties: enabled: type: boolean description: Whether OptiView ads are enabled on the channel customAssetKey: type: string description: DAI asset key, only possible when Google is linked to your ads account timebase: type: string enum: - wallclock - pts description: Timebase for ad insertion. Defaults to "wallclock" 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. V1 ads settings. 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 ingests: type: array items: allOf: - $ref: '#/components/schemas/CreateIngestBody' - type: object properties: engines: type: array items: type: object properties: name: type: string description: Name of the engine region: type: string description: Region ID to deploy the engine in priority: type: number minimum: -100 maximum: 100 description: Engine priority (-100 to 100). Lower numbers mean higher priority drm: type: boolean description: Enable DRM. Only possible when enabled for your organization. drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider to use. Only possible when your organization has access to the provider. Defaults to the organization default provider. quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration daiAssetKey: type: string nullable: true description: DAI asset key 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 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 restream: type: array items: $ref: '#/components/schemas/Restream' description: Restream destinations. Only available when the engine runs in an on-prem region 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. Only available when enabled for your organization. Pass `null` to disable. atmos: type: object nullable: true properties: dialnorm: type: integer nullable: true minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. Pass `null` to unset it. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration. Only available when the connected ABR ladder has Dolby Atmos audio configured. Pass `null` to disable. required: - name - region - quality additionalProperties: false description: Engines to create for this ingest additionalProperties: false description: Ingests to create for the channel distributions: type: array items: type: object properties: 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.hesp instead. If set, will be applied as latencies.hesp.' 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 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 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. Matched exactly against the referer host including port (e.g. example.com). `localhost` with an optional port (e.g. localhost:3000) is also allowed. allowNativeApps: type: boolean description: Whether native apps are allowed 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: name: type: string description: Name of the security key key: type: string description: Security key value required: - key maxItems: 2 description: Security keys (max 2, create only) description: Security configuration webRtc: type: object nullable: true 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 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 maxBitrate: type: number nullable: true description: Maximum bitrate limit in bps dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled on the distribution description: DVR configuration overrides: type: array items: type: object properties: deviceType: type: string nullable: true enum: - tv - mobile - desktop - other - null description: Target device type sdkType: type: string nullable: true enum: - native - web - null description: Target SDK type osName: type: string nullable: true enum: - apple - android - windows - roku - other - null description: Target OS name profileId: type: string nullable: true description: Target profile ID targets: type: array items: type: object properties: distributionId: type: string description: Target distribution ID weight: type: number minimum: 0 maximum: 100 description: Weight (0-100) required: - distributionId - weight description: Override target distributions with weights required: - targets description: Distribution overrides for device targeting customEndpoints: type: array items: type: object properties: customEndpointId: type: string description: ID of the custom endpoint to connect weight: type: integer minimum: 0 maximum: 100 default: 100 description: Weight (0-100, default 100) required: - customEndpointId description: Custom endpoints to connect to this distribution ads: type: object nullable: true properties: dai: type: object properties: weight: type: integer minimum: 0 maximum: 100 description: Weight for DAI endpoints (0-100) priority: type: integer description: Priority for DAI endpoints (any integer, lower = higher priority) required: - weight - priority additionalProperties: false description: DAI endpoint settings additionalProperties: false description: Ads configuration for the distribution playerSettings: type: object nullable: true properties: hespCooldown: type: number minimum: 0 maximum: 300 description: Cooldown period in seconds (0-300) before the player retries HESP playback after falling back to another protocol. Defaults to 120 seconds when not set. additionalProperties: false description: Player settings applied to the player configuration in the discovery response required: - name additionalProperties: false description: Distributions to create for the channel (endpoints will be auto-configured) required: - name additionalProperties: false Restream: type: object properties: id: type: string minLength: 1 description: Unique restream ID url: type: string pattern: '^(rtmp|rtmps|srt):' description: Restream destination URL required: - id - url additionalProperties: false CreateIngestBody: type: object properties: name: type: string description: Name of the ingest type: type: string enum: - rtmp-push - rtmp-pull - srt-pull - srt-push - sdi-pull - rtsp-pull - ndi-pull description: 'Ingest type. Note: srt-push requires SRT push to be enabled at organization level' url: type: string description: Source URL (required for pull types, except sdi-pull and ndi-pull). Must start with "rtsp://" for rtsp-pull region: type: string description: Region ID (required for rtmp-push, srt-pull and rtmp-pull). Must be a single ingest enabled region for pull types. Required and must be a DUPLO region when a 'speech' enhancement is enabled. Required and must be an on-prem region for rtsp-pull, ndi-pull and sdi-pull (ndi-pull and sdi-pull additionally require the region to support the ingest type) 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 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 sdi: allOf: - $ref: '#/components/schemas/IngestSdi' - description: SDI capture card configuration (required for sdi-pull) ndi: allOf: - $ref: '#/components/schemas/IngestNdi' - description: NDI source configuration (required for ndi-pull) required: - name - type additionalProperties: false ChannelObjectResultWithIncludes: type: object properties: data: allOf: - $ref: '#/components/schemas/Channel' - description: Channel object ingests: $ref: '#/components/schemas/IncludedIngests' engines: $ref: '#/components/schemas/IncludedEngines' distributions: $ref: '#/components/schemas/IncludedDistributions' required: - data IncludedIngests: type: object properties: data: type: array items: $ref: '#/components/schemas/Ingest' description: First 10 ingests hasMore: type: boolean description: Whether there are more than 10 ingests link: type: string description: Link to the full ingests list count: type: number description: Total number of ingests required: - data - hasMore - link - count description: Included ingests preview IncludedEngines: type: object properties: data: 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: First 10 engines hasMore: type: boolean description: Whether there are more than 10 engines link: type: string description: Link to the full engines list count: type: number description: Total number of engines required: - data - hasMore - link - count description: Included engines preview IncludedDistributions: type: object properties: data: type: array items: $ref: '#/components/schemas/Distribution' description: First 10 distributions hasMore: type: boolean description: Whether there are more than 10 distributions link: type: string description: Link to the full distributions list count: type: number description: Total number of distributions required: - data - hasMore - link - count description: Included distributions preview ChannelDrmConfigsResult: type: object properties: contentProtections: type: array items: $ref: '#/components/schemas/ChannelDrmContentProtection' description: List of DRM content protection configurations required: - contentProtections ChannelDrmContentProtection: type: object properties: integration: type: string description: DRM integration type merchant: type: string description: Merchant identifier, for integrations that identify the customer per license request widevine: type: object properties: licenseUrl: type: string description: Widevine license acquisition URL required: - licenseUrl description: Widevine configuration playready: type: object properties: licenseUrl: type: string description: PlayReady license acquisition URL required: - licenseUrl description: PlayReady configuration fairplay: type: object properties: licenseUrl: type: string description: FairPlay license acquisition URL certificateUrl: type: string description: FairPlay certificate URL required: - licenseUrl - certificateUrl description: FairPlay configuration required: - integration ChannelObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Channel' - description: Channel object required: - data UpdateChannelBody: type: object properties: name: type: string description: Name of the channel externalId: type: string description: Deprecated, use 'externalIds' instead. Shorthand for a single-entry 'externalIds'. For now, responses will keep returning 'externalId' with the first entry of 'externalIds'. deprecated: true externalIds: type: array items: type: string minLength: 1 description: External identifiers for the channel. Replaces the full list; an empty array clears all external IDs. Mutually exclusive with externalId. timeout: type: number minimum: 0 description: Timeout in seconds (minimum 60). To never stop, specify 0 ads: type: object properties: enabled: type: boolean description: Whether OptiView ads are enabled on the channel customAssetKey: type: string description: DAI asset key, only possible when Google is linked to your ads account timebase: type: string enum: - wallclock - pts description: Timebase for ad insertion. Defaults to "wallclock" 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. V1 ads settings. deprecated: true required: - enabled description: OptiView Ads configuration. Only available when OptiView Ads is enabled for your organization. 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. Only available when DVR feature is enabled for your organization. nielsen: type: object properties: enabled: type: boolean description: Whether Nielsen is enabled required: - enabled description: Nielsen configuration. Only available when Nielsen feature is enabled for your organization. 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 additionalProperties: false PaginatedIngestResult: type: object properties: data: type: array items: $ref: '#/components/schemas/Ingest' description: List of ingests 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 IngestObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Ingest' - description: Ingest object required: - data PaginatedEngineResult: type: object properties: data: 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: List of engines 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 EngineObjectResult: type: object properties: data: 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: Engine object required: - data PaginatedDistributionResult: type: object properties: data: type: array items: $ref: '#/components/schemas/Distribution' description: List of distributions 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 DistributionObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Distribution' - description: Distribution object required: - data CreateDistributionBody: type: object properties: 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.hesp instead. If set, will be applied as latencies.hesp.' 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 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 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. Matched exactly against the referer host including port (e.g. example.com). `localhost` with an optional port (e.g. localhost:3000) is also allowed. allowNativeApps: type: boolean description: Whether native apps are allowed 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: name: type: string description: Name of the security key key: type: string description: Security key value required: - key maxItems: 2 description: Security keys (max 2, create only) description: Security configuration endpoints: type: object properties: engineIds: type: array items: type: string description: Engine IDs to connect description: Endpoint configuration webRtc: type: object nullable: true 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 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 maxBitrate: type: number nullable: true description: Maximum bitrate limit in bps dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled on the distribution description: DVR configuration overrides: type: array items: type: object properties: deviceType: type: string nullable: true enum: - tv - mobile - desktop - other - null description: Target device type sdkType: type: string nullable: true enum: - native - web - null description: Target SDK type osName: type: string nullable: true enum: - apple - android - windows - roku - other - null description: Target OS name profileId: type: string nullable: true description: Target profile ID targets: type: array items: type: object properties: distributionId: type: string description: Target distribution ID weight: type: number minimum: 0 maximum: 100 description: Weight (0-100) required: - distributionId - weight description: Override target distributions with weights required: - targets description: Distribution overrides for device targeting customEndpoints: type: array items: type: object properties: customEndpointId: type: string description: ID of the custom endpoint to connect weight: type: integer minimum: 0 maximum: 100 default: 100 description: Weight (0-100, default 100) required: - customEndpointId description: Custom endpoints to connect to this distribution ads: type: object nullable: true properties: dai: type: object properties: weight: type: integer minimum: 0 maximum: 100 description: Weight for DAI endpoints (0-100) priority: type: integer description: Priority for DAI endpoints (any integer, lower = higher priority) required: - weight - priority additionalProperties: false description: DAI endpoint settings additionalProperties: false description: Ads configuration for the distribution playerSettings: type: object nullable: true properties: hespCooldown: type: number minimum: 0 maximum: 300 description: Cooldown period in seconds (0-300) before the player retries HESP playback after falling back to another protocol. Defaults to 120 seconds when not set. additionalProperties: false description: Player settings applied to the player configuration in the discovery response required: - name additionalProperties: false SendInstreamMetadataBody: type: string format: binary description: Binary blob of instream metadata as the payload for the UUID PaginatedEngineRunResult: type: object properties: data: type: array items: $ref: '#/components/schemas/EngineRun' description: List of engine runs 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 EngineRun: type: object properties: engineId: type: string description: Engine ID start: type: string description: Run start timestamp end: type: string description: Run end timestamp config: type: object properties: ingest: type: object properties: type: type: string description: Ingest type used url: type: string description: Ingest URL used required: - type abrLadderId: type: string description: ABR ladder ID used drm: type: boolean description: Whether DRM was enabled required: - ingest - abrLadderId - drm description: Run configuration startType: type: string description: How the run was started startId: type: string description: ID of the entity who did the start action stopType: type: string description: How the run was stopped stopId: type: string description: ID of entity who did the stop action required: - engineId - start - config - startType - startId AnalyticsListResult: type: object properties: data: type: array items: type: object properties: timestamp: type: string description: Timestamp of the data point records: type: array items: type: object properties: id: type: string description: Identifier of the grouped entity amount: type: number description: Metric value required: - id - amount description: Records for this time bucket required: - timestamp - records description: List of analytics data points required: - data ViewingBrowserListResult: type: object properties: data: type: array items: type: object properties: browserName: type: string description: Browser name hardwareType: type: string description: Hardware type amount: type: number description: Metric value required: - browserName - hardwareType - amount description: List of browser viewing data required: - data ViewingCountryListResult: type: object properties: data: type: array items: type: object properties: countryCode: type: string description: ISO country code amount: type: number description: Metric value required: - countryCode - amount description: List of country viewing data required: - data CountryInsightsListResult: type: object properties: data: type: array items: type: object properties: city: type: string description: City name countryCode: type: string description: ISO country code geoLocation: type: string description: Rounded latitude,longitude amount: type: number description: Number of unique viewers required: - city - countryCode - geoLocation - amount description: List of country insights required: - data BrowserOsInsightsListResult: type: object properties: data: type: array items: type: object properties: browserName: type: string description: Browser name browserVersion: type: string description: Browser version osName: type: string description: OS name osVersion: type: string description: OS version amount: type: number description: Number of unique viewers required: - browserName - browserVersion - osName - osVersion - amount description: List of browser/OS insights required: - data ViewersInsightsListResult: type: object properties: data: type: array items: type: object properties: timestamp: type: string description: Timestamp of the data point amount: type: number description: Number of unique viewers required: - timestamp - amount description: List of viewer count data points required: - data UpdateIngestBody: type: object properties: name: type: string description: Name of the ingest type: type: string enum: - rtmp-push - rtmp-pull - srt-pull - srt-push - sdi-pull - rtsp-pull - ndi-pull description: 'Ingest type. Note: srt-push requires SRT push to be enabled at organization level' url: type: string description: Source URL region: type: string description: Region ID (required for rtmp-push, srt-pull and rtmp-pull). Must be a single ingest enabled region for pull types. Required and must be a DUPLO region when a 'speech' enhancement is enabled. Required and must be an on-prem region for rtsp-pull, ndi-pull and sdi-pull (ndi-pull and sdi-pull additionally require the region to support the ingest type) 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 (replaces the whole list) 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 sdi: allOf: - $ref: '#/components/schemas/IngestSdi' - description: SDI capture card configuration (replaces the whole object) ndi: allOf: - $ref: '#/components/schemas/IngestNdi' - description: NDI source configuration (replaces the whole object) additionalProperties: false EngineRunObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/EngineRun' - description: Engine run object required: - data UpdateDistributionBody: type: object properties: name: type: string description: Name of the distribution externalId: type: string nullable: true description: External identifier for the distribution. Set to null to clear. enabled: type: boolean description: Whether the distribution is enabled targetLatency: type: number description: 'Deprecated: use latencies.hesp instead.' latencies: type: object nullable: true 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 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 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. Matched exactly against the referer host including port (e.g. example.com). `localhost` with an optional port (e.g. localhost:3000) is also allowed. allowNativeApps: type: boolean description: Whether native apps are allowed 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: name: type: string description: Name of the security key key: type: string description: Security key value required: - key maxItems: 2 description: Security keys (max 2, create only) description: Security configuration endpoints: type: object properties: engineIds: type: array items: type: string description: Engine IDs to connect description: Endpoint configuration webRtc: type: object nullable: true 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 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 maxBitrate: type: number nullable: true description: Maximum bitrate limit in bps dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled on the distribution description: DVR configuration overrides: type: array nullable: true items: type: object properties: deviceType: type: string nullable: true enum: - tv - mobile - desktop - other - null description: Target device type sdkType: type: string nullable: true enum: - native - web - null description: Target SDK type osName: type: string nullable: true enum: - apple - android - windows - roku - other - null description: Target OS name profileId: type: string nullable: true description: Target profile ID targets: type: array items: type: object properties: distributionId: type: string description: Target distribution ID weight: type: number minimum: 0 maximum: 100 description: Weight (0-100) required: - distributionId - weight description: Override target distributions with weights required: - targets description: Distribution overrides for device targeting customEndpoints: type: array nullable: true items: type: object properties: customEndpointId: type: string description: ID of the custom endpoint to connect weight: type: integer minimum: 0 maximum: 100 default: 100 description: Weight (0-100, default 100) required: - customEndpointId description: Custom endpoints to connect to this distribution. Replaces all existing connections. ads: type: object nullable: true properties: dai: type: object properties: weight: type: integer minimum: 0 maximum: 100 description: Weight for DAI endpoints (0-100) priority: type: integer description: Priority for DAI endpoints (any integer, lower = higher priority) required: - weight - priority additionalProperties: false description: DAI endpoint settings additionalProperties: false description: Ads configuration for the distribution. Set to null to clear. playerSettings: type: object nullable: true properties: hespCooldown: type: number minimum: 0 maximum: 300 description: Cooldown period in seconds (0-300) before the player retries HESP playback after falling back to another protocol. Defaults to 120 seconds when not set. additionalProperties: false description: Player settings applied to the player configuration in the discovery response. Set to null to clear. additionalProperties: false DistributionSecurityKeyListResult: type: object properties: data: type: array items: type: object properties: id: type: string description: Security key ID name: type: string description: Security key name required: - id description: List of security keys required: - data DistributionSecurityKeyObjectResult: type: object properties: data: type: object properties: id: type: string description: Security key ID name: type: string description: Security key name required: - id description: Security key object required: - data CreateDistributionSecurityKeyBody: type: object properties: name: type: string description: Name of the security key key: type: string description: Security key value required: - key additionalProperties: false RegionListResult: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique identifier of the region name: type: string description: Display name of the region type: type: string enum: - cloud - onprem description: Type of the region supportedIngestTypes: type: array items: type: string enum: - srt-pull - rtmp-pull - srt-push - rtmp-push - rtsp-pull - ndi-pull - sdi-pull description: Ingest types supported in this region (rtsp-pull, ndi-pull and sdi-pull are only available on on-prem regions; ndi-pull and sdi-pull additionally require the NDI/SDI capability on the region) required: - id - name - type - supportedIngestTypes description: List of regions required: - data RegionResult: type: object properties: data: type: object properties: id: type: string description: Unique identifier of the region name: type: string description: Display name of the region type: type: string enum: - cloud - onprem description: Type of the region supportedIngestTypes: type: array items: type: string enum: - srt-pull - rtmp-pull - srt-push - rtmp-push - rtsp-pull - ndi-pull - sdi-pull description: Ingest types supported in this region (rtsp-pull, ndi-pull and sdi-pull are only available on on-prem regions; ndi-pull and sdi-pull additionally require the NDI/SDI capability on the region) required: - id - name - type - supportedIngestTypes description: The requested region required: - data SdiDeviceListResult: type: object properties: data: type: array items: $ref: '#/components/schemas/SdiDevice' description: List of SDI devices in the region required: - data SdiDevice: type: object properties: persistentId: type: string description: Persistent identifier of the SDI device model: type: string description: Model name of the SDI device driverVersion: type: string description: Driver version of the SDI device available: type: boolean description: Whether the SDI device is available for use and has a signal present profile: type: string description: Active profile (sub-device layout) of the SDI device signal: type: object properties: present: type: boolean description: Whether a signal is present on the SDI device mode: type: string description: Detected signal mode resolution: type: object properties: width: type: number description: Width in pixels height: type: number description: Height in pixels required: - width - height description: Detected resolution of the signal frameRate: type: number description: Detected frame rate of the signal pixelFormat: type: string description: Detected pixel format of the signal videoMode: type: string description: Detected video mode of the signal videoFormat: type: string description: Detected video format of the signal required: - present description: Detected signal on the SDI device required: - persistentId - model - driverVersion - available - profile NdiSourceListResult: type: object properties: data: type: array items: $ref: '#/components/schemas/NdiSource' description: List of NDI sources in the region required: - data NdiSource: type: object properties: id: type: string description: Unique identifier of the NDI source name: type: string description: Name of the NDI source url: type: string description: Current URL of the NDI source lastSeen: type: string description: Timestamp the NDI source was last seen stale: type: boolean description: Whether the NDI source has not been seen recently and may no longer be available inUse: type: boolean description: Whether the NDI source is already connected to a non-deleted ingest required: - id - name - url - lastSeen - stale - inUse AbrListResult: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique identifier of the ABR ladder name: type: string description: Name of the ABR ladder video: type: array items: type: object properties: bitrate: type: number description: Bitrate in bits-per-second (bps) id: type: string description: Unique identifier for this rendition label: type: string description: Label for this rendition width: type: number description: Width in pixels height: type: number description: Height in pixels frameRate: type: object properties: scale: type: number minimum: 1 description: Frame rate scale value: type: number minimum: 1 description: Frame rate value required: - scale - value description: Frame rate configuration codec: type: string enum: - h264 - vision_h265 description: Video codec to use for this rendition (defaults to h264) disableHardwareAcceleration: type: boolean description: Disable hardware acceleration for this rendition (defaults to false) required: - bitrate - id - label - width - height description: List of video quality renditions audio: type: object properties: bitrate: type: number minimum: 1 description: Audio bitrate in kilobits-per-second (kbps) atmos: type: object properties: bitrate: type: number minimum: 1 description: Dolby Atmos bitrate in kilobits-per-second (kbps) required: - bitrate description: Dolby Atmos audio configuration required: - bitrate description: Audio configuration resources: type: object properties: cpuCores: type: number minimum: 1 maximum: 32 description: Number of CPU cores (1 - 32) memoryMiB: type: number minimum: 1 description: Memory in MiB gpuCount: type: integer minimum: 0 maximum: 2 description: Number of GPUs (0, 1 or 2) required: - cpuCores - memoryMiB description: Resource allocation configuration required: - id - name - video description: List of ABR ladders required: - data PaginatedWebhookResult: type: object properties: data: type: array items: $ref: '#/components/schemas/Webhook' description: List of webhooks 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 Webhook: type: object properties: id: type: string description: Unique identifier of the webhook createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update timestamp name: type: string description: Name of the webhook active: type: boolean description: Whether the webhook is active description: type: string description: Description of the webhook url: type: string description: URL to send webhook events to events: type: array items: type: string enum: - '*' - channel.created - channel.stopped - channel.deleted - channel.deploying - channel.updated - webhook.created - webhook.updated - webhook.deleted - scheduler.created - scheduler.updated - scheduler.deleted - scheduler.active - scheduler.terminated - engine.deploying - engine.waiting - engine.starting - engine.error - engine.playing - engine.ingesting - engine.created - engine.updated - engine.stopping - engine.stopped - engine.deleting - engine.deleted - engine.log.warn - engine.log.error - engine.log.info - ingest.created - ingest.updated - ingest.deleted - distribution.created - distribution.enabled - distribution.disabled - distribution.updated - distribution.deleted - distribution.security.key.added - distribution.security.key.deleted - distribution.security.keys.deleted description: List of subscribed events. "*" means all events. required: - id - createdAt - updatedAt - name - active - url - events WebhookObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Webhook' - description: Webhook object required: - data CreateWebhookBody: type: object properties: name: type: string description: Name of the webhook description: type: string description: Description of the webhook url: type: string format: uri description: URL to send webhook events to events: type: array items: type: string enum: - '*' - channel.created - channel.stopped - channel.deleted - channel.deploying - channel.updated - webhook.created - webhook.updated - webhook.deleted - scheduler.created - scheduler.updated - scheduler.deleted - scheduler.active - scheduler.terminated - engine.deploying - engine.waiting - engine.starting - engine.error - engine.playing - engine.ingesting - engine.created - engine.updated - engine.stopping - engine.stopped - engine.deleting - engine.deleted - engine.log.warn - engine.log.error - engine.log.info - ingest.created - ingest.updated - ingest.deleted - distribution.created - distribution.enabled - distribution.disabled - distribution.updated - distribution.deleted - distribution.security.key.added - distribution.security.key.deleted - distribution.security.keys.deleted minItems: 1 description: List of events to subscribe to active: type: boolean description: Whether the webhook should be active upon creation. Defaults to false. required: - name - url - events additionalProperties: false UpdateWebhookBody: type: object properties: name: type: string description: Name of the webhook description: type: string description: Description of the webhook url: type: string format: uri description: URL to send webhook events to events: type: array items: type: string enum: - '*' - channel.created - channel.stopped - channel.deleted - channel.deploying - channel.updated - webhook.created - webhook.updated - webhook.deleted - scheduler.created - scheduler.updated - scheduler.deleted - scheduler.active - scheduler.terminated - engine.deploying - engine.waiting - engine.starting - engine.error - engine.playing - engine.ingesting - engine.created - engine.updated - engine.stopping - engine.stopped - engine.deleting - engine.deleted - engine.log.warn - engine.log.error - engine.log.info - ingest.created - ingest.updated - ingest.deleted - distribution.created - distribution.enabled - distribution.disabled - distribution.updated - distribution.deleted - distribution.security.key.added - distribution.security.key.deleted - distribution.security.keys.deleted description: List of events to subscribe to active: type: boolean description: Whether the webhook is active additionalProperties: false WebhookSecretResult: type: object properties: data: type: object properties: secret: type: string description: The webhook signing secret required: - secret description: Secret object required: - data PaginatedWebhookLogResult: type: object properties: data: type: array items: $ref: '#/components/schemas/WebhookLog' description: List of webhook logs 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 WebhookLog: type: object properties: id: type: string description: Unique identifier of the log entry timestamp: type: string description: Timestamp of the log entry type: type: string enum: - '*' - channel.created - channel.stopped - channel.deleted - channel.deploying - channel.updated - webhook.created - webhook.updated - webhook.deleted - scheduler.created - scheduler.updated - scheduler.deleted - scheduler.active - scheduler.terminated - engine.deploying - engine.waiting - engine.starting - engine.error - engine.playing - engine.ingesting - engine.created - engine.updated - engine.stopping - engine.stopped - engine.deleting - engine.deleted - engine.log.warn - engine.log.error - engine.log.info - ingest.created - ingest.updated - ingest.deleted - distribution.created - distribution.enabled - distribution.disabled - distribution.updated - distribution.deleted - distribution.security.key.added - distribution.security.key.deleted - distribution.security.keys.deleted description: Event type that triggered the webhook statusCode: type: number description: HTTP status code of the webhook delivery requestData: type: object properties: type: type: string enum: - '*' - channel.created - channel.stopped - channel.deleted - channel.deploying - channel.updated - webhook.created - webhook.updated - webhook.deleted - scheduler.created - scheduler.updated - scheduler.deleted - scheduler.active - scheduler.terminated - engine.deploying - engine.waiting - engine.starting - engine.error - engine.playing - engine.ingesting - engine.created - engine.updated - engine.stopping - engine.stopped - engine.deleting - engine.deleted - engine.log.warn - engine.log.error - engine.log.info - ingest.created - ingest.updated - ingest.deleted - distribution.created - distribution.enabled - distribution.disabled - distribution.updated - distribution.deleted - distribution.security.key.added - distribution.security.key.deleted - distribution.security.keys.deleted description: Event type created: type: number description: Unix timestamp of when the event was created object: type: object properties: type: type: string enum: - channel - ingest - engine - distribution - alias - scheduler description: Type of the related object id: type: string description: ID of the related object parent: type: object properties: type: type: string enum: - channel - ingest - engine - distribution - alias - scheduler description: Type of the parent object id: type: string description: ID of the parent object required: - type - id description: Parent object reference organizationId: type: string description: Organization ID required: - type - id - organizationId description: Object that triggered the event data: nullable: true description: Additional event data required: - type - created - object description: Request data sent in the webhook delivery required: - id - timestamp - type - statusCode - requestData PaginatedSchedulerResult: type: object properties: data: type: array items: $ref: '#/components/schemas/Scheduler' description: List of schedulers 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 Scheduler: type: object properties: id: type: string description: Unique identifier of the scheduler name: type: string description: Name of the scheduler createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update timestamp enabled: type: boolean description: Whether the scheduler is enabled startDate: type: string description: Start date (YYYY-MM-DD) startTime: type: string description: Start time (HH:mm) endDate: type: string description: End date (YYYY-MM-DD) endTime: type: string description: End time (HH:mm) recurrence: type: string description: RRULE recurrence string timeZone: type: string description: IANA time zone channelIds: type: array items: type: string description: Channel IDs channels: type: array items: $ref: '#/components/schemas/SchedulerChannelSelection' description: Channels with optional engine selection (engineIds omitted = all engines) required: - id - name - createdAt - updatedAt - enabled - startDate - startTime - timeZone - channelIds - channels SchedulerChannelSelection: type: object properties: channelId: type: string description: Channel ID engineIds: type: array items: type: string minItems: 1 description: Engine IDs of this channel to start/stop. Omit to include all engines of the channel. required: - channelId additionalProperties: false SchedulerObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Scheduler' - description: Scheduler object required: - data CreateSchedulerBody: type: object properties: name: type: string description: Name of the scheduler startDate: type: string pattern: ^\d{4}-\d{2}-\d{2}$ description: Start date (YYYY-MM-DD) startTime: type: string pattern: ^\d{2}:\d{2}$ description: Start time (HH:mm) timeZone: type: string description: IANA time zone (e.g. "UTC", "Europe/Brussels") endDate: type: string pattern: ^\d{4}-\d{2}-\d{2}$ description: End date (YYYY-MM-DD) endTime: type: string pattern: ^\d{2}:\d{2}$ description: End time (HH:mm) recurrence: type: string description: RRULE recurrence string channelIds: type: array items: type: string minItems: 1 description: Channel IDs (deprecated, use channels instead). All engines of each channel are scheduled. channels: type: array items: $ref: '#/components/schemas/SchedulerChannelSelection' minItems: 1 description: Channels with optional engine selection. Use instead of channelIds. enabled: type: boolean description: Whether the scheduler is enabled required: - name - startDate - startTime additionalProperties: false UpdateSchedulerBody: type: object properties: name: type: string description: Name of the scheduler startDate: type: string pattern: ^\d{4}-\d{2}-\d{2}$ description: Start date (YYYY-MM-DD) startTime: type: string pattern: ^\d{2}:\d{2}$ description: Start time (HH:mm) timeZone: type: string description: IANA time zone (e.g. "UTC", "Europe/Brussels") endDate: type: string nullable: true pattern: ^\d{4}-\d{2}-\d{2}$ description: End date (YYYY-MM-DD). Set to null to unset. endTime: type: string nullable: true pattern: ^\d{2}:\d{2}$ description: End time (HH:mm). Set to null to unset. recurrence: type: string nullable: true description: RRULE recurrence string. Set to null to unset. channelIds: type: array items: type: string minItems: 1 description: Channel IDs (deprecated, use channels instead). All engines of each channel are scheduled. channels: type: array items: $ref: '#/components/schemas/SchedulerChannelSelection' minItems: 1 description: Channels with optional engine selection. Use instead of channelIds. enabled: type: boolean description: Whether the scheduler is enabled additionalProperties: false CustomEndpointObjectResult: type: object properties: data: $ref: '#/components/schemas/CustomEndpoint' required: - data CustomEndpoint: type: object properties: id: type: string description: Unique identifier createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update timestamp organizationId: type: string description: Organization ID channelId: type: string description: Channel ID name: type: string description: Name src: type: string description: Source URL srcType: type: string enum: - hesp - hls - dash description: Source type provider: type: string description: Provider adSystem: type: string description: Ad system (defaults to 'sgai') drmConfig: type: object nullable: true properties: integration: type: string enum: - ezdrm - mediakind - drmtoday description: DRM integration type merchant: type: string description: Merchant identifier, for integrations that identify the customer per license request widevine: type: object properties: licenseUrl: type: string description: Widevine license URL required: - licenseUrl description: Widevine DRM configuration playready: type: object properties: licenseUrl: type: string description: PlayReady license URL required: - licenseUrl description: PlayReady DRM configuration fairplay: type: object properties: licenseUrl: type: string description: FairPlay license URL certificateUrl: type: string description: FairPlay certificate URL required: - licenseUrl - certificateUrl description: FairPlay DRM configuration required: - integration additionalProperties: false description: DRM configuration cdn: type: string description: CDN identifier priority: type: number description: Priority required: - id - createdAt - updatedAt - organizationId - channelId - name - src - srcType - provider - adSystem - cdn - priority description: Custom endpoint object CreateCustomEndpointBody: type: object properties: name: type: string minLength: 1 description: Name of the custom endpoint src: type: string minLength: 1 description: Source URL srcType: type: string enum: - hesp - hls - dash description: Source type (hesp, hls or dash) provider: type: string minLength: 1 description: Provider name (must be configured for the organization) adSystem: type: string minLength: 1 description: Ad system name (must be configured for the organization). 'sgai' is always allowed. Defaults to 'sgai' if not specified drmConfig: $ref: '#/components/schemas/CustomEndpointDrmConfig' cdn: type: string minLength: 1 pattern: ^[a-zA-Z0-9]+$ description: CDN identifier priority: type: integer description: Priority (lower is higher priority) required: - name - src - srcType - provider - cdn - priority additionalProperties: false CustomEndpointDrmConfig: type: object properties: integration: type: string enum: - ezdrm - mediakind - drmtoday description: DRM integration type merchant: type: string description: Merchant identifier, for integrations that identify the customer per license request widevine: type: object properties: licenseUrl: type: string description: Widevine license URL required: - licenseUrl description: Widevine DRM configuration playready: type: object properties: licenseUrl: type: string description: PlayReady license URL required: - licenseUrl description: PlayReady DRM configuration fairplay: type: object properties: licenseUrl: type: string description: FairPlay license URL certificateUrl: type: string description: FairPlay certificate URL required: - licenseUrl - certificateUrl description: FairPlay DRM configuration required: - integration additionalProperties: false description: Optional DRM configuration CustomEndpointListResult: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomEndpoint' description: List of custom endpoints required: - data UpdateCustomEndpointBody: type: object properties: name: type: string minLength: 1 description: Name of the custom endpoint src: type: string minLength: 1 description: Source URL srcType: type: string enum: - hesp - hls - dash description: Source type (hesp, hls or dash) provider: type: string minLength: 1 description: Provider name (must be configured for the organization) adSystem: type: string nullable: true minLength: 1 description: Ad system name (must be configured for the organization). 'sgai' is always allowed. Set to null to reset to default ('sgai') drmConfig: type: object nullable: true properties: integration: type: string enum: - ezdrm - mediakind - drmtoday description: DRM integration type merchant: type: string description: Merchant identifier, for integrations that identify the customer per license request widevine: type: object properties: licenseUrl: type: string description: Widevine license URL required: - licenseUrl description: Widevine DRM configuration playready: type: object properties: licenseUrl: type: string description: PlayReady license URL required: - licenseUrl description: PlayReady DRM configuration fairplay: type: object properties: licenseUrl: type: string description: FairPlay license URL certificateUrl: type: string description: FairPlay certificate URL required: - licenseUrl - certificateUrl description: FairPlay DRM configuration required: - integration additionalProperties: false description: Optional DRM configuration cdn: type: string minLength: 1 pattern: ^[a-zA-Z0-9]+$ description: CDN identifier priority: type: integer description: Priority (lower is higher priority) additionalProperties: false ChannelMonitoringResult: type: object properties: data: $ref: '#/components/schemas/ChannelMonitoringData' required: - data ChannelMonitoringData: type: object properties: id: type: string description: Channel ID name: type: string description: Channel name status: type: string description: Channel status derived from engine states ingests: type: array items: $ref: '#/components/schemas/IngestMonitoringStatus' description: List of ingests with status engines: type: array items: $ref: '#/components/schemas/EngineMonitoringStatus' description: List of engines with status distributions: type: array items: $ref: '#/components/schemas/DistributionMonitoringStatus' description: List of distributions with status required: - id - name - status - ingests - engines - distributions IngestMonitoringStatus: type: object properties: id: type: string description: Ingest ID protocol: type: string description: Ingest protocol example: srt-push required: - id - protocol EngineMonitoringStatus: type: object properties: id: type: string description: Engine ID status: type: string description: Engine status renditions: type: number description: Number of renditions bitrate: type: number description: Total bitrate required: - id - status DistributionMonitoringStatus: type: object properties: id: type: string description: Distribution ID status: type: string description: Distribution status (enabled/disabled) required: - id - status MonitoringError: type: object properties: code: type: string message: type: string required: - code - message IngestMonitoringResult: type: object properties: data: $ref: '#/components/schemas/IngestMonitoringData' required: - data IngestMonitoringData: type: object properties: id: type: string description: Ingest ID status: type: string description: Ingest status protocol: type: string description: Ingest protocol example: srt-push started: type: string description: Connection start time in ISO 8601 format uptime: type: number description: Uptime in seconds metrics: type: array items: $ref: '#/components/schemas/IngestMetricDataPoint' description: Time-series metric data points required: - id - status - protocol IngestMetricDataPoint: type: object properties: time: type: string description: Timestamp in ISO 8601 format packetLoss: type: number description: Packet loss count rtt: type: number description: Round-trip time in milliseconds bitrate: type: object properties: total: type: number description: Total bitrate in bps required: - total location: type: object properties: ip: type: string description: Remote IP address region: type: string description: Ingest region required: - ip - region required: - time - packetLoss - rtt - bitrate - location EngineMonitoringResult: type: object properties: data: $ref: '#/components/schemas/EngineMonitoringData' required: - data EngineMonitoringData: type: object properties: id: type: string description: Engine ID status: type: string description: Engine status renditions: type: array items: $ref: '#/components/schemas/EngineRenditionData' description: List of renditions with metrics required: - id - status EngineRenditionData: type: object properties: name: type: string description: Rendition name metrics: type: array items: $ref: '#/components/schemas/EngineRenditionMetricDataPoint' description: Time-series metric data points required: - name - metrics EngineRenditionMetricDataPoint: type: object properties: time: type: string description: Timestamp in ISO 8601 format framerate: type: number description: Framerate in fps bitrate: type: number description: Bitrate in bps required: - time - framerate - bitrate ChannelIngestsMonitoringResult: type: object properties: data: $ref: '#/components/schemas/ChannelIngestsMonitoringData' required: - data ChannelIngestsMonitoringData: type: object properties: id: type: string description: Channel ID name: type: string description: Channel name status: type: string description: Channel status derived from engine states ingests: type: array items: $ref: '#/components/schemas/IngestMonitoringData' description: List of ingests with detailed monitoring data required: - id - name - status - ingests ChannelEnginesMonitoringResult: type: object properties: data: $ref: '#/components/schemas/ChannelEnginesMonitoringData' required: - data ChannelEnginesMonitoringData: type: object properties: id: type: string description: Channel ID name: type: string description: Channel name status: type: string description: Channel status derived from engine states engines: type: array items: $ref: '#/components/schemas/EngineMonitoringData' description: List of engines with detailed monitoring data required: - id - name - status - engines parameters: {} paths: /channels: get: tags: - Channels operationId: get-channels summary: Get all channels x-mcp: description: List the live channels of the organization. Supports filtering (name, search, status) and cursor pagination. Channel status follows the engine lifecycle (deploying, starting, playing, stopped, error, ...). parameters: - schema: type: string description: Filter by external ID. Matches channels where any entry of 'externalIds' equals the value. required: false description: Filter by external ID. Matches channels where any entry of 'externalIds' equals the value. name: externalId in: query - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: number nullable: true maximum: 100 description: Maximum number of channels to return (max 100) required: false description: Maximum number of channels to return (max 100) name: limit in: query - schema: type: string description: Filter by channel name required: false description: Filter by channel name name: name in: query - schema: type: string description: Search channels based on ID or name required: false description: Search channels based on ID or name name: search in: query - schema: type: string description: Comma-separated list of statuses to filter by required: false description: Comma-separated list of statuses to filter by name: status in: query - schema: type: string description: Filter by channel ID required: false description: Filter by channel ID name: id in: query responses: '200': description: List of channels content: application/json: schema: $ref: '#/components/schemas/PaginatedChannelResult' post: tags: - Channels operationId: create-channel summary: Create a new channel requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateChannelBody' responses: '200': description: Channel created content: application/json: schema: $ref: '#/components/schemas/ChannelCreatedObjectResult' /channels/{id}: get: tags: - Channels operationId: get-channel summary: Get a channel by ID x-mcp: description: Get a single channel by id. Related resources (ingests = contribution feeds, distributions = playback outputs, engines = transcoder instances) have their own list operations. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: 'Comma-separated list of related resources to include. Valid values: `ingests`, `engines`, `distributions`' required: false description: 'Comma-separated list of related resources to include. Valid values: `ingests`, `engines`, `distributions`' name: include in: query responses: '200': description: The requested channel content: application/json: schema: $ref: '#/components/schemas/ChannelObjectResultWithIncludes' patch: tags: - Channels operationId: update-channel summary: Update a channel by ID parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateChannelBody' responses: '200': description: Updated channel content: application/json: schema: $ref: '#/components/schemas/ChannelObjectResult' delete: tags: - Channels operationId: delete-channel summary: Delete a channel by ID parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '204': description: Empty response /channels/{id}/drm/configs: get: tags: - Channels operationId: get-channel-drm-configs summary: Get the DRM content protection configurations of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '200': description: The DRM content protection configurations content: application/json: schema: $ref: '#/components/schemas/ChannelDrmConfigsResult' /channels/{id}/start: post: tags: - Channels operationId: start-channel summary: Start a channel (will start all connected engines) x-mcp: destructiveHint: true description: Start a channel, which starts all its connected engines. This deploys transcoding infrastructure and starts billing transcoding minutes until the channel is stopped — only call it when the user explicitly asks to start. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '204': description: Channel started /channels/{id}/stop: post: tags: - Channels operationId: stop-channel summary: Stop a channel (will stop all connected engines) x-mcp: destructiveHint: true description: Stop a channel and all its connected engines. Viewers lose the stream immediately — only call it when the user explicitly asks to stop. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '204': description: Channel stopped /channels/{id}/ingests: get: tags: - Channels - Ingests operationId: get-channel-ingests summary: Get ingests of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: number nullable: true maximum: 100 description: Maximum number of items to return (max 100) required: false description: Maximum number of items to return (max 100) name: limit in: query responses: '200': description: List of ingests content: application/json: schema: $ref: '#/components/schemas/PaginatedIngestResult' post: tags: - Channels - Ingests operationId: create-channel-ingest summary: Create an ingest for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateIngestBody' responses: '200': description: Ingest created content: application/json: schema: $ref: '#/components/schemas/IngestObjectResult' /channels/{id}/engines: get: tags: - Channels - Engines operationId: get-channel-engines summary: Get engines of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: number nullable: true maximum: 100 description: Maximum number of items to return (max 100) required: false description: Maximum number of items to return (max 100) name: limit in: query responses: '200': description: List of engines content: application/json: schema: $ref: '#/components/schemas/PaginatedEngineResult' post: tags: - Channels - Engines operationId: create-channel-engine summary: Create an engine for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: type: object properties: ingestId: type: string description: Ingest ID to connect the engine to name: type: string description: Name of the engine region: type: string description: Region ID to deploy the engine in priority: type: number minimum: -100 maximum: 100 description: Engine priority (-100 to 100). Lower numbers mean higher priority drm: type: boolean description: Enable DRM. Only possible when enabled for your organization. drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider to use. Only possible when your organization has access to the provider. Defaults to the organization default provider. quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration daiAssetKey: type: string nullable: true description: DAI asset key 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 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 restream: type: array items: $ref: '#/components/schemas/Restream' description: Restream destinations. Only available when the engine runs in an on-prem region 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. Only available when enabled for your organization. Pass `null` to disable. atmos: type: object nullable: true properties: dialnorm: type: integer nullable: true minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. Pass `null` to unset it. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration. Only available when the connected ABR ladder has Dolby Atmos audio configured. Pass `null` to disable. required: - name - region - quality additionalProperties: false responses: '200': description: Engine created content: application/json: schema: $ref: '#/components/schemas/EngineObjectResult' /channels/{id}/distributions: get: tags: - Channels - Distributions operationId: get-channel-distributions summary: Get distributions of a channel description: Distributions are ordered alphabetically by name. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: number nullable: true maximum: 100 description: Maximum number of items to return (max 100) required: false description: Maximum number of items to return (max 100) name: limit in: query responses: '200': description: List of distributions, ordered alphabetically by name content: application/json: schema: $ref: '#/components/schemas/PaginatedDistributionResult' post: tags: - Channels - Distributions operationId: create-channel-distribution summary: Create a distribution for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDistributionBody' responses: '200': description: Distribution created content: application/json: schema: $ref: '#/components/schemas/DistributionObjectResult' /channels/{id}/instream-metadata/{uuid}: post: tags: - Channels operationId: send-channel-instream-metadata summary: Send instream metadata for a channel x-mcp: expose: false parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Instream metadata UUID required: true description: Instream metadata UUID name: uuid in: path requestBody: required: true content: application/octet-stream: schema: $ref: '#/components/schemas/SendInstreamMetadataBody' responses: '200': description: Instream metadata accepted '413': description: 'Payload too large: the instream metadata payload exceeds the configured maximum size (default 65536 bytes)' '429': description: 'Too many requests: the per-channel instream metadata rate limit was exceeded' /channels/{id}/runs: get: tags: - Channels operationId: get-channel-runs summary: Get engine runs of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: number nullable: true description: Maximum number of runs to return required: false description: Maximum number of runs to return name: limit in: query - schema: type: string description: Filter runs starting after this timestamp required: false description: Filter runs starting after this timestamp name: start in: query - schema: type: string description: Filter runs ending before this timestamp required: false description: Filter runs ending before this timestamp name: end in: query - schema: type: string description: Comma-separated list of engine IDs to filter by required: false description: Comma-separated list of engine IDs to filter by name: engineIds in: query responses: '200': description: List of engine runs content: application/json: schema: $ref: '#/components/schemas/PaginatedEngineRunResult' /channels/{id}/analytics/transcoding-minutes: get: tags: - Channels operationId: get-channel-transcoding-minutes summary: Get transcoding minutes analytics for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string enum: - engine - channel description: Group results by engine or channel required: false description: Group results by engine or channel name: groupBy in: query - schema: type: string enum: - 15min - hour - day - month description: Time resolution for the analytics data required: true description: Time resolution for the analytics data name: resolution in: query - schema: type: string description: Comma-separated list of engine IDs to filter by required: false description: Comma-separated list of engine IDs to filter by name: engineIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Transcoding minutes analytics data content: application/json: schema: $ref: '#/components/schemas/AnalyticsListResult' /channels/{id}/analytics/viewing-minutes: get: tags: - Channels operationId: get-channel-viewing-minutes summary: Get viewing minutes analytics for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string enum: - channel - distribution - streaming-format description: Group results by channel, distribution, or streaming format required: false description: Group results by channel, distribution, or streaming format name: groupBy in: query - schema: type: string enum: - 15min - hour - day - month description: Time resolution for the analytics data required: true description: Time resolution for the analytics data name: resolution in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes analytics data content: application/json: schema: $ref: '#/components/schemas/AnalyticsListResult' /channels/{id}/analytics/bytes-transferred: get: tags: - Channels operationId: get-channel-bytes-transferred summary: Get bytes transferred analytics for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string enum: - channel - distribution - streaming-format description: Group results by channel, distribution, or streaming format required: false description: Group results by channel, distribution, or streaming format name: groupBy in: query - schema: type: string enum: - 15min - hour - day - month description: Time resolution for the analytics data required: true description: Time resolution for the analytics data name: resolution in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred analytics data content: application/json: schema: $ref: '#/components/schemas/AnalyticsListResult' /channels/{id}/analytics/viewing-minutes/browsers: get: tags: - Channels operationId: get-channel-viewing-minutes-browsers summary: Get viewing minutes grouped by browser for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes by browser content: application/json: schema: $ref: '#/components/schemas/ViewingBrowserListResult' /channels/{id}/analytics/viewing-minutes/countries: get: tags: - Channels operationId: get-channel-viewing-minutes-countries summary: Get viewing minutes grouped by country for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes by country content: application/json: schema: $ref: '#/components/schemas/ViewingCountryListResult' /channels/{id}/analytics/bytes-transferred/browsers: get: tags: - Channels operationId: get-channel-bytes-transferred-browsers summary: Get bytes transferred grouped by browser for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred by browser content: application/json: schema: $ref: '#/components/schemas/ViewingBrowserListResult' /channels/{id}/analytics/bytes-transferred/countries: get: tags: - Channels operationId: get-channel-bytes-transferred-countries summary: Get bytes transferred grouped by country for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred by country content: application/json: schema: $ref: '#/components/schemas/ViewingCountryListResult' /channels/{id}/analytics/insights/countries: get: tags: - Channels operationId: get-channel-insights-countries summary: Get country insights for a channel description: Data is only available for the last 30 days. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Country insights data content: application/json: schema: $ref: '#/components/schemas/CountryInsightsListResult' /channels/{id}/analytics/insights/browsers-os: get: tags: - Channels operationId: get-channel-insights-browsers-os summary: Get browser and OS insights for a channel description: Data is only available for the last 30 days. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Browser/OS insights data content: application/json: schema: $ref: '#/components/schemas/BrowserOsInsightsListResult' /channels/{id}/analytics/insights/viewers: get: tags: - Channels operationId: get-channel-insights-viewers summary: Get viewer count insights for a channel description: Data is only available for the last 30 days. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Viewer count insights data content: application/json: schema: $ref: '#/components/schemas/ViewersInsightsListResult' /ingests/{id}: get: tags: - Ingests operationId: get-ingest summary: Get an ingest by ID parameters: - schema: type: string description: Ingest ID required: true description: Ingest ID name: id in: path responses: '200': description: The requested ingest content: application/json: schema: $ref: '#/components/schemas/IngestObjectResult' patch: tags: - Ingests operationId: update-ingest summary: Update an ingest by ID parameters: - schema: type: string description: Ingest ID required: true description: Ingest ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateIngestBody' responses: '200': description: Updated ingest content: application/json: schema: $ref: '#/components/schemas/IngestObjectResult' delete: tags: - Ingests operationId: delete-ingest summary: Delete an ingest by ID parameters: - schema: type: string description: Ingest ID required: true description: Ingest ID name: id in: path responses: '204': description: Empty response /ingests/{id}/engines: get: tags: - Ingests operationId: get-ingest-engines summary: Get engines of an ingest parameters: - schema: type: string description: Ingest ID required: true description: Ingest ID name: id in: path responses: '200': description: List of engines content: application/json: schema: $ref: '#/components/schemas/PaginatedEngineResult' post: tags: - Ingests operationId: create-ingest-engine summary: Create an engine for an ingest parameters: - schema: type: string description: Ingest ID required: true description: Ingest ID name: id in: path requestBody: required: true content: application/json: schema: type: object properties: ingestId: type: string description: Ingest ID to connect the engine to name: type: string description: Name of the engine region: type: string description: Region ID to deploy the engine in priority: type: number minimum: -100 maximum: 100 description: Engine priority (-100 to 100). Lower numbers mean higher priority drm: type: boolean description: Enable DRM. Only possible when enabled for your organization. drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider to use. Only possible when your organization has access to the provider. Defaults to the organization default provider. quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration daiAssetKey: type: string nullable: true description: DAI asset key 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 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 restream: type: array items: $ref: '#/components/schemas/Restream' description: Restream destinations. Only available when the engine runs in an on-prem region 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. Only available when enabled for your organization. Pass `null` to disable. atmos: type: object nullable: true properties: dialnorm: type: integer nullable: true minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. Pass `null` to unset it. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration. Only available when the connected ABR ladder has Dolby Atmos audio configured. Pass `null` to disable. required: - name - region - quality additionalProperties: false responses: '200': description: Engine created content: application/json: schema: $ref: '#/components/schemas/EngineObjectResult' /engines/{id}: get: tags: - Engines operationId: get-engine summary: Get an engine by ID parameters: - schema: type: string description: Engine ID required: true description: Engine ID name: id in: path responses: '200': description: The requested engine content: application/json: schema: $ref: '#/components/schemas/EngineObjectResult' patch: tags: - Engines operationId: update-engine summary: Update an engine by ID parameters: - schema: type: string description: Engine ID required: true description: Engine ID name: id in: path requestBody: required: true content: application/json: schema: type: object properties: ingestId: type: string description: Ingest ID to connect the engine to name: type: string description: Name of the engine region: type: string description: Region ID priority: type: number minimum: -100 maximum: 100 description: Engine priority (-100 to 100), lower value is higher priority drm: type: boolean description: Enable DRM. Only possible when enabled for your organization. drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider to use. Only possible when your organization has access to the provider. Defaults to the organization default provider. quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration daiAssetKey: type: string nullable: true description: DAI asset key 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 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 restream: type: array items: $ref: '#/components/schemas/Restream' description: Restream destinations. Only available when the engine runs in an on-prem region 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. Only available when enabled for your organization. The provided settings are merged into the existing configuration: omitted settings keep their current value, settings set to `null` are cleared. Pass `null` to disable vision entirely.' atmos: type: object nullable: true properties: dialnorm: type: integer nullable: true minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. Pass `null` to unset it. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration. Only available when the connected ABR ladder has Dolby Atmos audio configured. Pass `null` to disable. additionalProperties: false responses: '200': description: Updated engine content: application/json: schema: $ref: '#/components/schemas/EngineObjectResult' delete: tags: - Engines operationId: delete-engine summary: Delete an engine by ID parameters: - schema: type: string description: Engine ID required: true description: Engine ID name: id in: path responses: '204': description: Empty response /engines/{id}/start: post: tags: - Engines operationId: start-engine summary: Start an engine x-mcp: destructiveHint: true description: Start an engine. This deploys transcoding infrastructure and starts billing transcoding minutes until the engine is stopped — only call it when the user explicitly asks to start. parameters: - schema: type: string description: Engine ID required: true description: Engine ID name: id in: path responses: '204': description: Engine started /engines/{id}/stop: post: tags: - Engines operationId: stop-engine summary: Stop an engine x-mcp: destructiveHint: true description: Stop a running engine. Viewers of its channel lose the stream immediately — only call it when the user explicitly asks to stop. parameters: - schema: type: string description: Engine ID required: true description: Engine ID name: id in: path responses: '204': description: Engine stopped /engines/{id}/last-run: get: tags: - Engines operationId: get-engine-last-run summary: Get the last run of an engine parameters: - schema: type: string description: Engine ID required: true description: Engine ID name: id in: path responses: '200': description: Last engine run content: application/json: schema: $ref: '#/components/schemas/EngineRunObjectResult' /engines/{id}/runs: get: tags: - Engines operationId: get-engine-runs summary: Get runs of an engine parameters: - schema: type: string description: Engine ID required: true description: Engine ID name: id in: path responses: '200': description: List of engine runs content: application/json: schema: $ref: '#/components/schemas/PaginatedEngineRunResult' /distributions/{id}: get: tags: - Distributions operationId: get-distribution summary: Get a distribution by ID parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path responses: '200': description: The requested distribution content: application/json: schema: $ref: '#/components/schemas/DistributionObjectResult' patch: tags: - Distributions operationId: update-distribution summary: Update a distribution by ID parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDistributionBody' responses: '200': description: Updated distribution content: application/json: schema: $ref: '#/components/schemas/DistributionObjectResult' delete: tags: - Distributions operationId: delete-distribution summary: Delete a distribution by ID parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path responses: '204': description: Empty response /distributions/{id}/security/keys: get: tags: - Distributions operationId: get-distribution-security-keys summary: Get security keys of a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path responses: '200': description: List of security keys content: application/json: schema: $ref: '#/components/schemas/DistributionSecurityKeyListResult' post: tags: - Distributions operationId: create-distribution-security-key summary: Add a security key to a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDistributionSecurityKeyBody' responses: '200': description: Security key created content: application/json: schema: $ref: '#/components/schemas/DistributionSecurityKeyObjectResult' delete: tags: - Distributions operationId: delete-all-distribution-security-keys summary: Delete all security keys of a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path responses: '204': description: Empty response /distributions/{id}/security/keys/{keyId}: get: tags: - Distributions operationId: get-distribution-security-key summary: Get a specific security key parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string description: Security key ID required: true description: Security key ID name: keyId in: path responses: '200': description: The requested security key content: application/json: schema: $ref: '#/components/schemas/DistributionSecurityKeyObjectResult' delete: tags: - Distributions operationId: delete-distribution-security-key summary: Delete a specific security key parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string description: Security key ID required: true description: Security key ID name: keyId in: path responses: '204': description: Empty response /distributions/{id}/analytics/viewing-minutes: get: tags: - Distributions operationId: get-distribution-viewing-minutes summary: Get viewing minutes analytics for a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string enum: - channel - distribution - streaming-format description: Group results by channel, distribution, or streaming format required: false description: Group results by channel, distribution, or streaming format name: groupBy in: query - schema: type: string enum: - 15min - hour - day - month description: Time resolution for the analytics data required: true description: Time resolution for the analytics data name: resolution in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes analytics data content: application/json: schema: $ref: '#/components/schemas/AnalyticsListResult' /distributions/{id}/analytics/bytes-transferred: get: tags: - Distributions operationId: get-distribution-bytes-transferred summary: Get bytes transferred analytics for a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string enum: - channel - distribution - streaming-format description: Group results by channel, distribution, or streaming format required: false description: Group results by channel, distribution, or streaming format name: groupBy in: query - schema: type: string enum: - 15min - hour - day - month description: Time resolution for the analytics data required: true description: Time resolution for the analytics data name: resolution in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred analytics data content: application/json: schema: $ref: '#/components/schemas/AnalyticsListResult' /distributions/{id}/analytics/viewing-minutes/browsers: get: tags: - Distributions operationId: get-distribution-viewing-minutes-browsers summary: Get viewing minutes grouped by browser for a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes by browser content: application/json: schema: $ref: '#/components/schemas/ViewingBrowserListResult' /distributions/{id}/analytics/viewing-minutes/countries: get: tags: - Distributions operationId: get-distribution-viewing-minutes-countries summary: Get viewing minutes grouped by country for a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes by country content: application/json: schema: $ref: '#/components/schemas/ViewingCountryListResult' /distributions/{id}/analytics/bytes-transferred/browsers: get: tags: - Distributions operationId: get-distribution-bytes-transferred-browsers summary: Get bytes transferred grouped by browser for a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred by browser content: application/json: schema: $ref: '#/components/schemas/ViewingBrowserListResult' /distributions/{id}/analytics/bytes-transferred/countries: get: tags: - Distributions operationId: get-distribution-bytes-transferred-countries summary: Get bytes transferred grouped by country for a distribution parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred by country content: application/json: schema: $ref: '#/components/schemas/ViewingCountryListResult' /distributions/{id}/analytics/insights/countries: get: tags: - Distributions operationId: get-distribution-insights-countries summary: Get country insights for a distribution description: Data is only available for the last 30 days. parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Country insights data content: application/json: schema: $ref: '#/components/schemas/CountryInsightsListResult' /distributions/{id}/analytics/insights/browsers-os: get: tags: - Distributions operationId: get-distribution-insights-browsers-os summary: Get browser and OS insights for a distribution description: Data is only available for the last 30 days. parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Browser/OS insights data content: application/json: schema: $ref: '#/components/schemas/BrowserOsInsightsListResult' /distributions/{id}/analytics/insights/viewers: get: tags: - Distributions operationId: get-distribution-insights-viewers summary: Get viewer count insights for a distribution description: Data is only available for the last 30 days. parameters: - schema: type: string description: Distribution ID required: true description: Distribution ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Viewer count insights data content: application/json: schema: $ref: '#/components/schemas/ViewersInsightsListResult' /regions: get: tags: - Regions operationId: get-regions summary: Get all regions available for your organization responses: '200': description: List of regions content: application/json: schema: $ref: '#/components/schemas/RegionListResult' /regions/{regionId}: get: tags: - Regions operationId: get-region summary: Get a region by ID parameters: - schema: type: string description: Region ID required: true description: Region ID name: regionId in: path responses: '200': description: The requested region content: application/json: schema: $ref: '#/components/schemas/RegionResult' '404': description: Region not found or not available for your organization /regions/{regionId}/sdi: get: tags: - Regions operationId: get-region-sdi-devices summary: Get the SDI devices of an on-prem region parameters: - schema: type: string description: Region ID required: true description: Region ID name: regionId in: path responses: '200': description: List of SDI devices in the region content: application/json: schema: $ref: '#/components/schemas/SdiDeviceListResult' '400': description: Region is not an on-prem region '404': description: Region not found or not available for your organization /regions/{regionId}/ndi: get: tags: - Regions operationId: get-region-ndi-sources summary: Get the NDI sources of an on-prem region parameters: - schema: type: string description: Region ID required: true description: Region ID name: regionId in: path responses: '200': description: List of NDI sources in the region content: application/json: schema: $ref: '#/components/schemas/NdiSourceListResult' '400': description: Region is not an on-prem region '404': description: Region not found or not available for your organization /abr: get: tags: - ABR Ladders operationId: get-abr-ladders summary: Get all ABR ladders for your organization responses: '200': description: List of ABR ladders content: application/json: schema: $ref: '#/components/schemas/AbrListResult' /webhooks: get: tags: - Webhooks operationId: get-webhooks summary: Get all webhooks responses: '200': description: List of webhooks content: application/json: schema: $ref: '#/components/schemas/PaginatedWebhookResult' post: tags: - Webhooks operationId: create-webhook summary: Create a new webhook requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateWebhookBody' responses: '200': description: Webhook created successfully content: application/json: schema: $ref: '#/components/schemas/WebhookObjectResult' /webhooks/{id}: get: tags: - Webhooks operationId: get-webhook summary: Get a webhook by ID parameters: - schema: type: string description: Webhook ID required: true description: Webhook ID name: id in: path responses: '200': description: The requested webhook content: application/json: schema: $ref: '#/components/schemas/WebhookObjectResult' patch: tags: - Webhooks operationId: update-webhook summary: Update a webhook by ID parameters: - schema: type: string description: Webhook ID required: true description: Webhook ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWebhookBody' responses: '200': description: Updated webhook content: application/json: schema: $ref: '#/components/schemas/WebhookObjectResult' delete: tags: - Webhooks operationId: delete-webhook summary: Delete a webhook by ID parameters: - schema: type: string description: Webhook ID required: true description: Webhook ID name: id in: path responses: '204': description: Empty response /webhooks/{id}/secret: get: tags: - Webhooks operationId: get-webhook-secret summary: Get a webhook secret parameters: - schema: type: string description: Webhook ID required: true description: Webhook ID name: id in: path responses: '200': description: The webhook secret content: application/json: schema: $ref: '#/components/schemas/WebhookSecretResult' /webhooks/{id}/logs: get: tags: - Webhooks operationId: get-webhook-logs summary: Get webhook logs parameters: - schema: type: string description: Webhook ID required: true description: Webhook ID name: id in: path - schema: type: string pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$ description: Start date in 'YYYY-MM-DDTHH:mm:ss.sssZ' format required: false description: Start date in 'YYYY-MM-DDTHH:mm:ss.sssZ' format name: startDate in: query - schema: type: string pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$ description: End date in 'YYYY-MM-DDTHH:mm:ss.sssZ' format required: false description: End date in 'YYYY-MM-DDTHH:mm:ss.sssZ' format name: endDate in: query - schema: type: number nullable: true maximum: 100 description: Maximum number of logs to return (max 100) required: false description: Maximum number of logs to return (max 100) name: limit in: query responses: '200': description: Webhook logs content: application/json: schema: $ref: '#/components/schemas/PaginatedWebhookLogResult' /schedulers: get: tags: - Schedulers operationId: get-schedulers summary: List all schedulers parameters: - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: number nullable: true maximum: 100 description: Maximum number of schedulers to return (max 100) required: false description: Maximum number of schedulers to return (max 100) name: limit in: query - schema: type: string description: Comma-separated list of statuses to filter by (idle, starting, active, stopping, terminated) required: false description: Comma-separated list of statuses to filter by (idle, starting, active, stopping, terminated) name: status in: query - schema: type: string enum: - name - status - startDate - startTime description: Sort field required: false description: Sort field name: sortBy in: query - schema: type: string enum: - asc - desc description: Sort direction required: false description: Sort direction name: sortDirection in: query responses: '200': description: List of schedulers content: application/json: schema: $ref: '#/components/schemas/PaginatedSchedulerResult' post: tags: - Schedulers operationId: create-scheduler summary: Create a scheduler requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSchedulerBody' responses: '200': description: Created scheduler content: application/json: schema: $ref: '#/components/schemas/SchedulerObjectResult' /schedulers/{id}: get: tags: - Schedulers operationId: get-scheduler summary: Get a scheduler by ID parameters: - schema: type: string description: Scheduler ID required: true description: Scheduler ID name: id in: path responses: '200': description: The requested scheduler content: application/json: schema: $ref: '#/components/schemas/SchedulerObjectResult' patch: tags: - Schedulers operationId: update-scheduler summary: Update a scheduler by ID parameters: - schema: type: string description: Scheduler ID required: true description: Scheduler ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateSchedulerBody' responses: '200': description: Updated scheduler content: application/json: schema: $ref: '#/components/schemas/SchedulerObjectResult' delete: tags: - Schedulers operationId: delete-scheduler summary: Delete a scheduler by ID parameters: - schema: type: string description: Scheduler ID required: true description: Scheduler ID name: id in: path responses: '204': description: Empty response /channels/{id}/custom-endpoints: post: tags: - Channels - Custom Endpoints operationId: create-custom-endpoint summary: Create a custom endpoint on a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCustomEndpointBody' responses: '200': description: Created custom endpoint content: application/json: schema: $ref: '#/components/schemas/CustomEndpointObjectResult' get: tags: - Channels - Custom Endpoints operationId: get-channel-custom-endpoints summary: List all custom endpoints of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '200': description: List of custom endpoints content: application/json: schema: $ref: '#/components/schemas/CustomEndpointListResult' /custom-endpoints/{id}: get: tags: - Custom Endpoints operationId: get-custom-endpoint summary: Get a custom endpoint by ID parameters: - schema: type: string description: Custom Endpoint ID required: true description: Custom Endpoint ID name: id in: path responses: '200': description: The requested custom endpoint content: application/json: schema: $ref: '#/components/schemas/CustomEndpointObjectResult' patch: tags: - Custom Endpoints operationId: update-custom-endpoint summary: Update a custom endpoint parameters: - schema: type: string description: Custom Endpoint ID required: true description: Custom Endpoint ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCustomEndpointBody' responses: '200': description: Updated custom endpoint content: application/json: schema: $ref: '#/components/schemas/CustomEndpointObjectResult' delete: tags: - Custom Endpoints operationId: delete-custom-endpoint summary: Delete a custom endpoint parameters: - schema: type: string description: Custom Endpoint ID required: true description: Custom Endpoint ID name: id in: path responses: '204': description: Empty response /monitoring/channels/{channelId}: get: tags: - Monitoring operationId: get-channel-monitoring summary: Get monitoring data for a channel description: Returns monitoring data for a specific channel including status of ingests, engines, and distributions. x-mcp: description: 'Get the current health/monitoring snapshot of a channel: engine and ingest state plus stream quality indicators. Use this to diagnose why a channel is not playing. Requires the liveMonitoring feature.' parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: channelId in: path responses: '200': description: Channel monitoring data content: application/json: schema: $ref: '#/components/schemas/ChannelMonitoringResult' '404': description: Channel not found content: application/json: schema: $ref: '#/components/schemas/MonitoringError' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/MonitoringError' /monitoring/ingests/{ingestId}: get: tags: - Monitoring operationId: get-ingest-monitoring summary: Get detailed monitoring data for an ingest description: Returns monitoring data for a specific ingest including time-series metrics like packet loss, RTT, and bitrate. parameters: - schema: type: string description: Ingest ID required: true description: Ingest ID name: ingestId in: path - schema: type: string description: 'Start time in ISO 8601 format. Default: 1 minute ago. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' example: '2026-03-20T00:00:00Z' required: false description: 'Start time in ISO 8601 format. Default: 1 minute ago. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' name: start in: query - schema: type: string description: 'End time in ISO 8601 format. Default: now. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' example: '2026-03-20T00:01:00Z' required: false description: 'End time in ISO 8601 format. Default: now. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' name: end in: query responses: '200': description: Ingest monitoring data content: application/json: schema: $ref: '#/components/schemas/IngestMonitoringResult' '404': description: Ingest not found content: application/json: schema: $ref: '#/components/schemas/MonitoringError' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/MonitoringError' /monitoring/engines/{engineId}: get: tags: - Monitoring operationId: get-engine-monitoring summary: Get detailed monitoring data for an engine description: Returns monitoring data for a specific engine including rendition metrics. parameters: - schema: type: string description: Engine ID required: true description: Engine ID name: engineId in: path - schema: type: string description: 'Start time in ISO 8601 format. Default: 1 minute ago. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' example: '2026-03-20T00:00:00Z' required: false description: 'Start time in ISO 8601 format. Default: 1 minute ago. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' name: start in: query - schema: type: string description: 'End time in ISO 8601 format. Default: now. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' example: '2026-03-20T00:01:00Z' required: false description: 'End time in ISO 8601 format. Default: now. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' name: end in: query responses: '200': description: Engine monitoring data content: application/json: schema: $ref: '#/components/schemas/EngineMonitoringResult' '404': description: Engine not found content: application/json: schema: $ref: '#/components/schemas/MonitoringError' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/MonitoringError' /monitoring/channels/{channelId}/ingests: get: tags: - Monitoring operationId: get-channel-ingests-monitoring summary: Get detailed ingest monitoring data for a channel description: Returns channel metadata along with detailed monitoring data for all ingests belonging to the channel. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: channelId in: path - schema: type: string description: 'Start time in ISO 8601 format. Default: 1 minute ago. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' example: '2026-03-20T00:00:00Z' required: false description: 'Start time in ISO 8601 format. Default: 1 minute ago. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' name: start in: query - schema: type: string description: 'End time in ISO 8601 format. Default: now. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' example: '2026-03-20T00:01:00Z' required: false description: 'End time in ISO 8601 format. Default: now. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' name: end in: query responses: '200': description: Channel ingests monitoring data content: application/json: schema: $ref: '#/components/schemas/ChannelIngestsMonitoringResult' '404': description: Channel not found content: application/json: schema: $ref: '#/components/schemas/MonitoringError' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/MonitoringError' /monitoring/channels/{channelId}/engines: get: tags: - Monitoring operationId: get-channel-engines-monitoring summary: Get detailed engine monitoring data for a channel description: Returns channel metadata along with detailed monitoring data for all engines belonging to the channel. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: channelId in: path - schema: type: string description: 'Start time in ISO 8601 format. Default: 1 minute ago. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' example: '2026-03-20T00:00:00Z' required: false description: 'Start time in ISO 8601 format. Default: 1 minute ago. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' name: start in: query - schema: type: string description: 'End time in ISO 8601 format. Default: now. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' example: '2026-03-20T00:01:00Z' required: false description: 'End time in ISO 8601 format. Default: now. Must be within 5 minutes of the current time. Start and end must be at most 1 minute apart.' name: end in: query responses: '200': description: Channel engines monitoring data content: application/json: schema: $ref: '#/components/schemas/ChannelEnginesMonitoringResult' '404': description: Channel not found content: application/json: schema: $ref: '#/components/schemas/MonitoringError' '500': description: Internal error content: application/json: schema: $ref: '#/components/schemas/MonitoringError'