Vonage Broadcast API

APIs relating to live streaming and broadcasting

Operations 6

GET /v2/project/{application_id}/broadcast List Live Streaming Broadcasts #
POST /v2/project/{application_id}/broadcast Start a Live Streaming Broadcast #
GET /v2/project/{application_id}/broadcast/{broadcast_id} Get Information about Broadcast #
POST /v2/project/{application_id}/broadcast/{broadcast_id}/stop Stop Broadcast #
PUT /v2/project/{application_id}/broadcast/{broadcast_id}/layout Dynamically change layout of a broadcast #
PATCH /v2/project/{application_id}/broadcast/{broadcast_id}/streams Selecting streams to be included in a live streaming broadcast #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-new-message-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-smsxml-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-sms-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-error-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-error-xml-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-get-call-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-get-calls-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-start-talk-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-update-call-request-transfer-ncco-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-create-call-request-answer-url-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-update-call-request-transfer-answer-url-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-verify-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-search-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-psd2-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-request-error-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-control-error-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-check-error-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-list-fragments-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-list-templates-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-template-fragment-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-template-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-code-submit-success-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-silent-auth-confirmation-success-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-number-details-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-number-details-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-available-numbers-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-inbound-numbers-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-application-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-video-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-user-channels-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-voice-region-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-application-response-collection-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-user-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-channel-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-member-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-conversation-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-conversation-user-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-start-stream-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-media-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-any-async-request-params-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-layout-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-add-stream-to-archive-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-max-bitrate-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-remove-stream-from-archive-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-create-workflow-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-redact-transaction-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-audit-event-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-audit-resp-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-ni-response-xml-advanced-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-ni-response-xml-standard-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-ni-response-json-advanced-sync-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-ni-response-json-advanced-roaming-unknown-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-ni-response-json-standard-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-ni-response-xml-basic-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-aggregated-insight-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-retrieval-location-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-polygon-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-circle-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-account-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-subaccount-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-transfer-balance-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-transfer-credit-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-transfer-number-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-transfer-balance-or-credit-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-new-subaccount-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-pricing-country-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-pricing-countries-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-room-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-upload-url-for-theme-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-theme-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-hal-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-update-room-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/vonage/refs/heads/main/json-schema/vonage-recording-schema.json

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/vonage:vonage-broadcast-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

vonage-broadcast-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vonage Broadcast API
  version: 0.3.2
  contact:
    name: Vonage DevRel
    url: https://developer.vonage.com
    email: devlre@vonage.com
  x-metaDescription: Get started with the Vonage Video API, a powerful tool for automating video communications. Learn more in Vonage's API documentation.
  x-metaTitle: Vonage Video API for Developers | Vonage API Documentation
  description: 'Operations tagged Broadcast across 2 of this provider''s published API definitions: vonage-video-openapi.json, vonage-video-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://video.api.vonage.com
  description: Vonage Video
security:
- Vonage-JWT: []
tags:
- name: Broadcast
  description: APIs relating to live streaming and broadcasting
