Stream product:video API

The product:video API from Stream — 121 operation(s) for product:video.

OpenAPI Specification

stream-io-product-video-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Stream product:chat product:video API
  version: v228.3.0
servers:
- description: Stream API
  url: https://chat.stream-io-api.com
security:
- JWT: []
  api_key: []
  stream-auth-type: []
- api_key: []
  stream-auth-type: []
tags:
- name: product:video
paths:
  /api/v2/video/active_calls_status:
    get:
      description: 'Get the current status of all active calls including metrics and summary information

        '
      operationId: GetActiveCallsStatus
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetActiveCallsStatusResponse'
          description: GetActiveCallsStatusResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Get active calls status
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}:
    get:
      description: '

        '
      operationId: GetCall
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      - in: query
        name: members_limit
        schema:
          format: int32
          maximum: 100
          minimum: 0
          type: integer
          writeOnly: true
          x-stream-index: '004'
      - in: query
        name: ring
        schema:
          type: boolean
          writeOnly: true
          x-stream-index: '005'
      - in: query
        name: notify
        schema:
          type: boolean
          writeOnly: true
          x-stream-index: '006'
      - in: query
        name: video
        schema:
          type: boolean
          writeOnly: true
          x-stream-index: '007'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCallResponse'
          description: GetCallResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Get Call
      tags:
      - product:video
    patch:
      description: '


        Sends events:

        - call.updated

        '
      operationId: UpdateCall
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCallRequest'
        description: UpdateCallRequest
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCallResponse'
          description: UpdateCallResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Update Call
      tags:
      - product:video
    post:
      description: 'Gets or creates a new call


        Sends events:

        - call.created

        - call.notification

        - call.ring

        '
      operationId: GetOrCreateCall
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetOrCreateCallRequest'
        description: GetOrCreateCallRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOrCreateCallResponse'
          description: GetOrCreateCallResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Get or create a call
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/{session}/recordings/{filename}:
    delete:
      description: 'Deletes recording

        '
      operationId: DeleteRecording
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      - in: path
        name: session
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '003'
      - in: path
        name: filename
        required: true
        schema:
          maxLength: 256
          type: string
          writeOnly: true
          x-stream-index: '004'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteRecordingResponse'
          description: DeleteRecordingResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Delete recording
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/{session}/transcriptions/{filename}:
    delete:
      description: 'Deletes transcription

        '
      operationId: DeleteTranscription
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      - in: path
        name: session
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '003'
      - in: path
        name: filename
        required: true
        schema:
          maxLength: 256
          type: string
          writeOnly: true
          x-stream-index: '004'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteTranscriptionResponse'
          description: DeleteTranscriptionResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Delete transcription
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/block:
    post:
      description: 'Block a user, preventing them from joining the call until they are unblocked.


        Sends events:

        - call.blocked_user

        '
      operationId: BlockUser
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlockUserRequest'
        description: BlockUserRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockUserResponse'
          description: BlockUserResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Block user on a call
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/closed_captions:
    post:
      description: 'Sends a closed caption event to the call


        Sends events:

        - call.closed_caption

        '
      operationId: SendClosedCaption
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendClosedCaptionRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendClosedCaptionResponse'
          description: Successful response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Send closed caption
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/delete:
    post:
      description: '


        Sends events:

        - call.deleted

        '
      operationId: DeleteCall
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteCallRequest'
        description: DeleteCallRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteCallResponse'
          description: DeleteCallResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Delete Call
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/event:
    post:
      description: 'Sends custom event to the call


        Sends events:

        - custom

        '
      operationId: SendCallEvent
      parameters:
      - in: path
        name: type
        required: true
        schema:
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendCallEventRequest'
        description: SendCallEventRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendCallEventResponse'
          description: SendCallEventResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Send custom event
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/feedback:
    post:
      description: '


        Sends events:

        - call.user_feedback_submitted

        '
      operationId: CollectUserFeedback
      parameters:
      - in: path
        name: type
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectUserFeedbackRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectUserFeedbackResponse'
          description: Response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Collect user feedback
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/go_live:
    post:
      description: '


        Sends events:

        - call.live_started

        '
      operationId: GoLive
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoLiveRequest'
        description: GoLiveRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoLiveResponse'
          description: Response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Set call as live
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/kick:
    post:
      description: 'Kicks a user from the call. Optionally block the user from rejoining by setting block=true.


        Sends events:

        - call.blocked_user

        - call.kicked_user

        '
      operationId: KickUser
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KickUserRequest'
        description: KickUserRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KickUserResponse'
          description: KickUserResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Kick user from a call
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/mark_ended:
    post:
      description: '


        Sends events:

        - call.ended

        '
      operationId: EndCall
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndCallResponse'
          description: EndCallResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: End call
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/members:
    post:
      description: '


        Sends events:

        - call.member_added

        - call.member_removed

        - call.member_updated

        '
      operationId: UpdateCallMembers
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCallMembersRequest'
        description: UpdateCallMembersRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCallMembersResponse'
          description: Response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Update Call Member
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/mute_users:
    post:
      description: 'Mutes users in a call

        '
      operationId: MuteUsers
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '002.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '002.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MuteUsersRequest'
        description: MuteUsersRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MuteUsersResponse'
          description: MuteUsersResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Mute users
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/participants:
    post:
      description: 'Returns a list of participants connected to the call

        '
      operationId: QueryCallParticipants
      parameters:
      - in: path
        name: id
        required: true
        schema:
          maxLength: 255
          type: string
          writeOnly: true
          x-stream-index: '001'
      - in: path
        name: type
        required: true
        schema:
          maxLength: 255
          type: string
          writeOnly: true
          x-stream-index: '002'
      - in: query
        name: limit
        schema:
          format: int32
          maximum: 100
          type: integer
          x-stream-index: '004'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryCallParticipantsRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryCallParticipantsResponse'
          description: Successful response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Query call participants
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/pin:
    post:
      description: 'Pins a track for all users in the call.

        '
      operationId: VideoPin
      parameters:
      - in: path
        name: type
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PinRequest'
        description: PinRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PinResponse'
          description: Response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Pin
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/recordings:
    get:
      description: 'Lists recordings

        '
      operationId: ListRecordings
      parameters:
      - in: path
        name: type
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListRecordingsResponse'
          description: ListRecordingsResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: List recordings
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/recordings/{recording_type}/start:
    post:
      description: 'Starts recording


        Sends events:

        - call.recording_started

        '
      operationId: StartRecording
      parameters:
      - in: path
        name: type
        required: true
        schema:
          description: The type of call
          maxLength: 64
          title: Type
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          description: Call ID
          maxLength: 64
          title: ID
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      - in: path
        name: recording_type
        required: true
        schema:
          description: 'Type of recording to start. One of: all, composite, individual, raw'
          enum:
          - composite
          - individual
          - raw
          title: Recording Type
          type: string
          x-stream-index: '004'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartRecordingRequest'
        description: StartRecordingRequest
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartRecordingResponse'
          description: StartRecordingResponse
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Start recording
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/recordings/{recording_type}/stop:
    post:
      description: 'Stops recording


        Sends events:

        - call.recording_stopped

        '
      operationId: StopRecording
      parameters:
      - in: path
        name: type
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      - in: path
        name: recording_type
        required: true
        schema:
          enum:
          - composite
          - individual
          - raw
          type: string
          x-stream-index: '003'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StopRecordingRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StopRecordingResponse'
          description: Response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Bad request
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          description: Too many requests
      summary: Stop recording
      tags:
      - product:video
  /api/v2/video/call/{type}/{id}/report:
    get:
      description: '

        '
      operationId: GetCallReport
      parameters:
      - in: path
        name: type
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.001'
      - in: path
        name: id
        required: true
        schema:
          maxLength: 64
          type: string
          writeOnly: true
          x-stream-index: '001.002'
      - in: query
        name: session_id
        schema:
          type: string
          writeOnly: true
          x-stream-index: '002'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCallReportResponse'
          description: Response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
          descriptio

# --- truncated at 32 KB (429 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stream-io/refs/heads/main/openapi/stream-io-product-video-api-openapi.yml