Dolby.io Custom Endpoints API

The Custom Endpoints API from Dolby.io — 2 operation(s) for custom endpoints.

OpenAPI Specification

dolby-io-custom-endpoints-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Dolby OptiView Real-time Streaming ABR Ladders Custom Endpoints 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: Custom Endpoints
paths:
  /channels/{id}/custom-endpoints:
    post:
      tags:
      - Custom Endpoints
      operationId: create-custom-endpoint
      summary: Create a custom endpoint on a channel
      parameters:
      - schema:
          type: string
          description: Channel ID
        required: true
        description: Channel ID
        name: id
        in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomEndpointBody'
      responses:
        '200':
          description: Created custom endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomEndpointObjectResult'
    get:
      tags:
      - Custom Endpoints
      operationId: get-channel-custom-endpoints
      summary: List all custom endpoints of a channel
      parameters:
      - schema:
          type: string
          description: Channel ID
        required: true
        description: Channel ID
        name: id
        in: path
      responses:
        '200':
          description: List of custom endpoints
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomEndpointListResult'
  /custom-endpoints/{id}:
    get:
      tags:
      - Custom Endpoints
      operationId: get-custom-endpoint
      summary: Get a custom endpoint by ID
      parameters:
      - schema:
          type: string
          description: Custom Endpoint ID
        required: true
        description: Custom Endpoint ID
        name: id
        in: path
      responses:
        '200':
          description: The requested custom endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomEndpointObjectResult'
    patch:
      tags:
      - Custom Endpoints
      operationId: update-custom-endpoint
      summary: Update a custom endpoint
      parameters:
      - schema:
          type: string
          description: Custom Endpoint ID
        required: true
        description: Custom Endpoint ID
        name: id
        in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomEndpointBody'
      responses:
        '200':
          description: Updated custom endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomEndpointObjectResult'
    delete:
      tags:
      - Custom Endpoints
      operationId: delete-custom-endpoint
      summary: Delete a custom endpoint
      parameters:
      - schema:
          type: string
          description: Custom Endpoint ID
        required: true
        description: Custom Endpoint ID
        name: id
        in: path
      responses:
        '204':
          description: Empty response
components:
  schemas:
    UpdateCustomEndpointBody:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: Name of the custom endpoint
        src:
          type: string
          minLength: 1
          description: Source URL
        srcType:
          type: string
          enum:
          - hesp
          - hls
          - dash
          description: Source type (hesp, hls or dash)
        provider:
          type: string
          minLength: 1
          description: Provider name (must be configured for the organization)
        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: Optional DRM configuration
        cdn:
          type: string
          minLength: 1
          pattern: ^[a-zA-Z0-9]+$
          description: CDN identifier
        priority:
          type: integer
          description: Priority (lower is higher priority)
      additionalProperties: false
    CustomEndpointObjectResult:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CustomEndpoint'
      required:
      - data
    CustomEndpoint:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier
        createdAt:
          type: string
          description: Creation timestamp
        updatedAt:
          type: string
          description: Last update timestamp
        organizationId:
          type: string
          description: Organization ID
        channelId:
          type: string
          description: Channel ID
        name:
          type: string
          description: Name
        src:
          type: string
          description: Source URL
        srcType:
          type: string
          enum:
          - hesp
          - hls
          - dash
          description: Source type
        provider:
          type: string
          description: Provider
        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
    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
    CustomEndpointListResult:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomEndpoint'
          description: List of custom endpoints
      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
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Secret