paths:
  /v2/project/{application_id}/broadcast:
    parameters:
    - $ref: '#/components/parameters/application_id'
    get:
      tags:
      - Broadcast
      summary: List Live Streaming Broadcasts
      operationId: get-broadcast-list
      responses:
        '200':
          $ref: '#/components/responses/Broadcast-List'
        '403':
          description: 'Forbidden

            Authentication error'
      parameters:
      - schema:
          type: integer
        in: query
        name: offset
        description: ' The start offset in the list of existing broadcasts'
      - schema:
          type: integer
        in: query
        name: count
        description: The number of broadcasts to retrieve starting at offset. Default of 50, max of 1000
      - schema:
          type: string
        in: query
        name: sessionId
        description: Retrieve only broadcasts for a given session ID
    post:
      tags:
      - Broadcast
      summary: Start a Live Streaming Broadcast
      operationId: start-broadcast
      responses:
        '200':
          $ref: '#/components/responses/Broadcast-Details'
        '400':
          description: 'Bad Request

            This response may indicate that data in your request data is invalid JSON. It may also indicate that you passed in invalid layout options. Or you have exceeded the limit of five simultaneous RTMP streams for an Vonage Video session. Or you specified and invalid resolution.'
        '403':
          description: 'Forbidden

            Authentication error.'
        '409':
          description: 'Conflict

            The broadcast has already started for the session. Or if you attempt to start a simultaneous broadcast for a session without setting a unique multiBroadcastTag value.'
      description: 'Use this method to start a live streaming broadcast for an Vonage Video session. This broadcasts the session to an HLS (HTTP live streaming) or to RTMP streams.


        To successfully start broadcasting a session, at least one client must be connected to the session.


        The live streaming broadcast can target one HLS endpoint and up to five RTMP servers simultaneously for a session. You can only start live streaming for sessions that use the Vonage Video Media Router (with the media mode set to routed); you cannot use live streaming with sessions that have the media mode set to relayed. (See The Vonage Video Media Router and media modes.)


        For more information about Vonage Video live streaming, see the Broadcast developer guide.'
      parameters:
      - schema:
          type: string
        in: header
        name: Content-Type
        description: application/json
      requestBody:
        content:
          application/json:
            schema:
              type: object
              x-examples:
                Example 1:
                  sessionId: <session-id>
                  layout:
                    type: custom
                    stylesheet: the layout stylesheet (only used with type == custom)
                    screenshareType: optional layout type to use when there is a screen-sharing stream
                  maxDuration: 5400
                  outputs:
                    hls:
                      dvr: false
                      lowLatency: false
                    rtmp:
                    - id: foo
                      serverUrl: rtmps://myfooserver/myfooapp
                      streamName: myfoostream
                    - id: bar
                      serverUrl: rtmp://mybarserver/mybarapp
                      streamName: mybarstream
                  resolution: 640x480
                  streamMode: auto
              properties:
                sessionId:
                  type: string
                  example: 2_MX40NTMyODc3Mn5-fg
                  description: Set this to the session ID of the Vonage Video session you want to broadcast.
                layout:
                  type: object
                  description: 'Specify this to assign the initial layout type for the broadcast.


                    If you do not specify an initial layout type, the broadcast stream uses the Best Fit layout type. For more information, see Configuring Video Layout for the Vonage Video live streaming feature.'
                  properties:
                    type:
                      type: string
                      enum:
                      - bestFit
                      - custom
                      - horizontalPresentation
                      - pip
                      - verticalPresentation
                      example: custom
                    stylesheet:
                      type: string
                      example: the layout stylesheet (only used with type == custom)
                      description: 'If you specify a "custom" layout type, set the stylesheet property of the layout object to the stylesheet. (For other layout types, do not set a stylesheet property.) '
                    screenshareType:
                      type: string
                      enum:
                      - bestFit
                      - custom
                      - horizontalPresentation
                      - pip
                      - verticalPresentation
                      example: horizontalPresentation
                      description: 'Set the screenshareType property to the layout type to use when there is a screen-sharing stream in the session. (This property is optional.) Note if you set the screenshareType property, you must set the type property to "bestFit" and leave the stylesheet property unset. '
                  required:
                  - type
                maxDuration:
                  type: integer
                  example: 5400
                  description: The maximum duration for the broadcast, in seconds. The broadcast will automatically stop when the maximum duration is reached. You can set the maximum duration to a value from 60 (60 seconds) to 36000 (10 hours). The default maximum duration is 4 hours (14,400 seconds)
                outputs:
                  type: object
                  anyOf:
                  - required:
                    - hls
                  - required:
                    - rtmp
                  - required:
                    - hls
                    - rtmp
                  description: 'This object defines the types of broadcast streams you want to start (both HLS and RTMP). You can include HLS, RTMP, or both as broadcast streams. If you include RTMP streaming, you can specify up to five target RTMP streams (or just one).


                    Vonage streams the session to each RTMP URL you specify. Note that Vonage Video live streaming supports RTMP and RTMPS.'
                  properties:
                    hls:
                      type: object
                      properties:
                        dvr:
                          type: boolean
                          description: Whether to enable DVR functionality — rewinding, pausing, and resuming — in players that support it (true), or not (false, the default). With DVR enabled, the HLS URL will include a ?DVR query string appended to the end.
                        lowLatency:
                          type: boolean
                          description: Whether to enable low-latency mode for the HLSstream. Some HLS players do not support low-latency mode. This feature is incompatible with DVR mode HLS broadcasts.
                    rtmp:
                      type: array
                      items:
                        type: object
                        minProperties: 1
                        maxProperties: 5
                        properties:
                          id:
                            type: string
                            example: foo
                            description: a unique ID for the stream
                          serverUrl:
                            type: string
                            example: rtmps://myfooserver/myfooapp
                            description: the RTMP server URL
                          streamName:
                            type: string
                            example: myfoostream
                            description: the stream name, such as the YouTube Live stream name or the Facebook stream key
                        required:
                        - serverUrl
                        - streamName
                resolution:
                  type: string
                  enum:
                  - 640x480
                  - 1280x720
                  - 1920x1080
                  - 480x640
                  - 720x1280
                  - 1080x1920
                  example: 1920x1080
                streamMode:
                  type: string
                  enum:
                  - auto
                  - manual
                  example: manual
                  default: auto
                multiBroadcastTag:
                  type: string
                  example: foo
                  description: Set this to support multiple broadcasts for the same session simultaneously. Set this to a unique string for each simultaneous broadcast of an ongoing session. See Simultaneous broadcasts.
                maxBitrate:
                  $ref: '#/components/schemas/Max-Bitrate'
              required:
              - sessionId
              - outputs
    servers:
    - url: https://video.api.vonage.com
      description: Vonage Video
  /v2/project/{application_id}/broadcast/{broadcast_id}:
    parameters:
    - $ref: '#/components/parameters/application_id'
    - $ref: '#/components/parameters/broadcast_id'
    get:
      tags:
      - Broadcast
      summary: Get Information about Broadcast
      operationId: get-broadcast-details
      responses:
        '200':
          $ref: '#/components/responses/Broadcast-Details'
        '403':
          description: 'Forbidden

            Authentication error'
      parameters: []
      description: Use this method to get details on a broadcast that is in-progress.
    servers:
    - url: https://video.api.vonage.com
      description: Vonage Video
  /v2/project/{application_id}/broadcast/{broadcast_id}/stop:
    parameters:
    - $ref: '#/components/parameters/application_id'
    - $ref: '#/components/parameters/broadcast_id'
    post:
      tags:
      - Broadcast
      summary: Stop Broadcast
      operationId: stop-broadcast
      responses:
        '200':
          $ref: '#/components/responses/Broadcast-Details'
        '400':
          description: 'Bad Request

            Invalid request. This response may indicate that data in your request data is invalid JSON.'
        '403':
          description: 'Forbidden

            Authentication error.'
        '404':
          description: 'Not Found

            The broadcast (with the specified ID) was not found or it has already stopped.'
      description: 'Use this method to stop a live broadcast of an Vonage Video session.


        Note that a broadcast stops automatically 60 seconds after the last client disconnects from the session. Also, there is a default maximum duration of 4 hours (14,400 seconds) for each HLS and RTMP stream (the live stream broadcast automatically stops when this duration is reached). You can change the maximum duration for the broadcast by setting the `maxDuration` property when you start the broadcast REST method.'
    servers:
    - url: https://video.api.vonage.com
      description: Vonage Video
  /v2/project/{application_id}/broadcast/{broadcast_id}/layout:
    parameters:
    - name: application_id
      in: path
      required: true
      schema:
        type: string
      description: Vonage Application UUID
    - schema:
        type: string
      name: broadcast_id
      in: path
      required: true
    put:
      tags:
      - Broadcast
      summary: Dynamically change layout of a broadcast
      operationId: change-broadcast-layout
      responses:
        '200':
          description: OK
        '400':
          description: 'Bad Request

            Invalid request. This response may indicate that data in your request data is invalid JSON.'
        '403':
          description: 'Forbidden

            Authentication error.'
        '404':
          description: 'Not Found

            The broadcast (with the specified ID) was not found or it has already stopped.'
      description: 'You can dynamically change the layout type of a live streaming broadcast.


        For more information about Vonage Video live streaming broadcasts, see the Broadcast developer guide.'
      requestBody:
        $ref: '#/components/requestBodies/Layout'
    servers:
    - url: https://video.api.vonage.com
      description: Vonage Video
  /v2/project/{application_id}/broadcast/{broadcast_id}/streams:
    parameters:
    - name: application_id
      in: path
      required: true
      schema:
        type: string
      description: Vonage Application UUID
    - schema:
        type: string
      name: broadcast_id
      in: path
      required: true
    patch:
      tags:
      - Broadcast
      summary: Selecting streams to be included in a live streaming broadcast
      operationId: select-streams-for-broadcast
      description: 'Use this method to change the streams included in a live streaming broadcast that was started with the streamMode set to "manual" (see Starting a live streaming broadcast).


        The broadcast composer includes added streams based on stream prioritization rules.'
      requestBody:
        $ref: '#/components/requestBodies/Select-Streams'
      responses:
        '204':
          description: No Content
        '400':
          description: 'Bad Request

            This response may indicate that data provided in your request is an invalid JSON, or the request couldn''t be fulfilled because the broadcast was started with streamMode set to "auto", which does not support stream manipulation.'
        '403':
          description: Forbidden
        '404':
          description: 'Not Found

            Broadcast or stream not found.'
    servers:
    - url: https://video.api.vonage.com
      description: Vonage Video
