Webex Closed Captions API

The Closed Captions API from Webex — 3 operation(s) for closed captions.

OpenAPI Specification

webex-closed-captions-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Webex Admin Address Book Closed Captions API
  version: 1.0.0
  description: The Webex Admin APIs provide comprehensive programmatic access to administrative functions for managing Webex organizations, users, licenses, and settings. These APIs enable automation of user provisioning, license assignment, compliance management, and audit event retrieval. Administrators can integrate with enterprise identity systems, enforce security policies, monitor usage, and streamline onboarding/offboarding processes. The APIs support granular control over organizational resources, making them ideal for large-scale deployments and custom admin tooling.
tags:
- name: Closed Captions
paths:
  /meetingClosedCaptions:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json;charset=UTF-8:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ClosedCaptionObject'
                    description: Closed caption array
              example:
                items:
                - id: 195d64646ad14be2924ea50f541fd91d
                  meetingId: 0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044
                  vttDownloadLink: http://site-example.webex.com/v1/meetingClosedCaptions/195d64646ad14be2924ea50f541fd91d/download?format=vtt
                  txtDownloadLink: http://site-example.webex.com/v1/meetingClosedCaptions/195d64646ad14be2924ea50f541fd91d/download?format=txt
                  start: '2022-04-18T01:46:29Z'
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
        '404':
          description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.'
        '405':
          description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
        '409':
          description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.'
        '410':
          description: 'Gone: The requested resource is no longer available.'
        '415':
          description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.'
        '423':
          description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.'
        '428':
          description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
      summary: List Meeting Closed Captions
      operationId: getMeetingClosedCaptions
      description: 'Lists closed captions of a finished [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) specified by `meetingId`.


        * Closed captions are ready 15 minutes after the meeting is finished.


        * Only **meeting instances** in state `ended` are supported for `meetingId`. **Meeting series**, **scheduled meetings** and `in-progress` **meeting instances** are not supported.


        * Currently, a meeting may have only one closed caption associated with its `meetingId`. The response is a closed captions array, which may contain multiple values to allow for future expansion, but currently only one closed caption is included in the response.'
      tags:
      - Closed Captions
      parameters:
      - name: meetingId
        in: query
        description: Unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) which the closed captions belong to. This parameter only applies to ended meeting instances. It does not apply to meeting series, scheduled meetings or scheduled [personal room](https://help.webex.com/en-us/article/nul0wut/Webex-Personal-Rooms-in-Webex-Meetings) meetings.
        required: true
        example: 0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044
        schema:
          type: string
  /meetingClosedCaptions/{closedCaptionId}/snippets:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json;charset=UTF-8:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/SnippetObject'
                    description: Closed caption snippet array
              example:
                items:
                - id: 195d64646ad14be2924ea50f541fd91d_00001
                  meetingId: 0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044
                  text: Hello everyone
                  personName: John Andersen
                  personEmail: john.andersen@example.com
                  peopleId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY
                  start: '2019-11-01T12:30:05Z'
                  offsetMillisecond: '0'
                  durationMillisecond: '200'
                  language: en
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
        '404':
          description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.'
        '405':
          description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
        '409':
          description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.'
        '410':
          description: 'Gone: The requested resource is no longer available.'
        '415':
          description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.'
        '423':
          description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.'
        '428':
          description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
      summary: List Meeting Closed Caption Snippets
      operationId: getMeetingClosedCaptionsSnippets
      description: Lists snippets of a meeting closed caption specified by `closedCaptionId`.
      tags:
      - Closed Captions
      parameters:
      - name: closedCaptionId
        in: path
        description: Unique identifier for the meeting closed caption which the snippets belong to.
        required: true
        example: 195d64646ad14be2924ea50f541fd91d
        schema:
          type: string
      - name: meetingId
        in: query
        description: Unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) which the closed caption snippets belong to. This parameter only applies to ended meeting instances. It does not apply to meeting series, scheduled meetings or scheduled [personal room](https://help.webex.com/en-us/article/nul0wut/Webex-Personal-Rooms-in-Webex-Meetings) meetings.
        required: true
        example: 0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044
        schema:
          type: string
  /meetingClosedCaptions/{closedCaptionId}/download:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            text/vtt:
              example: 'WEBVTT


                1

                00:00:20.904 --> 00:00:24.564

                This is an s sample closed caption snippet.


                2

                00:00:31.014 --> 00:00:33.744

                Testing out download closed captions.

                '
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message will explain further.'
        '401':
          description: 'Unauthorized: Authentication credentials were missing or incorrect.'
        '403':
          description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
        '404':
          description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist. Also returned when the requested format is not supported by the requested method.'
        '405':
          description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
        '409':
          description: 'Conflict: The request could not be processed because it conflicts with some established rule of the system. For example, a person may not be added to a room more than once.'
        '410':
          description: 'Gone: The requested resource is no longer available.'
        '415':
          description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used a media type that is not supported.'
        '423':
          description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that specifies how many seconds you need to wait before attempting the request again.'
        '428':
          description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
        '429':
          description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.'
        '500':
          description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).'
        '502':
          description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.'
        '503':
          description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
        '504':
          description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.'
      summary: Download Meeting Closed Caption Snippets
      operationId: downloadTranscript
      description: 'Download meeting closed caption snippets from the meeting closed caption specified by `closedCaptionId` formatted either as a Video Text Track (.vtt) file or plain text (.txt) file.


        #### Request Header


        * `timezone`: *[Time zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) for time stamps in response body, defined in conformance with the [IANA time zone database](https://www.iana.org/time-zones). The default value is `UTC` if not specified.*'
      tags:
      - Closed Captions
      parameters:
      - name: closedCaptionId
        in: path
        description: Unique identifier for the meeting closed caption.
        required: true
        example: 195d64646ad14be2924ea50f541fd91d
        schema:
          type: string
      - name: format
        in: query
        description: Format for the downloaded meeting closed caption snippets.
        example: vtt
        schema:
          type: string
          default: vtt
          enum:
          - vtt
          - txt
      - name: meetingId
        in: query
        description: Unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) which the closed caption snippets belong to. This parameter only applies to meeting instances in the `ended` state. It does not apply to meeting series, scheduled meetings or scheduled [personal room](https://help.webex.com/en-us/article/nul0wut/Webex-Personal-Rooms-in-Webex-Meetings) meetings.
        required: true
        example: 870f51ff287b41be84648412901e0402_I_167427437874906709
        schema:
          type: string
      - name: timezone
        in: header
        description: e.g. UTC
        required: false
        schema:
          type: string
        example: UTC
components:
  schemas:
    ClosedCaptionObject:
      type: object
      properties:
        id:
          type: string
          example: 195d64646ad14be2924ea50f541fd91d
          description: A unique identifier for the closed caption.
        meetingId:
          type: string
          example: 0ed74a1c0551494fb7a04e2881bf50ae_I_166022169160077044
          description: Unique identifier for the [meeting instance](/docs/meetings#meeting-series-scheduled-meetings-and-meeting-instances) which the closed captions belong to.
        vttDownloadLink:
          type: string
          example: http://site-example.webex.com/v1/meetingClosedCaptions/195d64646ad14be2924ea50f541fd91d/download?format=vtt
          description: The download link for the closed caption vtt file.
        txtDownloadLink:
          type: string
          example: http://site-example.webex.com/v1/meetingClosedCaptions/195d64646ad14be2924ea50f541fd91d/download?format=txt
          description: The download link for the closed caption txt file.
        start:
          type: string
          example: '2020-06-01T20:30:15.042Z'
          description: Start time for the meeting closed caption in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format.
    SnippetObject:
      type: object
      required:
      - id
      - text
      - personName
      - personEmail
      - offsetMillisecond
      - durationMillisecond
      properties:
        id:
          type: string
          example: 195d64646ad14be2924ea50f541fd91d_00001
          description: A unique identifier for the snippet.
        text:
          type: string
          example: Hello everyone
          description: Text for the snippet.
        personName:
          type: string
          example: John Andersen
          description: Name of the person generating the speech for the snippet.
        personEmail:
          type: string
          example: john.andersen@example.com
          description: Email address of the person generating the speech for the snippet.
        offsetMillisecond:
          type: number
          example: 1000
          description: Offset from the beginning of the parent transcript in milliseconds indicating the start time of the snippet.
        durationMillisecond:
          type: number
          example: 2000
          description: Duration of the snippet in milliseconds.
  securitySchemes:
    oauth2:
      flows:
        authorizationCode:
          authorizationUrl: /
          scopes: {}
          tokenUrl: /
      type: oauth2
    bearer-key:
      type: http
      description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN
      scheme: bearer
      bearerFormat: JWT
    bearerAuth:
      type: oauth2
      description: OAuth 2.0 Bearer token authentication
      flows:
        authorizationCode:
          authorizationUrl: https://webexapis.com/v1/authorize
          tokenUrl: https://webexapis.com/v1/access_token
          scopes:
            spark:applications_token: Create access tokens for Service Apps