Stream product:video API

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

Operations 143

GET /api/v2/video/active_calls_status Get active calls status #
GET /api/v2/video/call/{type}/{id} Get Call #
PATCH /api/v2/video/call/{type}/{id} Update Call #
POST /api/v2/video/call/{type}/{id} Get or create a call #
DELETE /api/v2/video/call/{type}/{id}/{session}/recordings/{filename} Delete recording #
DELETE /api/v2/video/call/{type}/{id}/{session}/transcriptions/{filename} Delete transcription #
POST /api/v2/video/call/{type}/{id}/block Block user on a call #
POST /api/v2/video/call/{type}/{id}/closed_captions Send closed caption #
POST /api/v2/video/call/{type}/{id}/delete Delete Call #
POST /api/v2/video/call/{type}/{id}/event Send custom event #
POST /api/v2/video/call/{type}/{id}/feedback Collect user feedback #
POST /api/v2/video/call/{type}/{id}/go_live Set call as live #
POST /api/v2/video/call/{type}/{id}/kick Kick user from a call #
POST /api/v2/video/call/{type}/{id}/mark_ended End call #
POST /api/v2/video/call/{type}/{id}/members Update Call Member #
POST /api/v2/video/call/{type}/{id}/mute_users Mute users #
POST /api/v2/video/call/{type}/{id}/participants Query call participants #
POST /api/v2/video/call/{type}/{id}/pin Pin #
GET /api/v2/video/call/{type}/{id}/recordings List recordings #
POST /api/v2/video/call/{type}/{id}/recordings/{recording_type}/start Start recording #
POST /api/v2/video/call/{type}/{id}/recordings/{recording_type}/stop Stop recording #
GET /api/v2/video/call/{type}/{id}/report Get call report #
POST /api/v2/video/call/{type}/{id}/ring Ring Call Users #
POST /api/v2/video/call/{type}/{id}/rtmp_broadcasts Start RTMP broadcasts #
POST /api/v2/video/call/{type}/{id}/rtmp_broadcasts/{name}/stop Stop RTMP broadcasts #
POST /api/v2/video/call/{type}/{id}/rtmp_broadcasts/stop Stop all RTMP broadcasts for a call #
GET /api/v2/video/call/{type}/{id}/session/{session}/participant/{user}/{user_session}/details/track Get call participant session metrics #
GET /api/v2/video/call/{type}/{id}/session/{session}/participant_sessions Query call participant sessions #
POST /api/v2/video/call/{type}/{id}/start_broadcasting Start HLS broadcasting #
POST /api/v2/video/call/{type}/{id}/start_closed_captions Start closed captions #
POST /api/v2/video/call/{type}/{id}/start_frame_recording Start frame recording #
POST /api/v2/video/call/{type}/{id}/start_transcription Start transcription #
POST /api/v2/video/call/{type}/{id}/stop_broadcasting Stop HLS broadcasting #
POST /api/v2/video/call/{type}/{id}/stop_closed_captions Stop closed captions #
POST /api/v2/video/call/{type}/{id}/stop_frame_recording Stop frame recording #
POST /api/v2/video/call/{type}/{id}/stop_live Set call as not live #
POST /api/v2/video/call/{type}/{id}/stop_transcription Stop transcription #
GET /api/v2/video/call/{type}/{id}/transcriptions List transcriptions #
POST /api/v2/video/call/{type}/{id}/unblock Unblocks user on a call #
POST /api/v2/video/call/{type}/{id}/unpin Unpin #
POST /api/v2/video/call/{type}/{id}/user_permissions Update user permissions #
POST /api/v2/video/call/feedback Query user reported feedback for the calls #
POST /api/v2/video/call/members Query call members #
POST /api/v2/video/call/stats Query Call Stats #
POST /api/v2/video/call_stats Query call session stats #
GET /api/v2/video/call_stats/{call_type}/{call_id}/{session}/map Map call participants by location #
GET /api/v2/video/call_stats/{call_type}/{call_id}/{session}/participant/{user}/{user_session}/details Get call session participant stats details #
GET /api/v2/video/call_stats/{call_type}/{call_id}/{session}/participants Query call participant statistics #
GET /api/v2/video/call_stats/{call_type}/{call_id}/{session}/participants/{user}/{user_session}/timeline Get participant timeline events #
POST /api/v2/video/calls Query call #
GET /api/v2/video/calltypes List Call Type #
POST /api/v2/video/calltypes Create Call Type #
DELETE /api/v2/video/calltypes/{name} Delete Call Type #
GET /api/v2/video/calltypes/{name} Get Call Type #
PUT /api/v2/video/calltypes/{name} Update Call Type #
GET /api/v2/video/edges Get Edges #
POST /api/v2/video/sip/auth Resolve SIP Auth #
GET /api/v2/video/sip/inbound_routing_rules List SIP Inbound Routing Rules #
POST /api/v2/video/sip/inbound_routing_rules Create SIP Inbound Routing Rule #
DELETE /api/v2/video/sip/inbound_routing_rules/{id} Delete SIP Inbound Routing Rule #
PUT /api/v2/video/sip/inbound_routing_rules/{id} Update SIP Inbound Routing Rule #
GET /api/v2/video/sip/inbound_trunks List SIP Trunks #
POST /api/v2/video/sip/inbound_trunks Create SIP Trunk #
DELETE /api/v2/video/sip/inbound_trunks/{id} Delete SIP Trunk #
PUT /api/v2/video/sip/inbound_trunks/{id} Update SIP Trunk #
POST /api/v2/video/sip/resolve Resolve SIP Inbound Routing #
POST /api/v2/video/stats Query Aggregate call Stats #
GET /video/active_calls_status Get active calls status #
GET /video/call/{type}/{id} Get Call #
PATCH /video/call/{type}/{id} Update Call #
POST /video/call/{type}/{id} Get or create a call #
DELETE /video/call/{type}/{id}/{session}/recordings/{filename} Delete recording #
DELETE /video/call/{type}/{id}/{session}/transcriptions/{filename} Delete transcription #
POST /video/call/{type}/{id}/block Block user on a call #
POST /video/call/{type}/{id}/closed_captions Send closed caption #
POST /video/call/{type}/{id}/delete Delete Call #
POST /video/call/{type}/{id}/event Send custom event #
POST /video/call/{type}/{id}/feedback Collect user feedback #
POST /video/call/{type}/{id}/go_live Set call as live #
POST /video/call/{type}/{id}/kick Kick user from a call #
POST /video/call/{type}/{id}/mark_ended End call #
POST /video/call/{type}/{id}/members Update Call Member #
POST /video/call/{type}/{id}/mute_users Mute users #
POST /video/call/{type}/{id}/participants Query call participants #
POST /video/call/{type}/{id}/pin Pin #
GET /video/call/{type}/{id}/recordings List recordings #
POST /video/call/{type}/{id}/recordings/{recording_type}/start Start recording #
POST /video/call/{type}/{id}/recordings/{recording_type}/stop Stop recording #
GET /video/call/{type}/{id}/report Get call report #
POST /video/call/{type}/{id}/ring Ring Call Users #
POST /video/call/{type}/{id}/rtmp_broadcasts Start RTMP broadcasts #
POST /video/call/{type}/{id}/rtmp_broadcasts/{name}/stop Stop RTMP broadcasts #
POST /video/call/{type}/{id}/rtmp_broadcasts/stop Stop all RTMP broadcasts for a call #
GET /video/call/{type}/{id}/session/{session}/participant/{user}/{user_session}/details/track Get call participant session metrics #
GET /video/call/{type}/{id}/session/{session}/participant_sessions Query call participant sessions #
POST /video/call/{type}/{id}/start_broadcasting Start HLS broadcasting #
POST /video/call/{type}/{id}/start_closed_captions Start closed captions #
POST /video/call/{type}/{id}/start_frame_recording Start frame recording #
POST /video/call/{type}/{id}/start_transcription Start transcription #
POST /video/call/{type}/{id}/stop_broadcasting Stop HLS broadcasting #
POST /video/call/{type}/{id}/stop_closed_captions Stop closed captions #
POST /video/call/{type}/{id}/stop_frame_recording Stop frame recording #
POST /video/call/{type}/{id}/stop_live Set call as not live #
POST /video/call/{type}/{id}/stop_transcription Stop transcription #
GET /video/call/{type}/{id}/transcriptions List transcriptions #
POST /video/call/{type}/{id}/unblock Unblocks user on a call #
POST /video/call/{type}/{id}/unpin Unpin #
POST /video/call/{type}/{id}/user_permissions Update user permissions #
POST /video/call/feedback Query user reported feedback for the calls #
POST /video/call/members Query call members #
POST /video/call/stats Query Call Stats #
POST /video/call_stats Query call session stats #
GET /video/call_stats/{call_type}/{call_id}/{session}/map Map call participants by location #
GET /video/call_stats/{call_type}/{call_id}/{session}/participant/{user}/{user_session}/details Get call session participant stats details #
GET /video/call_stats/{call_type}/{call_id}/{session}/participants Query call participant statistics #
GET /video/call_stats/{call_type}/{call_id}/{session}/participants/{user}/{user_session}/timeline Get participant timeline events #
POST /video/calls Query call #
GET /video/calltypes List Call Type #
POST /video/calltypes Create Call Type #
DELETE /video/calltypes/{name} Delete Call Type #
GET /video/calltypes/{name} Get Call Type #
PUT /video/calltypes/{name} Update Call Type #
DELETE /video/devices Delete device #
GET /video/devices List devices #
POST /video/devices Create device #
GET /video/edges Get Edges #
GET /video/external_storage List external storage #
POST /video/external_storage Create external storage #
DELETE /video/external_storage/{name} Delete external storage #
PUT /video/external_storage/{name} Update External Storage #
GET /video/external_storage/{name}/check Check External Storage #
POST /video/guest Create Guest #
POST /video/sip/auth Resolve SIP Auth #
GET /video/sip/inbound_routing_rules List SIP Inbound Routing Rules #
POST /video/sip/inbound_routing_rules Create SIP Inbound Routing Rule #
DELETE /video/sip/inbound_routing_rules/{id} Delete SIP Inbound Routing Rule #
PUT /video/sip/inbound_routing_rules/{id} Update SIP Inbound Routing Rule #
GET /video/sip/inbound_trunks List SIP Trunks #
POST /video/sip/inbound_trunks Create SIP Trunk #
DELETE /video/sip/inbound_trunks/{id} Delete SIP Trunk #
PUT /video/sip/inbound_trunks/{id} Update SIP Trunk #
POST /video/sip/resolve Resolve SIP Inbound Routing #
POST /video/stats Query Aggregate call Stats #

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/stream-io-product-video-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

stream-io-product-video-api-openapi.yml Raw ↑
openapi: 3.2.0
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/getstream/refs/heads/main/openapi/stream-io-product-video-api-openapi.yml