Dolby.io website screenshot

Dolby.io

Dolby.io (now branded as Dolby OptiView) is Dolby Laboratories' developer platform for media, streaming, communications, and advertising APIs. Originally launched as a hub for Dolby's audio and video processing services (Media APIs, Communications APIs), the platform has consolidated around three OptiView pillars — Real-time Streaming (formerly Millicast), Live Streaming (formerly THEOlive), and Playback (formerly THEOplayer) — with an Advertising pillar built on Server-Guided Ad Insertion. The platform powers live sports streaming for the NFL, NASCAR, Paddy Power, and other large broadcasters, with sub-500ms WebRTC delivery, multi-format ingest (WHIP/WHEP, SRT, RTMP), and cross-platform playback SDKs.

6 APIs 20 Features
MediaStreamingReal-time StreamingWebRTCLive StreamingLow LatencyVideoAudioBroadcastPlayerAdvertisingDolby OptiViewMillicastTHEOliveTHEOplayer

APIs

Dolby OptiView Real-time Streaming API

Real-time WebRTC streaming platform (formerly Millicast). Manage publish and subscribe tokens, configure webhook delivery for feeds, recordings, thumbnails, transcoders, and vie...

Dolby OptiView Live (THEOlive) API

Low-latency live streaming API (formerly THEOlive). Programmatic control of Channels, Ingests (RTMP push/pull, SRT, SDI), Engines (transcoding, DRM, overlays, ABR ladders), Dist...

Dolby.io Media API

