Dolby.io Distributions API

The Distributions API from Dolby.io — 13 operation(s) for distributions.

Operations 19

GET /channels/{id}/distributions Get distributions of a channel #
POST /channels/{id}/distributions Create a distribution for a channel #
GET /distributions/{id} Get a distribution by ID #
PATCH /distributions/{id} Update a distribution by ID #
DELETE /distributions/{id} Delete a distribution by ID #
GET /distributions/{id}/security/keys Get security keys of a distribution #
POST /distributions/{id}/security/keys Add a security key to a distribution #
DELETE /distributions/{id}/security/keys Delete all security keys of a distribution #
GET /distributions/{id}/security/keys/{keyId} Get a specific security key #
DELETE /distributions/{id}/security/keys/{keyId} Delete a specific security key #
GET /distributions/{id}/analytics/viewing-minutes Get viewing minutes analytics for a distribution #
GET /distributions/{id}/analytics/bytes-transferred Get bytes transferred analytics for a distribution #
GET /distributions/{id}/analytics/viewing-minutes/browsers Get viewing minutes grouped by browser for a distribution #
GET /distributions/{id}/analytics/viewing-minutes/countries Get viewing minutes grouped by country for a distribution #
GET /distributions/{id}/analytics/bytes-transferred/browsers Get bytes transferred grouped by browser for a distribution #
GET /distributions/{id}/analytics/bytes-transferred/countries Get bytes transferred grouped by country for a distribution #
GET /distributions/{id}/analytics/insights/countries Get country insights for a distribution #
GET /distributions/{id}/analytics/insights/browsers-os Get browser and OS insights for a distribution #
GET /distributions/{id}/analytics/insights/viewers Get viewer count insights for a distribution #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dolby-io-distributions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dolby-io-distributions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dolby OptiView THEOlive Distributions API
  version: v2
  description: REST API for managing OptiView Live (THEOlive) channels, ingests, engines, distributions, analytics, and webhooks.
servers:
- url: https://api.theo.live/v2
  description: V2 API
- url: https://api.theo.live
  description: Base (for /v1 endpoints)
