Webex xAPI API

The xAPI API from Webex — 3 operation(s) for xapi.

OpenAPI Specification

webex-xapi-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Webex X API API
  version: 1.0.0
  description: 'Operations tagged xAPI across 2 of this provider''s published API definitions: webex-device-openapi.json,
    webex-xapi-api-openapi.yml. Each path carries the servers of the definition it was published in.'
  x-provenance:
    method: harvested
    authored_by: Cisco Webex
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
    provider_published: true
    derived_view: Per-tag view of webex-device-openapi.json, the provider's source document. Operations and schemas are the
      provider's, unmodified; only the partition is ours.
    derived_from: webex-device-openapi.json
    operation_coverage: 3/3
  x-evidence:
  - type: source
    url: https://github.com/webex/webex-openapi-specs/blob/main/public-spec/webex-device.json
  - type: raw
    url: https://raw.githubusercontent.com/webex/webex-openapi-specs/main/public-spec/webex-device.json
tags:
- name: xAPI
paths:
  /xapi/status:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  deviceId:
                    type: string
                    example: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
                    description: The unique identifier for the Webex RoomOS Device.
                  result:
                    type: object
                    properties:
                      Audio:
                        type: object
                        properties:
                          Volume:
                            type: number
                            example: 75
                    description: xAPI status result
              example:
                deviceId: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
                result:
                  Audio:
                    Volume: 75
        '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: Query Status
      operationId: Query Status
      description: 'Query the current status of the Webex RoomOS Device. You specify the target device in the `deviceId` parameter
        in the URI. The target device is queried for statuses according to the expression in the `name` parameter.


        See the [xAPI section of the Device Developers Guide](/docs/api/guides/device-developers-guide#xapi) or the [xAPI
        Command Reference](https://roomos.cisco.com/xapi) for a description of status expressions.'
      tags:
      - xAPI
      parameters:
      - name: deviceId
        in: query
        description: The unique identifier for the Webex RoomOS Device.
        required: true
        example: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
        schema:
          type: string
      - name: name
        in: query
        description: A list of status expressions used to query the Webex RoomOS Device. See the [xAPI section of the Device
          Developers Guide](/docs/api/guides/device-developers-guide#xapi) for a description of status expressions. A request
          can contain at most 10 different status expressions.
        required: true
        example: audio.volume
        schema:
          type: array
          items:
            type: string
            example: audio.volume
          description: A list of status expressions used to query the Webex RoomOS Device. See the [xAPI section of the Device
            Developers Guide](/docs/api/guides/device-developers-guide#xapi) for a description of status expressions. A request
            can contain at most 10 different status expressions.
  /xapi/schema:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    deviceId:
                      type: string
                      example: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
                      description: The unique identifier for the Webex RoomOS Device.
                    status:
                      type: object
                      additionalProperties:
                        type: object
                        properties:
                          schema:
                            type: object
                            description: JSON Schema describing the status value.
                      description: Status schemas keyed by status name.
                    commands:
                      type: object
                      additionalProperties:
                        type: object
                        properties:
                          arguments:
                            type: object
                            additionalProperties:
                              type: object
                              properties:
                                required:
                                  type: boolean
                                  description: Whether the argument is required.
                                schema:
                                  type: object
                                  description: JSON Schema describing the argument value.
                            description: Command arguments keyed by argument name.
                          resultSchema:
                            type: object
                            description: JSON Schema describing the command result.
                          bodySchema:
                            type: object
                            properties:
                              schema:
                                type: object
                                description: JSON Schema describing the command body.
                            description: Schema for the command body.
                      description: Command schemas keyed by command name.
              example:
              - deviceId: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
                status:
                  Conference.HideNonVideo.Active:
                    schema:
                      enum:
                      - 'True'
                      - 'False'
                      type: string
                  Network[1..n].Wifi.Noise:
                    schema:
                      type: integer
                commands:
                  UserInterface.Extensions.Icon.Upload:
                    arguments:
                      Id:
                        required: false
                        schema:
                          type: string
                          maxLength: 128
                          minLength: 0
                    resultSchema:
                      type:
                      - object
                      - 'null'
                    bodySchema:
                      schema:
                        type:
                        - object
                        - string
                        maxLength: 4194304
        '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: Query Schema
      operationId: Query Schema
      description: 'Query the schema for statuses and commands of Webex RoomOS Devices. You specify the target devices in
        the `deviceId` parameter in the URI. Querying command schemas requires the `spark:xapi_commands` scope and querying
        status schemas requires the `spark:xapi_statuses` scope.


        If no `status` or `command` expressions are specified, the full schema is returned, including both status and command
        schemas. If you specify any expression, the response is limited to only the types you queried for. For example, if
        you provide a `status` expression but no `command` expression, only status schemas will be included in the result.


        See the [xAPI section of the Device Developers Guide](/docs/api/guides/device-developers-guide#xapi) or the [xAPI
        Command Reference](https://roomos.cisco.com/xapi) for a description of status and command expressions.'
      tags:
      - xAPI
      parameters:
      - name: deviceId
        in: query
        description: A list of device IDs to query schemas from. A request can contain at most 5 device IDs.
        required: true
        example: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
        schema:
          type: array
          items:
            type: string
            example: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
          description: A list of device IDs to query schemas from. A request can contain at most 5 device IDs.
      - name: status
        in: query
        description: A list of status key expressions to query schemas for. Supports patterns. Requires the `spark:xapi_statuses`
          scope.
        required: false
        example: Conference.*
        schema:
          type: array
          items:
            type: string
            example: Conference.*
          description: A list of status key expressions to query schemas for. Supports patterns. Requires the `spark:xapi_statuses`
            scope.
      - name: command
        in: query
        description: A list of command key expressions to query schemas for. Supports patterns. Requires the `spark:xapi_commands`
          scope.
        required: false
        example: UserInterface.*
        schema:
          type: array
          items:
            type: string
            example: UserInterface.*
          description: A list of command key expressions to query schemas for. Supports patterns. Requires the `spark:xapi_commands`
            scope.
  /xapi/command/{commandName}:
    post:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  deviceId:
                    type: string
                    example: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
                    description: The unique identifier for the Webex RoomOS Device.
                  arguments:
                    type: object
                    properties:
                      Level:
                        type: number
                        example: 50
                    description: xAPI command arguments
                  result:
                    type: object
                    properties:
                      Booking:
                        type: object
                        properties:
                          Id:
                            type: string
                            example: foo
                          Title:
                            type: string
                            example: Booking Title
                          Protocol:
                            type: string
                            example: SIP
                          Time:
                            type: object
                            properties:
                              StartTime:
                                type: string
                                example: '2020-07-01T13:00:00Z'
                              Duration:
                                type: number
                                example: 60
                          Organizer:
                            type: object
                            properties:
                              Name:
                                type: string
                                example: John Doe
                          Number:
                            type: string
                            example: number@example.com
                    description: xAPI command results
              example:
                deviceId: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
                arguments:
                  Level: 50
                result:
                  Booking:
                    Id: foo
                    Title: Booking Title
                    Protocol: SIP
                    Time:
                      StartTime: '2020-07-01T13:00:00Z'
                      Duration: 60
                    Organizer:
                      Name: John Doe
                    Number: number@example.com
        '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: Execute Command
      operationId: Execute Command
      description: 'Executes a command on the Webex RoomOS Device. Specify the command to execute in the `commandName` URI
        parameter.


        See the [xAPI section of the Device Developers Guide](/docs/devices#xapi) for a description of command expressions.'
      tags:
      - xAPI
      parameters:
      - name: commandName
        in: path
        description: Command to execute on the Webex RoomOS Device.
        required: true
        example: Audio.Volume.Set
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - deviceId
              - arguments
              properties:
                deviceId:
                  type: string
                  example: Y2lzY29zcGFyazovL3VzL0RFVklDRS8wNTVkYThiNy02NWI2LTQ5NjgtOTg1ZC02ZmFjODcwOWMyMDM
                  description: The unique identifier for the Webex RoomOS Device.
                arguments:
                  type: object
                  properties:
                    Level:
                      type: number
                      example: 50
                  description: xAPI command arguments
                body:
                  type: object
                  properties:
                    Booking:
                      type: object
                      properties:
                        Id:
                          type: string
                          example: foo
                        Title:
                          type: string
                          example: Booking Title
                        Protocol:
                          type: string
                          example: SIP
                        Time:
                          type: object
                          properties:
                            StartTime:
                              type: string
                              example: '2020-07-01T13:00:00Z'
                            Duration:
                              type: number
                              example: 60
                        Organizer:
                          type: object
                          properties:
                            Name:
                              type: string
                              example: John Doe
                        Number:
                          type: string
                          example: number@example.com
                  description: 'xAPI command body, as a complex JSON object or as a string, for example: `import xapi from
                    ''xapi'';\n\nconsole.log(''Hello, World!'');\n`'
components:
  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
x-refined-from:
- webex-device-openapi.json
- webex-xapi-api-openapi.yml