Red5 Provision API

Stream provisioning, authentication, and configuration

OpenAPI Specification

red5-provision-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Red5 Pro Brew Mixer Admin Provision API
  description: The Red5 Pro Brew Mixer API is a REST interface for the Cauldron Media Engine that enables dynamic composition of multiple live video and audio streams into a single mixed output stream. It supports creating and managing mixers, controlling input sources and layout, and producing composite streams for broadcasting. The API provides both v1 and v2 endpoints for mixer lifecycle management and image overlay control, making it useful for virtual events, live production, and multi-participant streaming scenarios.
  version: '2.0'
  contact:
    name: Red5 Support
    url: https://www.red5.net/contact/
  termsOfService: https://www.red5.net/terms/
servers:
- url: http://{host}:5080
  description: Red5 Pro Server with Brew Mixer
  variables:
    host:
      default: localhost
      description: Hostname or IP address of the Red5 Pro server
security:
- accessToken: []
tags:
- name: Provision
  description: Stream provisioning, authentication, and configuration
paths:
  /streams/provision/{nodeGroupName}/{streamGuid}:
    get:
      operationId: getStreamProvision
      summary: Get Stream Provision
      description: Retrieves the provisioning configuration for a specific stream including authentication settings, cloud recording configuration, and transcoding parameters.
      tags:
      - Provision
      parameters:
      - $ref: '#/components/parameters/nodeGroupNameParam'
      - $ref: '#/components/parameters/streamGuidParam'
      responses:
        '200':
          description: Stream provision returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamProvision'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: createStreamProvision
      summary: Create Stream Provision
      description: Creates a provisioning configuration for a stream, setting up authentication credentials, cloud storage for recordings, transcoding ladder settings, and other stream-level parameters before publishing begins.
      tags:
      - Provision
      parameters:
      - $ref: '#/components/parameters/nodeGroupNameParam'
      - $ref: '#/components/parameters/streamGuidParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StreamProvision'
      responses:
        '201':
          description: Stream provision created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StreamProvision'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteStreamProvision
      summary: Delete Stream Provision
      description: Removes the provisioning configuration for a stream, clearing authentication settings, cloud recording configuration, and transcoding parameters.
      tags:
      - Provision
      parameters:
      - $ref: '#/components/parameters/nodeGroupNameParam'
      - $ref: '#/components/parameters/streamGuidParam'
      responses:
        '200':
          description: Stream provision deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    StreamProvision:
      type: object
      description: Provisioning configuration for a stream
      properties:
        streamGuid:
          type: string
          description: Unique identifier for the stream
        username:
          type: string
          description: Publisher authentication username
        password:
          type: string
          description: Publisher authentication password
        recording:
          type: boolean
          description: Whether to enable cloud recording for this stream
        transcodeEnabled:
          type: boolean
          description: Whether to enable adaptive bitrate transcoding
        transcodeLadder:
          type: array
          description: List of transcode output variants
          items:
            $ref: '#/components/schemas/TranscodeVariant'
    Error:
      type: object
      description: Error response
      properties:
        code:
          type: integer
          description: HTTP status code
        message:
          type: string
          description: Human-readable error message
    TranscodeVariant:
      type: object
      description: A single output variant in the transcoding ladder
      properties:
        level:
          type: string
          description: Variant level name (e.g., low, mid, high)
        videoWidth:
          type: integer
          description: Output video width in pixels
        videoHeight:
          type: integer
          description: Output video height in pixels
        videoBitrate:
          type: integer
          description: Output video bitrate in bits per second
        audioBitrate:
          type: integer
          description: Output audio bitrate in bits per second
  responses:
    NotFound:
      description: The requested resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Request body or parameters are invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication failed or bearer token is missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    nodeGroupNameParam:
      name: nodeGroupName
      in: path
      description: Name of the node group (cluster) to target
      required: true
      schema:
        type: string
    streamGuidParam:
      name: streamGuid
      in: path
      description: Unique identifier (GUID) for the stream
      required: true
      schema:
        type: string
  securitySchemes:
    accessToken:
      type: apiKey
      in: query
      name: accessToken
      description: API access token for authenticating Brew Mixer API requests
externalDocs:
  description: Red5 Pro Brew Mixer API Documentation
  url: https://www.red5.net/docs/red5-pro/development/api/mixer/brew-mixer-api/