openapi: 3.0.0 info: title: Webex Admin Address Book Devices 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: Devices paths: /devices: get: responses: '200': description: OK headers: Link: schema: type: string content: application/json: schema: $ref: '#/components/schemas/DeviceCollectionResponse' example: items: - id: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 callingDeviceId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9DQUxMSU5HX0RFVklDRS81MTAxQjA3Qi00RjhGLTRFRjctQjU2NS1EQjE5QzdCNzIzRjc= webexDeviceId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 displayName: SFO12-3-PanHandle placeId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU workspaceId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU personId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE capabilities: - xapi permissions: - xapi:readonly connectionStatus: connected product: Cisco Webex DX80 type: roomdesk tags: - First Tag - Second Tag ip: 100.110.120.130 activeInterface: wired mac: 11:22:33:44:AA:FF primarySipUrl: sample_device@sample_workspacename.orgname.org sipUrls: - sample_device@sample_workspacename.orgname.org - another_device@sample_workspacename.orgname.org serial: FOC1923NVVN software: RoomOS 2018-06-01 608dcdbb6e1 upgradeChannel: beta created: '2016-04-21T17:00:00.000Z' locationId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE workspaceLocationId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE errorCodes: - sipprofileregistration firstSeen: '2021-02-24T09:08:38.822Z' lastSeen: '2023-08-15T14:04:00.444Z' managedBy: CISCO devicePlatform: cisco plannedMaintenance: 'off' '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 Devices operationId: List Devices description: Lists all active Webex devices associated with the authenticated user, such as devices activated in personal mode. This requires the `spark:devices_read` scope. Administrators can list all devices within their organization. This requires an administrator auth token with the `spark-admin:devices_read` scope. tags: - Devices parameters: - name: max in: query description: Limit the maximum number of devices in the response. example: '100' schema: type: number - name: start in: query description: ' Offset. Default is 0. ' schema: type: number - name: displayName in: query description: ' List devices with this display name. ' example: SFO12-3-PanHandle schema: type: string - name: personId in: query description: ' List devices by person ID. ' example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU schema: type: string - name: workspaceId in: query description: ' List devices by workspace ID. ' example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9QTEFDRS81MTAxQjA3Qi00RjhGLTRFRjctQjU2NS1EQjE5QzdCNzIzRjc= schema: type: string - name: orgId in: query description: ' List devices in this organization. Only admin users of another organization (such as partners) may use this parameter. ' example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE schema: type: string - name: connectionStatus in: query description: ' List devices with this connection status. ' schema: type: string - name: product in: query description: ' List devices with this product name. ' schema: type: string enum: - DX-80 - RoomKit - SX-80 - name: type in: query description: ' List devices with this type. ' schema: type: string enum: - roomdesk - phone - accessory - webexgo - unknown - name: serial in: query description: ' List devices with this serial number. ' schema: type: string - name: tag in: query description: ' List devices which have a tag. Searching for multiple tags (logical AND) can be done by comma separating the `tag` values or adding several `tag` parameters. ' schema: type: string - name: software in: query description: ' List devices with this software version. ' schema: type: string - name: upgradeChannel in: query description: ' List devices with this upgrade channel. ' schema: type: string - name: errorCode in: query description: ' List devices with this error code. ' schema: type: string - name: capability in: query description: ' List devices with this capability. ' example: xapi schema: type: string enum: - xapi - name: permission in: query description: ' List devices with this permission. ' schema: type: string - name: locationId in: query description: ' List devices by location ID. ' example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9QTEFDRS81MTAxQjA3Qi00RjhGLTRFRjctQjU2NS1EQjE5QzdCNzIzRjc= schema: type: string - name: workspaceLocationId in: query description: ' List devices by workspace location ID. Deprecated, prefer `locationId`. ' example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9QTEFDRS81MTAxQjA3Qi00RjhGLTRFRjctQjU2NS1EQjE5QzdCNzIzRjc= schema: type: string - name: mac in: query description: ' List devices with this MAC address. ' schema: type: string - name: devicePlatform in: query description: ' List devices with this device platform. ' example: cisco schema: type: string enum: - cisco - microsoftTeamsRoom - name: plannedMaintenance in: query description: ' List devices with this planned maintenance. ' example: 'off' schema: type: string enum: - 'off' - 'on' - upcoming post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Device' example: id: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 callingDeviceId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9DQUxMSU5HX0RFVklDRS81MTAxQjA3Qi00RjhGLTRFRjctQjU2NS1EQjE5QzdCNzIzRjc= webexDeviceId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 displayName: SFO12-3-PanHandle placeId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU workspaceId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU personId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE capabilities: - xapi permissions: - xapi:readonly connectionStatus: connected product: Cisco Webex DX80 type: roomdesk tags: - First Tag - Second Tag ip: 100.110.120.130 activeInterface: wired mac: 11:22:33:44:AA:FF primarySipUrl: sample_device@sample_workspacename.orgname.org sipUrls: - sample_device@sample_workspacename.orgname.org - another_device@sample_workspacename.orgname.org serial: FOC1923NVVN software: RoomOS 2018-06-01 608dcdbb6e1 upgradeChannel: beta created: '2016-04-21T17:00:00.000Z' locationId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE workspaceLocationId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE errorCodes: - sipprofileregistration firstSeen: '2021-02-24T09:08:38.822Z' lastSeen: '2023-08-15T14:04:00.444Z' managedBy: CISCO devicePlatform: cisco '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: Create a Device by MAC Address operationId: Create a Device by MAC Address description: 'Create a phone by its MAC address in a specific workspace or for a person. Specify the `mac`, `model` and either `workspaceId` or `personId`. * You can get the `model` from the [supported devices](/docs/api/v1/device-call-settings/read-the-list-of-supported-devices) API. * Either `workspaceId` or `personId` should be provided. If both are supplied, the request will be invalid. * The `password` field is only required for third party devices. You can obtain the required third party phone configuration from [here](/docs/api/v1/beta-device-call-settings-with-third-party-device-support/get-third-party-device).
Adding a device to a person with a Webex Calling Standard license will disable Webex Calling across their Webex mobile, tablet, desktop, and browser applications.