Legacy Dolby.io Media APIs for cloud-based audio and video processing. Includes Enhance (noise reduction, leveling, dialog isolation), Analyze (loudness, speech metrics, diagnos...

Dolby.io Communications API

Legacy Communications APIs for high-quality WebRTC voice and video conferencing with spatial audio, music mode, noise suppression, and dial-in/dial-out. Includes Client Access T...

Dolby OptiView Ads API

Server-Guided Ad Insertion (SGAI) for live streaming. The Signaling Service enriches origin manifests with advanced ad-break markers and integrates with Google Ad Manager for ad...

Dolby OptiView Player SDK (THEOplayer)

Cross-platform video player (formerly THEOplayer) with SDKs for Web, Android, iOS & tvOS, React Native, Flutter, Chromecast, and Roku. Supports HLS, MPEG-DASH, DRM, advertising ...

Collections

Arazzo Workflows

Dolby OptiView Attach Ingest and Engine then Go Live

Add an ingest and a transcoding engine to a channel, start it, and poll until playing.

ARAZZO

Dolby OptiView Audit Channel Run History

Resolve a channel, list its engine runs, and pull its transcoding-minutes analytics.

ARAZZO

Dolby OptiView Enable Recording Webhook and Token

Register a recording webhook, then create a publish token that records its streams.

ARAZZO

Dolby OptiView Inspect an Engine's Last Run

Pick an engine on a channel, fetch its most recent run, then list its full run history.

ARAZZO

Dolby OptiView Provision and Start a Channel

Create a THEOlive channel, start it, and poll until it is live and playing.

ARAZZO

Dolby OptiView Provision a Broadcast Token with Cluster

Discover the account cluster, create a publish token, then read it back to confirm.

ARAZZO

Dolby OptiView Provision a Viewer Token

Create a geo-restricted subscribe token for a stream, then read it back to confirm.

ARAZZO

Dolby OptiView Publish a Secured Distribution

Create a distribution for a channel and attach a token security key to protect playback.

ARAZZO

Dolby OptiView Start a Single Engine and Confirm

Select an engine on a channel, start it, and poll the engine until it is playing.

ARAZZO

Dolby OptiView Stop a Channel and Confirm Idle

Stop a running channel and poll until it has fully settled in the stopped state.

ARAZZO

Dolby OptiView Tear Down a Channel

Stop a channel, poll until it is fully stopped, then delete it.

ARAZZO

GraphQL

Pricing Plans

Dolby Io Plans Pricing

4 plans

PLANS

Rate Limits

Dolby Io Rate Limits

4 limits

RATE LIMITS

FinOps

Features

OptiView Real-time Streaming (Millicast) — sub-500ms WebRTC streaming to 100k+ viewers
WHIP and WHEP protocol support for standards-based publish and playback
Multi-protocol ingest — WebRTC, SRT, RTMP, RTMPS
Video codec support — H.264, H.265, VP8, VP9, AV1; Opus audio
Publish and Subscribe token APIs with regex stream names, geo restrictions, IP binding
Webhooks for feeds, recordings, thumbnails, transcoders, and viewer connections (HMAC-SHA1 signed)
Account-level analytics — publish minutes, viewer minutes, bytes transferred
OptiView Live (THEOlive) — live channels with low latency, Nielsen tracking, DRM, server-side ads
Channels, Ingests, Engines, Distributions resource model with full REST and GraphQL surfaces
Server-Guided Ad Insertion (SGAI) with Google Ad Manager integration
OptiView Player SDKs — Web, Android, iOS/tvOS, React Native, Flutter, Chromecast, Roku
Open Video UI component library for player customization
Legacy Media APIs — Enhance, Analyze, Transcode, Diagnose, Music Mastering
Legacy Communications APIs — WebRTC conferencing, spatial audio, recording, RTMP/HLS streaming
Official REST API client SDKs for Node.js, Python, and .NET
Real-time Streaming UI Kit for iOS (Swift)
WebRTC statistics parser for browser-side diagnostics
Region presence across US East/West, Europe, Asia-Pacific, and South America
Bearer-token authentication via per-account API Secrets
Status page tracking core services and regional infrastructure

Semantic Vocabularies

Dolby Io Context

0 classes · 8 properties

JSON-LD

API Governance Rules

Dolby.io API Rules

8 rules · 3 errors 5 warnings

SPECTRAL

Example Payloads

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🌐
Portal
Portal
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
📝
Signup
Signup
🟢
StatusPage
StatusPage
💰
Pricing
Pricing
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
🔗
TrustCenter
TrustCenter
👥
GitHubOrganization
GitHubOrganization
👥
GitHubOrganization
GitHubOrganization
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔧
Tools
Tools
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
🔧
Tools
Tools
🔗
Forums
Forums
🔗
Webhooks
Webhooks
📄
ChangeLog
ChangeLog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Dolby OptiView THEOlive API
  version: v2
request:
  auth:
    type: basic
    username: '{{username}}'
    password: '{{password}}'
items:
- info:
    name: Channels
    type: folder
  items:
  - info:
      name: Get all channels
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels
      params:
      - name: externalId
        value: ''
        type: query
        description: Filter by external ID
      - name: cursor
        value: ''
        type: query
        description: Pagination cursor
      - name: limit
        value: ''
        type: query
        description: Maximum number of channels to return (max 100)
      - name: name
        value: ''
        type: query
        description: Filter by channel name
      - name: search
        value: ''
        type: query
        description: Search channels based on ID or name
      - name: status
        value: ''
        type: query
        description: Comma-separated list of statuses to filter by
      - name: id
        value: ''
        type: query
        description: Filter by channel ID
    docs: Get all channels
  - info:
      name: Create a new channel
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/channels
      body:
        type: json
        data: '{}'
    docs: Create a new channel
  - info:
      name: Get a channel by ID
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: include
        value: ''
        type: query
        description: 'Comma-separated list of related resources to include. Valid values: ingests, distributions, engines'
    docs: Get a channel by ID
  - info:
      name: Update a channel by ID
      type: http
    http:
      method: PATCH
      url: https://api.theo.live/v2/channels/:id
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      body:
        type: json
        data: '{}'
    docs: Update a channel by ID
  - info:
      name: Delete a channel by ID
      type: http
    http:
      method: DELETE
      url: https://api.theo.live/v2/channels/:id
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
    docs: Delete a channel by ID
  - info:
      name: Start a channel (will start all connected engines)
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/channels/:id/start
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
    docs: Start a channel (will start all connected engines)
  - info:
      name: Stop a channel (will stop all connected engines)
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/channels/:id/stop
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
    docs: Stop a channel (will stop all connected engines)
  - info:
      name: Get ingests of a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/ingests
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: cursor
        value: ''
        type: query
        description: Pagination cursor
      - name: limit
        value: ''
        type: query
        description: Maximum number of items to return (max 100)
    docs: Get ingests of a channel
  - info:
      name: Create an ingest for a channel
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/channels/:id/ingests
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      body:
        type: json
        data: '{}'
    docs: Create an ingest for a channel
  - info:
      name: Get engines of a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/engines
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: cursor
        value: ''
        type: query
        description: Pagination cursor
      - name: limit
        value: ''
        type: query
        description: Maximum number of items to return (max 100)
    docs: Get engines of a channel
  - info:
      name: Create an engine for a channel
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/channels/:id/engines
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      body:
        type: json
        data: '{}'
    docs: Create an engine for a channel
  - info:
      name: Get distributions of a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/distributions
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: cursor
        value: ''
        type: query
        description: Pagination cursor
      - name: limit
        value: ''
        type: query
        description: Maximum number of items to return (max 100)
    docs: Get distributions of a channel
  - info:
      name: Create a distribution for a channel
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/channels/:id/distributions
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      body:
        type: json
        data: '{}'
    docs: Create a distribution for a channel
  - info:
      name: Send instream metadata for a channel
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/channels/:id/instream-metadata/:uuid
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: uuid
        value: ''
        type: path
        description: Instream metadata UUID
    docs: Send instream metadata for a channel
  - info:
      name: Get engine runs of a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/runs
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: cursor
        value: ''
        type: query
        description: Pagination cursor
      - name: limit
        value: ''
        type: query
        description: Maximum number of runs to return
      - name: start
        value: ''
        type: query
        description: Filter runs starting after this timestamp
      - name: end
        value: ''
        type: query
        description: Filter runs ending before this timestamp
      - name: engineIds
        value: ''
        type: query
        description: Comma-separated list of engine IDs to filter by
    docs: Get engine runs of a channel
  - info:
      name: Get transcoding minutes analytics for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/transcoding-minutes
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: groupBy
        value: ''
        type: query
        description: Group results by engine or channel
      - name: resolution
        value: ''
        type: query
        description: Time resolution for the analytics data
      - name: engineIds
        value: ''
        type: query
        description: Comma-separated list of engine IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get transcoding minutes analytics for a channel
  - info:
      name: Get viewing minutes analytics for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/viewing-minutes
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: groupBy
        value: ''
        type: query
        description: Group results by channel, distribution, or streaming format
      - name: resolution
        value: ''
        type: query
        description: Time resolution for the analytics data
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get viewing minutes analytics for a channel
  - info:
      name: Get bytes transferred analytics for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/bytes-transferred
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: groupBy
        value: ''
        type: query
        description: Group results by channel, distribution, or streaming format
      - name: resolution
        value: ''
        type: query
        description: Time resolution for the analytics data
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get bytes transferred analytics for a channel
  - info:
      name: Get viewing minutes grouped by browser for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/viewing-minutes/browsers
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get viewing minutes grouped by browser for a channel
  - info:
      name: Get viewing minutes grouped by country for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/viewing-minutes/countries
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get viewing minutes grouped by country for a channel
  - info:
      name: Get bytes transferred grouped by browser for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/bytes-transferred/browsers
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get bytes transferred grouped by browser for a channel
  - info:
      name: Get bytes transferred grouped by country for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/bytes-transferred/countries
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get bytes transferred grouped by country for a channel
  - info:
      name: Get country insights for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/insights/countries
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: period
        value: ''
        type: query
        description: Time period for the insights
      - name: channelIds
        value: ''
        type: query
        description: Comma-separated list of channel IDs to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
    docs: Data is only available for the last 30 days.
  - info:
      name: Get browser and OS insights for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/insights/browsers-os
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: period
        value: ''
        type: query
        description: Time period for the insights
      - name: channelIds
        value: ''
        type: query
        description: Comma-separated list of channel IDs to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
    docs: Data is only available for the last 30 days.
  - info:
      name: Get viewer count insights for a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/analytics/insights/viewers
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      - name: period
        value: ''
        type: query
        description: Time period for the insights
      - name: channelIds
        value: ''
        type: query
        description: Comma-separated list of channel IDs to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
    docs: Data is only available for the last 30 days.
  - info:
      name: List all custom endpoints of a channel
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/channels/:id/custom-endpoints
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
    docs: List all custom endpoints of a channel
  - info:
      name: Create a custom endpoint on a channel
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/channels/:id/custom-endpoints
      params:
      - name: id
        value: ''
        type: path
        description: Channel ID
      body:
        type: json
        data: '{}'
    docs: Create a custom endpoint on a channel
- info:
    name: Ingests
    type: folder
  items:
  - info:
      name: Get an ingest by ID
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/ingests/:id
      params:
      - name: id
        value: ''
        type: path
        description: Ingest ID
    docs: Get an ingest by ID
  - info:
      name: Update an ingest by ID
      type: http
    http:
      method: PATCH
      url: https://api.theo.live/v2/ingests/:id
      params:
      - name: id
        value: ''
        type: path
        description: Ingest ID
      body:
        type: json
        data: '{}'
    docs: Update an ingest by ID
  - info:
      name: Delete an ingest by ID
      type: http
    http:
      method: DELETE
      url: https://api.theo.live/v2/ingests/:id
      params:
      - name: id
        value: ''
        type: path
        description: Ingest ID
    docs: Delete an ingest by ID
  - info:
      name: Get engines of an ingest
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/ingests/:id/engines
      params:
      - name: id
        value: ''
        type: path
        description: Ingest ID
    docs: Get engines of an ingest
  - info:
      name: Create an engine for an ingest
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/ingests/:id/engines
      params:
      - name: id
        value: ''
        type: path
        description: Ingest ID
      body:
        type: json
        data: '{}'
    docs: Create an engine for an ingest
- info:
    name: Engines
    type: folder
  items:
  - info:
      name: Get an engine by ID
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/engines/:id
      params:
      - name: id
        value: ''
        type: path
        description: Engine ID
    docs: Get an engine by ID
  - info:
      name: Update an engine by ID
      type: http
    http:
      method: PATCH
      url: https://api.theo.live/v2/engines/:id
      params:
      - name: id
        value: ''
        type: path
        description: Engine ID
      body:
        type: json
        data: '{}'
    docs: Update an engine by ID
  - info:
      name: Delete an engine by ID
      type: http
    http:
      method: DELETE
      url: https://api.theo.live/v2/engines/:id
      params:
      - name: id
        value: ''
        type: path
        description: Engine ID
    docs: Delete an engine by ID
  - info:
      name: Start an engine
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/engines/:id/start
      params:
      - name: id
        value: ''
        type: path
        description: Engine ID
    docs: Start an engine
  - info:
      name: Stop an engine
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/engines/:id/stop
      params:
      - name: id
        value: ''
        type: path
        description: Engine ID
    docs: Stop an engine
  - info:
      name: Get the last run of an engine
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/engines/:id/last-run
      params:
      - name: id
        value: ''
        type: path
        description: Engine ID
    docs: Get the last run of an engine
  - info:
      name: Get runs of an engine
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/engines/:id/runs
      params:
      - name: id
        value: ''
        type: path
        description: Engine ID
    docs: Get runs of an engine
- info:
    name: Distributions
    type: folder
  items:
  - info:
      name: Get a distribution by ID
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
    docs: Get a distribution by ID
  - info:
      name: Update a distribution by ID
      type: http
    http:
      method: PATCH
      url: https://api.theo.live/v2/distributions/:id
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      body:
        type: json
        data: '{}'
    docs: Update a distribution by ID
  - info:
      name: Delete a distribution by ID
      type: http
    http:
      method: DELETE
      url: https://api.theo.live/v2/distributions/:id
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
    docs: Delete a distribution by ID
  - info:
      name: Get security keys of a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/security/keys
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
    docs: Get security keys of a distribution
  - info:
      name: Add a security key to a distribution
      type: http
    http:
      method: POST
      url: https://api.theo.live/v2/distributions/:id/security/keys
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      body:
        type: json
        data: '{}'
    docs: Add a security key to a distribution
  - info:
      name: Delete all security keys of a distribution
      type: http
    http:
      method: DELETE
      url: https://api.theo.live/v2/distributions/:id/security/keys
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
    docs: Delete all security keys of a distribution
  - info:
      name: Get a specific security key
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/security/keys/:keyId
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: keyId
        value: ''
        type: path
        description: Security key ID
    docs: Get a specific security key
  - info:
      name: Delete a specific security key
      type: http
    http:
      method: DELETE
      url: https://api.theo.live/v2/distributions/:id/security/keys/:keyId
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: keyId
        value: ''
        type: path
        description: Security key ID
    docs: Delete a specific security key
  - info:
      name: Get viewing minutes analytics for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/viewing-minutes
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: groupBy
        value: ''
        type: query
        description: Group results by channel, distribution, or streaming format
      - name: resolution
        value: ''
        type: query
        description: Time resolution for the analytics data
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get viewing minutes analytics for a distribution
  - info:
      name: Get bytes transferred analytics for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/bytes-transferred
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: groupBy
        value: ''
        type: query
        description: Group results by channel, distribution, or streaming format
      - name: resolution
        value: ''
        type: query
        description: Time resolution for the analytics data
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get bytes transferred analytics for a distribution
  - info:
      name: Get viewing minutes grouped by browser for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/viewing-minutes/browsers
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get viewing minutes grouped by browser for a distribution
  - info:
      name: Get viewing minutes grouped by country for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/viewing-minutes/countries
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get viewing minutes grouped by country for a distribution
  - info:
      name: Get bytes transferred grouped by browser for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/bytes-transferred/browsers
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get bytes transferred grouped by browser for a distribution
  - info:
      name: Get bytes transferred grouped by country for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/bytes-transferred/countries
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: start
        value: ''
        type: query
        description: Start date for the analytics period
      - name: end
        value: ''
        type: query
        description: End date for the analytics period
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: utcOffset
        value: ''
        type: query
        description: UTC offset in minutes
    docs: Get bytes transferred grouped by country for a distribution
  - info:
      name: Get country insights for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/insights/countries
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: period
        value: ''
        type: query
        description: Time period for the insights
      - name: channelIds
        value: ''
        type: query
        description: Comma-separated list of channel IDs to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
    docs: Data is only available for the last 30 days.
  - info:
      name: Get browser and OS insights for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/insights/browsers-os
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: period
        value: ''
        type: query
        description: Time period for the insights
      - name: channelIds
        value: ''
        type: query
        description: Comma-separated list of channel IDs to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comma-separated list of distribution IDs to filter by
      - name: streamingFormats
        value: ''
        type: query
        description: Comma-separated list of streaming formats to filter by
    docs: Data is only available for the last 30 days.
  - info:
      name: Get viewer count insights for a distribution
      type: http
    http:
      method: GET
      url: https://api.theo.live/v2/distributions/:id/analytics/insights/viewers
      params:
      - name: id
        value: ''
        type: path
        description: Distribution ID
      - name: period
        value: ''
        type: query
        description: Time period for the insights
      - name: channelIds
        value: ''
        type: query
        description: Comma-separated list of channel IDs to filter by
      - name: distributionIds
        value: ''
        type: query
        description: Comm

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dolby-io/refs/heads/main/apis.yml