components:
  requestBodies:
    Select-Streams:
      content:
        application/json:
          schema:
            oneOf:
            - $ref: '#/components/schemas/Add-Stream'
            - $ref: '#/components/schemas/Remove-Stream'
      description: ''
    Layout:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Layout'
  schemas:
    Stream-Mode:
      type: string
      enum:
      - auto
      - manual
      description: Whether streams included in the archive are selected automatically ("auto", the default) or manually ("manual"). When streams are selected automatically ("auto"), all streams in the session can be included in the archive. When streams are selected manually ("manual"), you specify streams to be included based on calls to this REST method. You can specify whether a stream's audio, video, or both are included in the archive. In composed archives, in both automatic and manual modes, the archive composer includes streams based on stream prioritization rules.
      example: manual
    Max-Bitrate:
      type: number
      example: 200000
      minimum: 100000
      maximum: 6000000
      description: The maximum video bitrate for the archive, in bits per second. This option is only valid for composed archives. Set the maximum video bitrate to control the size of the composed archive. This maximum bitrate applies to the video bitrate only. If the output archive has audio, those bits will be excluded from the limit.
    Resolution:
      type: string
      enum:
      - 640x480
      - 480x640
      - 1280x720
      - 720x1280
      - 1080x1920
      - 1920x1080
      description: The resolution of the archive, either "640x480" (SD landscape, the default), "1280x720" (HD landscape), "1920x1080" (FHD landscape), "480x640" (SD portrait), "720x1280" (HD portrait), or "1080x1920" (FHD portrait). You may want to use a portrait aspect ratio for archives that include video streams from mobile devices (which often use the portrait aspect ratio). This property only applies to composed archives. If you set this property and set the outputMode property to "individual", the call to the REST method results in an error.
    Remove-Stream:
      title: Remove-Stream
      x-stoplight:
        id: uvyo3v0wjqwlj
      type: object
      properties:
        removeStream:
          type: string
          example: 12312312-3811-4726-b508-e41a0f96c68f
          description: ID of stream to remove
    Layout:
      type: object
      properties:
        type:
          type: string
          description: 'Specify this to assign the initial layout type for the archive. This applies only to composed archives. This object has three properties: type, stylesheet, and screenshareType, which are each strings. Valid values for the layout property are "bestFit" (best fit), "custom" (custom), "horizontalPresentation" (horizontal presentation), "pip" (picture-in-picture), and "verticalPresentation" (vertical presentation). If you specify a "custom" layout type, set the stylesheet property of the layout object to the stylesheet. (For other layout types, do not set a stylesheet property.) Set the screenshareType property to the layout type to use when there is a screen-sharing stream in the session. (This property is optional.) Note if you set the screenshareType property, you must set the type property to "bestFit" and leave the stylesheet property unset. If you do not specify an initial layout type, the archive uses the best fit layout type.'
          enum:
          - bestFit
          - custom
          - horizontalPresentation
          - pip
          - verticalPresentation
          example: bestFit
        stylesheet:
          type: string
          description: Used for the `custom` layout to define the visual layout
          example: 'stream.instructor {position: absolute; width: 100%;  height:50%;}'
        screenshareType:
          type: string
          enum:
          - bestFit
          - custom
          - horizontalPresentation
          - pip
          - verticalPresentation
          description: Set the screenshareType property to the layout type to use when there is a screen-sharing stream in the session. (This property is optional.) Note if you set the screenshareType property, you must set the type property to "bestFit" and leave the stylesheet property unset.
          example: pip
    ApplicationID:
      type: string
      description: A Vonage Application ID
      example: 93e36bb9-b72c-45b6-a9ea-5c37dbc49906
    Add-Stream:
      title: Add-Stream
      x-stoplight:
        id: za2ghdcvwhwl0
      type: object
      properties:
        addStream:
          type: string
          description: The stream ID to add
          example: 12312312-3811-4726-b508-e41a0f96c68f
        hasAudio:
          type: boolean
          default: true
          description: Whether to include the stream's audio
        hasVideo:
          type: boolean
          default: true
          description: Whether to include the stream's video
    Broadcast-Detail:
      title: Broadcast-Detail
      x-stoplight:
        id: i35hgmkxy7mq4
      type: object
      x-examples:
        Example 1:
          id: 1748b7070a81464c9759c46ad10d3734
          sessionId: 2_MX4xMDBfjE0Mzc2NzY1NDgwMTJ-TjMzfn4
          multiBroadcastTag: broadcast_tag_provided
          applicationId: 93e36bb9-b72c-45b6-a9ea-5c37dbc49906
          createdAt: 1437676551000
          updatedAt: 1437676551000
          maxDuration: 5400
          maxBitrate: 2000000
          broadcastUrls:
            hls: hlsurl
            rtmp:
              foo:
                serverUrl: rtmp://myfooserver/myfooapp
                streamName: myfoostreamname
              bar:
                serverUrl: rtmp://mybarserver/mybarapp
                streamName: mybarstreamname
          settings:
            hls:
              lowLatency: false
          resolution: 640x480
          hasAudio: true
          hasVideo: true
          streamMode: manual
      properties:
        id:
          type: string
          example: 1748b7070a81464c9759c46ad10d3734
          description: The unique ID for the broadcast
        sessionId:
          type: string
          example: 2_MX4xMDBfjE0Mzc2NzY1NDgwMTJ-TjMzfn4
          description: The Vonage Video session ID
        multiBroadcastTag:
          type: string
          example: broadcast_tag_provided
          description: The unique tag for simultaneous broadcasts (if one was set).
        applicationId:
          $ref: '#/components/schemas/ApplicationID'
        createdAt:
          type: integer
          example: 1437676551000
          description: The time the broadcast started, expressed in milliseconds since the Unix epoch (January 1, 1970, 00:00:00 UTC)
        updatedAt:
          type: integer
          example: 1437676551000
          description: For this start method, this timestamp matches the createdAt timestamp.
        maxDuration:
          type: integer
          example: 5400
          description: The maximum duration for the broadcast (if one was set), in seconds.
        maxBitrate:
          type: integer
          example: 2000000
          description: The maximum bitrate for the stream.
        broadcastUrls:
          type: object
          description: An object containing details about the HLS and RTMP broadcasts.
          properties:
            hls:
              type: string
              example: hlsurl
              description: If you specified an HLS endpoint, the object includes an hls property, which is set to the URL for the HLS broadcast. Note this HLS broadcast URL points to an index file, an .M3U8-formatted playlist that contains a list of URLs to .ts media segment files (MPEG-2 transport stream files). While the URLs of both the playlist index file and media segment files are provided as soon as the HTTP response is returned, these URLs should not be accessed until 15 – 20 seconds later, after the initiation of the HLS broadcast, due to the delay between the HLS broadcast and the live streams in the Vonage Video session. See https://developer.apple.com/library/ios/technotes/tn2288/_index.html for more information about the playlist index file and media segment files for HLS.
            rtmp:
              type: array
              description: 'If you specified RTMP stream endpoints, the object includes an rtmp property. This is an array of objects that include information on each of the RTMP streams. Each of these objects has the following properties: id (the ID you assigned to the RTMP stream), serverUrl (the server URL), streamName (the stream name), and status property (which is set to "connecting"). You can call the Vonage Video REST method to check for status updates for the broadcast.'
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: 'The ID you assigned to the RTMP stream

                      '
                  status:
                    type: string
                    description: 'The current status of the RTMP stream

                      '
                  serverUrl:
                    type: string
                    description: The Server URL
                  streamName:
                    type: string
                    description: The stream name
        settings:
          type: object
          properties:
            hls:
              type: object
              properties:
                lowLatency:
                  type: boolean
                  description: 'Whether to enable low-latency mode for the HLSstream. Some HLS players do not support low-latency mode. This feature is incompatible with DVR mode HLS broadcasts. '
                dvr:
                  type: boolean
                  description: 'Whether to enable DVR functionality — rewinding, pausing, and resuming — in players that support it (true), or not (false, the default). With DVR enabled, the HLS URL will include a ?DVR query string appended to the end. '
        resolution:
          $ref: '#/components/schemas/Resolution'
        hasAudio:
          type: boolean
          description: Whether the broadcast has audio
        hasVideo:
          type: boolean
          description: Whether the broadcast has video
        streamMode:
          $ref: '#/components/schemas/Stream-Mode'
        status:
          type: string
          description: Current status of the broadcast
        streams:
          type: array
          description: ' An array of objects corresponding to streams currently being broadcast. This is only set for a broadcast with the status set to "started" and the streamMode set to "manual"'
          items:
            type: object
            properties:
              streamId:
                type: string
                description: The stream ID of the stream included in the broadcast.
              hasAudio:
                type: string
                description: Whether the stream's audio is included in the broadcast.
              hasVideo:
                type: string
                description: Whether the stream's video is included in the broadcast.
  parameters:
    broadcast_id:
      name: broadcast_id
      in: path
      required: true
      schema:
        type: string
      description: ID of the broadcast
    application_id:
      name: application_id
      in: path
      required: true
      schema:
        type: string
      description: Vonage Application UUID
  responses:
    Broadcast-Details:
      description: Example response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Broadcast-Detail'
    Broadcast-List:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              count:
                type: integer
              items:
                type: array
                items:
                  $ref: '#/components/schemas/Broadcast-Detail'
  securitySchemes:
    Vonage-JWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-refined-from:
- vonage-video-openapi.json
- vonage-video-openapi.yml
x-errors:
  validation:
    description: The provided payload is invalid
    resolution: 'Modify your request to provide a valid payload.

      * Minimum 8 characters

      * Maximum 25 characters

      * Minimum 1 lower case character

      * Minimum 1 upper case character

      * Minimum 1 digit

      '
    link:
      text: View API reference
      url: /api/account#createAPISecret
  delete-last-secret:
    description: You can not delete your only API secret
    resolution: Add another API secret before deleting this one