When adding devices to a Webex Calling Professional licensed person or workspace, wait for each API call to finish before starting the next. This prevents race conditions that can cause errors when assigning primary versus secondary device status.
' tags: - Devices parameters: - name: orgId in: query description: The organization associated with the device. If left empty, the organization associated with the caller will be used. example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLXdlc3QtMl9yL09SR0FOSVpBVElPTi9mN2I3MzYwYy1lMDcxLTQwN2EtYTU1Ny04NDI4YmIyMjhlODQ schema: type: string requestBody: content: application/json: example: mac: D82E3EEF4E5C model: DMS Cisco 8865 workspaceId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU schema: type: object required: - mac - model properties: mac: type: string example: 54A3152300C8 description: The MAC address of the device being created. model: type: string example: DMS Cisco 8865 description: The model of the device being created. The corresponding device model display name sometimes called the product name, can also be used to specify the model. workspaceId: type: string example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU description: The ID of the workspace where the device will be created. personId: type: string example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9QRU9QTEUvNTAzYmRhODAtOTM4NS00NmQ1LWIzMzAtMGU2NzIyMjQ5MTNh description: The ID of the person who will own the device once created. password: type: string example: TestPassword123& description: SIP password to be configured for the phone, only required with third party devices. /devices/{deviceId}: get: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Device' example: id: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 callingDeviceId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9DQUxMSU5HX0RFVklDRS81MTAxQjA3Qi00RjhGLTRFRjctQjU2NS1EQjE5QzdCNzIzRjc= webexDeviceId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 displayName: SFO12-3-PanHandle placeId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU workspaceId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU personId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE capabilities: - xapi permissions: - xapi:readonly connectionStatus: connected product: Cisco Webex DX80 type: roomdesk tags: - First Tag - Second Tag ip: 100.110.120.130 activeInterface: wired mac: 11:22:33:44:AA:FF primarySipUrl: sample_device@sample_workspacename.orgname.org sipUrls: - sample_device@sample_workspacename.orgname.org - another_device@sample_workspacename.orgname.org serial: FOC1923NVVN software: RoomOS 2018-06-01 608dcdbb6e1 upgradeChannel: beta created: '2016-04-21T17:00:00.000Z' locationId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE workspaceLocationId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE errorCodes: - sipprofileregistration firstSeen: '2021-02-24T09:08:38.822Z' lastSeen: '2023-08-15T14:04:00.444Z' managedBy: CISCO devicePlatform: cisco plannedMaintenance: 'off' '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: Get Device Details operationId: getDeviceDetails description: 'Shows details for a device, by ID. This requires an auth token with the `spark:devices_read` scope to see your own device, or `spark-admin:devices_read` to see any other device in your organization. Specify the device ID in the `deviceId` parameter in the URI.' tags: - Devices parameters: - name: deviceId in: path description: ' A unique identifier for the device. ' required: true example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 schema: type: string - name: orgId in: query description: The organization associated with the device. If left empty, the organization associated with the caller will be used. example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLXdlc3QtMl9yL09SR0FOSVpBVElPTi9mN2I3MzYwYy1lMDcxLTQwN2EtYTU1Ny04NDI4YmIyMjhlODQ schema: type: string delete: responses: '204': description: No Content headers: {} content: {} '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: Delete a Device operationId: Delete a Device description: 'Deletes a device, by ID. Deleting your own device requires an auth token with the `spark:devices_write` scope. Deleting any other device in the organization will require an administrator auth token with the `spark-admin:devices_write` scope. Specify the device ID in the `deviceId` parameter in the URI.
Deleting a device from a person with a Webex Calling Standard license will enable Webex Calling across their Webex mobile, tablet, desktop, and browser applications.
' tags: - Devices parameters: - name: deviceId in: path description: A unique identifier for the device. required: true example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 schema: type: string - name: orgId in: query description: The organization associated with the device. If left empty, the organization associated with the caller will be used. example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLXdlc3QtMl9yL09SR0FOSVpBVElPTi9mN2I3MzYwYy1lMDcxLTQwN2EtYTU1Ny04NDI4YmIyMjhlODQ schema: type: string patch: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Device' example: id: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 callingDeviceId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9DQUxMSU5HX0RFVklDRS81MTAxQjA3Qi00RjhGLTRFRjctQjU2NS1EQjE5QzdCNzIzRjc= webexDeviceId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 displayName: SFO12-3-PanHandle placeId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU workspaceId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU personId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE capabilities: - xapi permissions: - xapi:readonly connectionStatus: connected product: Cisco Webex DX80 type: roomdesk tags: - First Tag - Second Tag ip: 100.110.120.130 activeInterface: wired mac: 11:22:33:44:AA:FF primarySipUrl: sample_device@sample_workspacename.orgname.org sipUrls: - sample_device@sample_workspacename.orgname.org - another_device@sample_workspacename.orgname.org serial: FOC1923NVVN software: RoomOS 2018-06-01 608dcdbb6e1 upgradeChannel: beta created: '2016-04-21T17:00:00.000Z' locationId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE workspaceLocationId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE errorCodes: - sipprofileregistration firstSeen: '2021-02-24T09:08:38.822Z' lastSeen: '2023-08-15T14:04:00.444Z' managedBy: CISCO devicePlatform: cisco '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: Modify Device Tags operationId: Modify Device Tags description: 'Create, delete or update tags on a device. For your own device, this requires an auth token with the `spark:devices_write` scope. An auth token with the `spark-admin:devices_write` scope is required to operate on other devices within the organization. Specify the device ID in the `deviceId` parameter in the URI. Include only the tag array in the request body, no other device attributes can be changed. This action will overwrite any previous tags. A common approach is to first [GET the devices''s details](/docs/api/v1/devices/get-device-details), make changes to the `tags` array, and then PATCH the new complete array with this endpoint.' tags: - Devices parameters: - name: deviceId in: path description: Unique identifier for the device. required: true example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 schema: type: string - name: orgId in: query description: The organization associated with the device. If left empty, the organization associated with the caller will be used. example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLXdlc3QtMl9yL09SR0FOSVpBVElPTi9mN2I3MzYwYy1lMDcxLTQwN2EtYTU1Ny04NDI4YmIyMjhlODQ schema: type: string requestBody: content: application/json-patch+json: example: - op: replace path: tags value: - First Tag - Second Tag schema: type: object properties: op: type: string enum: - add - remove - replace description: " * `add` - Add all specified tags to the existing device tags list.\n * `remove` - Remove all tags that the device currently has.\n * `replace` - Replace the tags currently on the device with the specified list.\n" path: type: string example: tags description: Only the tags path is supported to patch. value: type: array items: type: string example: First Tag,Second Tag /devices/activationCode: post: responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/ActivationCode' example: code: '5414011256173816' expiryTime: '2017-11-16T23:38:03.215Z' '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: Create a Device Activation Code operationId: Create a Device Activation Code description: 'Generate an activation code for a device in a specific workspace by `workspaceId` or for a person by `personId`. This requires an auth token with the `spark-admin:devices_write` scope, and either `identity:placeonetimepassword_create` (allows creating activation codes for workspaces only) or `identity:one_time_password` (allows creating activation codes for workspaces or persons). * Adding a device to a workspace with calling type `none` or `thirdPartySipCalling` will reset the workspace calling type to `freeCalling`. * Either `workspaceId` or `personId` should be provided. If both are supplied, the request will be invalid. * If no `model` is supplied, the `code` returned will only be accepted on RoomOS devices. * If your device is a phone, you must provide the `model` as a field. You can get the `model` from the [supported devices](/docs/api/v1/device-call-settings/read-the-list-of-supported-devices) API.
Adding a device to a person with a Webex Calling Standard license will disable Webex Calling across their Webex mobile, tablet, desktop, and browser applications.

