openapi: 3.0.3 info: title: Dolby OptiView Real-time Streaming ABR Ladders Channels API description: 'REST API for managing OptiView Real-time Streaming (formerly Millicast / Dolby.io Real-time Streaming) — publish/subscribe tokens, recordings, transcoders, encoder profiles, clusters, analytics, and webhooks. All requests are authenticated with a Bearer API Secret created in the streaming dashboard (Settings -> Security -> API Secrets). ' version: '2026.05' contact: name: Dolby OptiView Support url: https://optiview.dolby.com/docs/millicast/ servers: - url: https://api.millicast.com/api description: Production REST API security: - BearerAuth: [] tags: - name: Channels paths: /channels: get: tags: - Channels operationId: get-channels summary: Get all channels parameters: - schema: type: string description: Filter by external ID required: false description: Filter by external ID 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 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, distributions, engines' required: false description: 'Comma-separated list of related resources to include. Valid values: ingests, distributions, engines' 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}/start: post: tags: - Channels operationId: start-channel summary: Start a channel (will start all connected engines) 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) 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 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 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: 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 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) region: type: string description: Region ID (required for rtmp-push) 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 required: - name - type additionalProperties: false responses: '200': description: Ingest created content: application/json: schema: $ref: '#/components/schemas/IngestObjectResult' /channels/{id}/engines: get: tags: - Channels 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 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 on organization level. 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=invisible, 1=fully visible) 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 on organization level. description: Output format configuration 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 operationId: get-channel-distributions summary: Get distributions 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 distributions content: application/json: schema: $ref: '#/components/schemas/PaginatedDistributionResult' post: tags: - Channels 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 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 /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' /channels/{id}/custom-endpoints: post: tags: - Channels 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 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' components: schemas: DistributionObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Distribution' - description: Distribution object 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=invisible, 1=fully visible) required: - url description: Image overlay configuration drm: type: boolean description: Whether DRM is enabled 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 on organization level. description: Output format 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 CustomEndpointObjectResult: type: object properties: data: $ref: '#/components/schemas/CustomEndpoint' required: - data 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=invisible, 1=fully visible) required: - url description: Image overlay configuration drm: type: boolean description: Whether DRM is enabled 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 on organization level. description: Output format configuration required: - id - name - createdAt - updatedAt - quality - overlays - drm - priority - status - outputs description: Engine object required: - data 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 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 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) 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 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 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 required: - id - name - createdAt - type - url - streamKey - tracks - captions 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 UpdateChannelBody: type: object properties: name: type: string description: Name of the channel externalId: type: string description: External identifier for the channel timeout: type: number minimum: 0 description: Timeout in seconds (minimum 60). To never stop, pass 0 ads: type: object properties: enabled: type: boolean description: Whether ads are enabled settings: type: object properties: assetKey: type: string description: DAI asset key layout: type: string enum: - SINGLE - DOUBLE - LSHAPE_AD - LSHAPE_CONTENT description: Ad layout type enableBumperAds: type: boolean description: Whether bumper ads are enabled podDuration: type: number description: Pod duration in seconds customAdTagParameters: type: object additionalProperties: type: string description: Custom ad tag parameters required: - assetKey - layout description: Ad settings (required when enabled is true) required: - enabled description: Ads configuration. Only available when ads feature is enabled on organization level. 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 on organization level. nielsen: type: object properties: enabled: type: boolean description: Whether Nielsen is enabled required: - enabled description: Nielsen configuration. Only available when Nielsen feature is enabled on organization level. instreamMetadata: type: object properties: enabled: type: boolean description: Whether instream metadata is enabled uuids: type: array items: type: string format: uuid description: Array of instream metadata UUIDs required: - enabled description: Instream metadata configuration additionalProperties: false ChannelObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Channel' - description: Channel object required: - data 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 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 ChannelCreatedObjectResult: type: object properties: data: $ref: '#/components/schemas/ChannelCreated' required: - data 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 SendInstreamMetadataBody: type: string format: binary description: Binary blob of instream metadata 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 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 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 drmConfig: type: object nullable: true properties: integration: type: string enum: - ezdrm - mediakind description: DRM integration type 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 - cdn - priority description: Custom endpoint object 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 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=invisible, 1=fully visible) required: - url description: Image overlay configuration drm: type: boolean description: Whether DRM is enabled 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 on organization level. description: Output format 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 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 Distribution: type: object properties: id: type: string description: Unique identifier of the distribution createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update 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: Target latency in seconds 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 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 required: - id - createdAt - updatedAt - name - enabled - security - endpoints - dvr 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 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 CustomEndpointDrmConfig: type: object properties: integration: type: string enum: - ezdrm - mediakind description: DRM integration type 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 IngestObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Ingest' - description: Ingest object required: - data 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 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: Target latency in seconds 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 allowNativeApps: type: boolean description: Whether native apps are allowed description: Referer blocking configuration 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 required: - name 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 CreateChannelBody: type: object properties: name: type: string description: Name of the channel externalId: type: string description: External identifier for the channel timeout: type: number minimum: 0 default: 3600 description: Timeout in seconds. To never stop, pass 0 ads: type: object properties: enabled: type: boolean description: Whether ads are enabled settings: type: object properties: assetKey: type: string description: DAI asset key layout: type: string enum: - SINGLE - DOUBLE - LSHAPE_AD - LSHAPE_CONTENT description: Ad layout type enableBumperAds: type: boolean description: Whether bumper ads are enabled podDuration: type: number description: Pod duration in seconds customAdTagParameters: type: object additionalProperties: type: string description: Custom ad tag parameters required: - assetKey - layout description: Ad settings (required when enabled is true) required: - enabled description: 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 uuids: type: array items: type: string format: uuid description: Array of instream metadata UUIDs required: - enabled description: Instream metadata configuration ingests: type: array items: 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 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) region: type: string description: Region ID (required for rtmp-push) 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 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 on organization level. 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=invisible, 1=fully visible) 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 on organization level. description: Output format configuration required: - name - region - quality additionalProperties: false description: Engines to create for this ingest required: - name - type 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: Target latency in seconds 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 allowNativeApps: type: boolean description: Whether native apps are allowed description: Referer blocking configuration 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 required: - name additionalProperties: false description: Distributions to create for the channel (endpoints will be auto-configured) required: - name additionalProperties: false 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: - stopped - deploying - starting - waiting - ingesting - playing - stopping - error - deleting - deleted description: Current status of the channel externalId: type: string description: External identifier timeout: type: number description: Timeout in seconds ads: type: object properties: enabled: type: boolean description: Whether ads are enabled settings: type: object properties: assetKey: type: string description: DAI asset key layout: type: string enum: - SINGLE - DOUBLE - LSHAPE_AD - LSHAPE_CONTENT description: Ad layout type enableBumperAds: type: boolean description: Whether bumper ads are enabled podDuration: type: number description: Pod duration in seconds customAdTagParameters: type: object additionalProperties: type: string description: Custom ad tag parameters required: - assetKey - layout description: Ad settings (required when enabled is true) required: - enabled description: 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 uuids: type: array items: type: string format: uuid description: Array of instream metadata 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 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=invisible, 1=fully visible) required: - url description: Image overlay configuration drm: type: boolean description: Whether DRM is enabled 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 on organization level. description: Output format 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 CustomEndpointListResult: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomEndpoint' description: List of custom endpoints required: - data securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: API Secret