openapi: 3.2.0 info: title: Webex Device X API version: 1.0.0 description: The Webex Device APIs provide endpoints for managing and monitoring Webex devices, including registration, configuration, status retrieval, workspace assignment, and firmware management. 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 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: x API 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 or the xAPI Command Reference for a description of status expressions.' tags: - x API 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 or the xAPI Command Reference for a description of status and command expressions.' tags: - x API 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 for a description of command expressions.' tags: - x API 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