When adding devices to a Webex Calling Professional licensed person or workspace, wait for each API call to finish before starting the next. This prevents race conditions that can cause errors when assigning primary versus secondary device status.
' tags: - Devices parameters: - name: orgId in: query description: The organization associated with the activation code generated. If left empty, the organization associated with the caller will be used. example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLXdlc3QtMl9yL09SR0FOSVpBVElPTi9mN2I3MzYwYy1lMDcxLTQwN2EtYTU1Ny04NDI4YmIyMjhlODQ schema: type: string requestBody: content: application/json: example: workspaceId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU model: DMS Cisco 8865 schema: type: object properties: workspaceId: type: string example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU description: The ID of the workspace where the device will be activated. personId: type: string example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU description: The ID of the person who will own the device once activated. model: type: string example: DMS Cisco 8865 description: The model of the device being created. The corresponding device model display name sometimes called the product name, can also be used to specify the model. components: schemas: DevicePlatform: type: string enum: - cisco - microsoftTeamsRoom description: Device platform example: cisco NetworkConnectivityType: type: string enum: - wired description: The current network connectivity for the device. example: wired DeviceConnectionStatus: type: string enum: - connected - disconnected - connected_with_issues - offline_expired - activating - unknown - offline_deep_sleep description: The connection status of the device. example: connected Device: type: object required: - created properties: id: type: string example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3 description: A unique identifier for the device. displayName: type: string example: SFO12-3-PanHandle description: A friendly name for the device. placeId: type: string example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU description: The `placeId` field has been deprecated. Please use `workspaceId` instead. workspaceId: type: string example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU description: The workspace associated with the device. personId: type: string example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU description: The person associated with the device. orgId: type: string example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE description: The organization associated with the device. capabilities: type: array items: $ref: '#/components/schemas/DeviceCapabilities' description: The capabilities of the device. example: - xapi permissions: type: array items: $ref: '#/components/schemas/DevicePermissions' description: The permissions the user has for this device. For example, `xapi` means this user is entitled to using the `xapi` against this device. example: - xapi:readonly - xapi:all connectionStatus: $ref: '#/components/schemas/DeviceConnectionStatus' product: type: string example: Cisco Webex DX80 description: The product name. A display friendly version of the device's `model`. type: type: string example: roomdesk description: The product type. tags: type: array items: type: string example: First Tag, Second Tag description: Tags assigned to the device. example: - First Tag - Second Tag ip: type: string example: 100.110.120.130 description: The current IP address of the device. activeInterface: $ref: '#/components/schemas/NetworkConnectivityType' mac: type: string example: 11:22:33:44:AA:FF description: The unique address for the network adapter. primarySipUrl: type: string example: sample_device@sample_workspacename.orgname.org description: The primary SIP address to dial this device. sipUrls: example: - sample_device@sample_workspacename.orgname.org - another_device@sample_workspacename.orgname.org type: array items: type: string example: sample_device@sample_workspacename.orgname.org, another_device@sample_workspacename.orgname.org description: All SIP addresses to dial this device. serial: type: string example: FOC1923NVVN description: Serial number for the device. software: type: string example: RoomOS 2018-06-01 608dcdbb6e1 description: The operating system name data and version tag. upgradeChannel: type: string example: beta description: The upgrade channel the device is assigned to. created: type: string example: '2016-04-21T17:00:00.000Z' description: The date and time that the device was registered, in ISO8601 format. locationId: type: string example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE description: The location associated with the device. workspaceLocationId: type: string example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE description: The workspace location associated with the device. Deprecated, prefer `locationId`. errorCodes: example: - sipprofileregistration type: array items: type: string example: sipprofileregistration description: Error codes coming from the device. firstSeen: type: string example: '2021-02-24T09:08:38.822Z' description: Timestamp of the first time device sent a status post. lastSeen: type: string example: '2023-08-15T14:04:00.444Z' description: Timestamp of the last time device sent a status post. managedBy: $ref: '#/components/schemas/ManagedBy' devicePlatform: $ref: '#/components/schemas/DevicePlatform' plannedMaintenance: type: object description: The planned maintenance for the device. properties: mode: type: string enum: - 'off' - 'on' - upcoming description: The planned maintenance mode for the device ActivationCode: type: object properties: code: type: string example: '5414011256173816' description: The activation code. expiryTime: type: string example: '2017-11-16T23:38:03.215Z' description: The date and time the activation code expires. DevicePermissions: type: string enum: - xapi:readonly - xapi:all DeviceCollectionResponse: type: object properties: items: type: array items: $ref: '#/components/schemas/Device' DeviceCapabilities: type: string enum: - xapi ManagedBy: type: string enum: - CISCO - CUSTOMER - PARTNER description: Entity managing the device configuration. example: CISCO 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