security:
- BasicAuth: []
tags:
- name: Distributions
paths:
  /channels/{id}/distributions:
    get:
      tags:
      - Distributions
      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
          - 'null'
          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:
      - Distributions
      operationId: create-channel-distribution
      summary: Create a distribution for a channel
      parameters:
      - schema:
          type: string
          description: Channel ID
        required: true
        description: Channel ID
        name: id
        in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDistributionBody'
      responses:
        '200':
          description: Distribution created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionObjectResult'
  /distributions/{id}:
    get:
      tags:
      - Distributions
      operationId: get-distribution
      summary: Get a distribution by ID
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      responses:
        '200':
          description: The requested distribution
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionObjectResult'
    patch:
      tags:
      - Distributions
      operationId: update-distribution
      summary: Update a distribution by ID
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDistributionBody'
      responses:
        '200':
          description: Updated distribution
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionObjectResult'
    delete:
      tags:
      - Distributions
      operationId: delete-distribution
      summary: Delete a distribution by ID
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      responses:
        '204':
          description: Empty response
  /distributions/{id}/security/keys:
    get:
      tags:
      - Distributions
      operationId: get-distribution-security-keys
      summary: Get security keys of a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      responses:
        '200':
          description: List of security keys
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionSecurityKeyListResult'
    post:
      tags:
      - Distributions
      operationId: create-distribution-security-key
      summary: Add a security key to a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDistributionSecurityKeyBody'
      responses:
        '200':
          description: Security key created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionSecurityKeyObjectResult'
    delete:
      tags:
      - Distributions
      operationId: delete-all-distribution-security-keys
      summary: Delete all security keys of a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      responses:
        '204':
          description: Empty response
  /distributions/{id}/security/keys/{keyId}:
    get:
      tags:
      - Distributions
      operationId: get-distribution-security-key
      summary: Get a specific security key
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          description: Security key ID
        required: true
        description: Security key ID
        name: keyId
        in: path
      responses:
        '200':
          description: The requested security key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionSecurityKeyObjectResult'
    delete:
      tags:
      - Distributions
      operationId: delete-distribution-security-key
      summary: Delete a specific security key
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          description: Security key ID
        required: true
        description: Security key ID
        name: keyId
        in: path
      responses:
        '204':
          description: Empty response
  /distributions/{id}/analytics/viewing-minutes:
    get:
      tags:
      - Distributions
      operationId: get-distribution-viewing-minutes
      summary: Get viewing minutes analytics for a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          description: Start date for the analytics period
        required: true
        description: Start date for the analytics period
        name: start
        in: query
      - schema:
          type: string
          description: End date for the analytics period
        required: true
        description: End date for the analytics period
        name: end
        in: query
      - schema:
          type: string
          enum:
          - channel
          - distribution
          - streaming-format
          description: Group results by channel, distribution, or streaming format
        required: false
        description: Group results by channel, distribution, or streaming format
        name: groupBy
        in: query
      - schema:
          type: string
          enum:
          - 15min
          - hour
          - day
          - month
          description: Time resolution for the analytics data
        required: true
        description: Time resolution for the analytics data
        name: resolution
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      - schema:
          type: string
          description: Comma-separated list of distribution IDs to filter by
        required: false
        description: Comma-separated list of distribution IDs to filter by
        name: distributionIds
        in: query
      - schema:
          type: string
          description: UTC offset in minutes
        required: false
        description: UTC offset in minutes
        name: utcOffset
        in: query
      responses:
        '200':
          description: Viewing minutes analytics data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsListResult'
  /distributions/{id}/analytics/bytes-transferred:
    get:
      tags:
      - Distributions
      operationId: get-distribution-bytes-transferred
      summary: Get bytes transferred analytics for a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          description: Start date for the analytics period
        required: true
        description: Start date for the analytics period
        name: start
        in: query
      - schema:
          type: string
          description: End date for the analytics period
        required: true
        description: End date for the analytics period
        name: end
        in: query
      - schema:
          type: string
          enum:
          - channel
          - distribution
          - streaming-format
          description: Group results by channel, distribution, or streaming format
        required: false
        description: Group results by channel, distribution, or streaming format
        name: groupBy
        in: query
      - schema:
          type: string
          enum:
          - 15min
          - hour
          - day
          - month
          description: Time resolution for the analytics data
        required: true
        description: Time resolution for the analytics data
        name: resolution
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      - schema:
          type: string
          description: UTC offset in minutes
        required: false
        description: UTC offset in minutes
        name: utcOffset
        in: query
      responses:
        '200':
          description: Bytes transferred analytics data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsListResult'
  /distributions/{id}/analytics/viewing-minutes/browsers:
    get:
      tags:
      - Distributions
      operationId: get-distribution-viewing-minutes-browsers
      summary: Get viewing minutes grouped by browser for a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          description: Start date for the analytics period
        required: true
        description: Start date for the analytics period
        name: start
        in: query
      - schema:
          type: string
          description: End date for the analytics period
        required: true
        description: End date for the analytics period
        name: end
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      - schema:
          type: string
          description: Comma-separated list of distribution IDs to filter by
        required: false
        description: Comma-separated list of distribution IDs to filter by
        name: distributionIds
        in: query
      - schema:
          type: string
          description: UTC offset in minutes
        required: false
        description: UTC offset in minutes
        name: utcOffset
        in: query
      responses:
        '200':
          description: Viewing minutes by browser
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewingBrowserListResult'
  /distributions/{id}/analytics/viewing-minutes/countries:
    get:
      tags:
      - Distributions
      operationId: get-distribution-viewing-minutes-countries
      summary: Get viewing minutes grouped by country for a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          description: Start date for the analytics period
        required: true
        description: Start date for the analytics period
        name: start
        in: query
      - schema:
          type: string
          description: End date for the analytics period
        required: true
        description: End date for the analytics period
        name: end
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      - schema:
          type: string
          description: Comma-separated list of distribution IDs to filter by
        required: false
        description: Comma-separated list of distribution IDs to filter by
        name: distributionIds
        in: query
      - schema:
          type: string
          description: UTC offset in minutes
        required: false
        description: UTC offset in minutes
        name: utcOffset
        in: query
      responses:
        '200':
          description: Viewing minutes by country
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewingCountryListResult'
  /distributions/{id}/analytics/bytes-transferred/browsers:
    get:
      tags:
      - Distributions
      operationId: get-distribution-bytes-transferred-browsers
      summary: Get bytes transferred grouped by browser for a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          description: Start date for the analytics period
        required: true
        description: Start date for the analytics period
        name: start
        in: query
      - schema:
          type: string
          description: End date for the analytics period
        required: true
        description: End date for the analytics period
        name: end
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      - schema:
          type: string
          description: Comma-separated list of distribution IDs to filter by
        required: false
        description: Comma-separated list of distribution IDs to filter by
        name: distributionIds
        in: query
      - schema:
          type: string
          description: UTC offset in minutes
        required: false
        description: UTC offset in minutes
        name: utcOffset
        in: query
      responses:
        '200':
          description: Bytes transferred by browser
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewingBrowserListResult'
  /distributions/{id}/analytics/bytes-transferred/countries:
    get:
      tags:
      - Distributions
      operationId: get-distribution-bytes-transferred-countries
      summary: Get bytes transferred grouped by country for a distribution
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          description: Start date for the analytics period
        required: true
        description: Start date for the analytics period
        name: start
        in: query
      - schema:
          type: string
          description: End date for the analytics period
        required: true
        description: End date for the analytics period
        name: end
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      - schema:
          type: string
          description: Comma-separated list of distribution IDs to filter by
        required: false
        description: Comma-separated list of distribution IDs to filter by
        name: distributionIds
        in: query
      - schema:
          type: string
          description: UTC offset in minutes
        required: false
        description: UTC offset in minutes
        name: utcOffset
        in: query
      responses:
        '200':
          description: Bytes transferred by country
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewingCountryListResult'
  /distributions/{id}/analytics/insights/countries:
    get:
      tags:
      - Distributions
      operationId: get-distribution-insights-countries
      summary: Get country insights for a distribution
      description: Data is only available for the last 30 days.
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          enum:
          - hour
          - day
          - week
          - month
          description: Time period for the insights
        required: true
        description: Time period for the insights
        name: period
        in: query
      - schema:
          type: string
          description: Comma-separated list of channel IDs to filter by
        required: false
        description: Comma-separated list of channel IDs to filter by
        name: channelIds
        in: query
      - schema:
          type: string
          description: Comma-separated list of distribution IDs to filter by
        required: false
        description: Comma-separated list of distribution IDs to filter by
        name: distributionIds
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      responses:
        '200':
          description: Country insights data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountryInsightsListResult'
  /distributions/{id}/analytics/insights/browsers-os:
    get:
      tags:
      - Distributions
      operationId: get-distribution-insights-browsers-os
      summary: Get browser and OS insights for a distribution
      description: Data is only available for the last 30 days.
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          enum:
          - hour
          - day
          - week
          - month
          description: Time period for the insights
        required: true
        description: Time period for the insights
        name: period
        in: query
      - schema:
          type: string
          description: Comma-separated list of channel IDs to filter by
        required: false
        description: Comma-separated list of channel IDs to filter by
        name: channelIds
        in: query
      - schema:
          type: string
          description: Comma-separated list of distribution IDs to filter by
        required: false
        description: Comma-separated list of distribution IDs to filter by
        name: distributionIds
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      responses:
        '200':
          description: Browser/OS insights data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrowserOsInsightsListResult'
  /distributions/{id}/analytics/insights/viewers:
    get:
      tags:
      - Distributions
      operationId: get-distribution-insights-viewers
      summary: Get viewer count insights for a distribution
      description: Data is only available for the last 30 days.
      parameters:
      - schema:
          type: string
          description: Distribution ID
        required: true
        description: Distribution ID
        name: id
        in: path
      - schema:
          type: string
          enum:
          - hour
          - day
          - week
          - month
          description: Time period for the insights
        required: true
        description: Time period for the insights
        name: period
        in: query
      - schema:
          type: string
          description: Comma-separated list of channel IDs to filter by
        required: false
        description: Comma-separated list of channel IDs to filter by
        name: channelIds
        in: query
      - schema:
          type: string
          description: Comma-separated list of distribution IDs to filter by
        required: false
        description: Comma-separated list of distribution IDs to filter by
        name: distributionIds
        in: query
      - schema:
          type: string
          description: Comma-separated list of streaming formats to filter by
        required: false
        description: Comma-separated list of streaming formats to filter by
        name: streamingFormats
        in: query
      responses:
        '200':
          description: Viewer count insights data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewersInsightsListResult'
components:
  schemas:
    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
    DistributionObjectResult:
      type: object
      properties:
        data:
          allOf:
          - $ref: '#/components/schemas/Distribution'
          - description: Distribution object
      required:
      - data
    DistributionSecurityKeyListResult:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Security key ID
              name:
                type: string
                description: Security key name
            required:
            - id
          description: List of security keys
      required:
      - data
    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
                - 'null'
                enum:
                - tv
                - mobile
                - desktop
                - other
                - null
                description: Target device type
              sdkType:
                type:
                - string
                - 'null'
                enum:
                - native
                - web
                - null
                description: Target SDK type
              osName:
                type:
                - string
                - 'null'
                enum:
                - apple
                - android
                - windows
                - roku
                - other
                - null
                description: Target OS name
              profileId:
                type:
                - string
                - 'null'
                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

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