Webex Licenses API

The Licenses API from Webex — 3 operation(s) for licenses.

OpenAPI Specification

webex-licenses-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Webex Admin Address Book Licenses 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: Licenses
paths:
  /licenses:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LicenseCollectionResponse'
              example:
                items:
                - id: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
                  name: Meeting - Webex Meeting Center
                  totalUnits: 50
                  consumedUnits: 5
                  consumedByUsers: 5
                  consumedByWorkspaces: 0
                  subscriptionId: Sub-hydraOct26a
                  siteUrl: site1-example.webex.com
                  siteType: Control Hub managed site
        '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 Licenses
      operationId: List_Licenses
      description: 'List all licenses for a given organization.  If no `orgId` is specified, the default is the organization of the authenticated user.


        Response properties that are not applicable to the license will not be present in the response.'
      tags:
      - Licenses
      parameters:
      - name: orgId
        in: query
        description: List licenses for this organization.
        example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
        schema:
          type: string
  /licenses/{licenseId}:
    get:
      responses:
        '200':
          description: OK
          headers:
            Link:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LicensewithUsers'
              example:
                id: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
                name: Meeting - Webex Meeting Center
                totalUnits: 50
                consumedUnits: 5
                consumedByUsers: 5
                consumedByWorkspaces: 0
                subscriptionId: Sub-hydraOct26a
                siteUrl: site1-example.webex.com
                siteType: Control Hub managed site
                users:
                - id: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY
                  type: INTERNAL
                  displayName: John Andersen
                  email: john.andersen@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: Get License Details
      operationId: Get_License_Details
      description: 'Shows details for a license, by ID.


        Specify the license ID in the `licenseId` parameter in the URI.

        Use the optional query parameter `includeAssignedTo` to get a list of all objects that are assigned with the license. The objects include but not limited to, users including external users. Long result sets will be split into [pages](/docs/basics#pagination).


        Response properties that are not applicable to the license will not be present in the response.'
      tags:
      - Licenses
      parameters:
      - name: licenseId
        in: path
        description: The unique identifier for the license.
        required: true
        example: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
        schema:
          type: string
      - name: includeAssignedTo
        in: query
        description: The type of object to whom the license is assigned to.
        example: user
        schema:
          type: string
          enum:
          - user
      - name: next
        in: query
        description: List the next set of users. Applicable only if `includeAssignedTo` is populated.
        example: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0VfVVNFUl9QQUdJTkcvT1RaaFltTXlZV0V0TTJSall5MHhNV1UxTFdFeE5USXRabVV6TkRneE9XTmtZemxo
        schema:
          type: string
      - name: limit
        in: query
        description: A limit on the number of users to be returned in the response. Applicable only if `includeAssignedTo` is populated. limit cannot be more than 300.
        example: 0
        schema:
          type: number
          default: 300
  /licenses/users:
    patch:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserLicensesResponse'
              example:
                orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
                personId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY
                email: john.andersen@example.com
                licenses:
                - Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
                - Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWIyNjMtMGY0NTkyYWRlZmFi
                - Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LTIzNDItMGY0NTU2YWRlZXJm
                siteUrls:
                - siteUrl: mysite.webex.com
                  accountType: attendee
                - siteUrl: myhostsite.webex.com
                  accountType: host
        '206':
          description: 'Partial Content: Some licenses were successfully assigned, but others could not be assigned due to various constraints or errors. Compare the returned licenses with the requested licenses to determine which ones failed.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserLicensesResponse'
              example:
                orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
                personId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY
                email: john.andersen@example.com
                licenses:
                - Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
                siteUrls:
                - siteUrl: mysite.webex.com
                  accountType: attendee
        '400':
          description: 'Bad Request: The request was invalid or cannot be otherwise served. Specific error codes indicate license assignment issues.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LicenseError'
              examples:
                locationNotFound:
                  summary: Location not found
                  value:
                    message: Unable to find location
                    errors:
                    - errorCode: 400
                      description: Unable to find location.
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                licenseNotRecognized:
                  summary: License not recognized
                  value:
                    message: License not recognized
                    errors:
                    - errorCode: 400000
                      description: License not recognized {licenses}
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                callingLicenseDowngrade:
                  summary: Webex Calling license downgrade not allowed
                  value:
                    message: License assignment failed
                    errors:
                    - errorCode: 400112
                      description: 'Changing a user''s Webex Calling license from Professional to Standard is not allowed. The following license(s) could not be applied as requested: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                messengerLicenseManagement:
                  summary: Messenger license management not supported
                  value:
                    message: License management not supported
                    errors:
                    - errorCode: 400118
                      description: User management of Messenger license {licenses} is not supported
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                invalidSiteUrl:
                  summary: Invalid attendee site URLs
                  value:
                    message: Invalid site URL
                    errors:
                    - errorCode: 400216
                      description: 'Request contains invalid attendee siteUrls: {siteUrl}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                conflictingCallingLicenses:
                  summary: Conflicting Webex Calling licenses
                  value:
                    message: License conflict
                    errors:
                    - errorCode: 400404
                      description: 'User cannot have both Webex Calling Professional and Standard License together. The following license(s) could not be applied as requested: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                callingStandardAttendantConflict:
                  summary: Webex Calling Standard and Attendant Console conflict
                  value:
                    message: License conflict
                    errors:
                    - errorCode: 400406
                      description: 'User cannot have both Webex Calling Standard and Webex Attendant Console licenses together. The following license(s) could not be applied as requested: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                callingStandardCXEssentialConflict:
                  summary: Webex Calling Standard and CX Essential conflict
                  value:
                    message: License conflict
                    errors:
                    - errorCode: 400407
                      description: 'User cannot have both Webex Calling Standard and CX Essential licenses together. The following license(s) could not be applied as requested: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                attendantConsolePrerequisite:
                  summary: Webex Attendant Console prerequisite missing
                  value:
                    message: License prerequisite missing
                    errors:
                    - errorCode: 400408
                      description: 'User needs Webex Calling Professional license to be assigned before assigning Webex Attendant Console: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                cxEssentialDowngrade:
                  summary: CX Essential to Webex Calling Standard downgrade not allowed
                  value:
                    message: License downgrade not allowed
                    errors:
                    - errorCode: 400410
                      description: 'Changing a user''s license from CX Essential to Webex Calling Standard is not allowed. The following license(s) could not be applied as requested: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                missingCallingProperties:
                  summary: Missing calling properties
                  value:
                    message: License properties missing
                    errors:
                    - errorCode: 400411
                      description: 'Each Webex Calling license should contain its own calling properties. The following license(s) do not have properties: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                exclusiveLicenseConflict:
                  summary: Exclusive license conflict
                  value:
                    message: License conflict
                    errors:
                    - errorCode: 400413
                      description: 'Could not apply the following license(s): {licenses} as the user can be assigned only one of licenses with the offer code from the list:'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                freeMessagingPrerequisite:
                  summary: Free teams messaging prerequisite for paid messaging
                  value:
                    message: License prerequisite missing
                    errors:
                    - errorCode: 700003
                      description: 'Free teams messaging mandatory for paid teams messaging license. The following license could not be applied as requested: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                freeMeetingPrerequisite:
                  summary: Free teams meeting prerequisite for paid meeting
                  value:
                    message: License prerequisite missing
                    errors:
                    - errorCode: 700004
                      description: 'Free teams meeting mandatory for paid teams meeting license. The following license could not be applied as requested: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                messagingPrerequisiteForMeeting:
                  summary: Free teams messaging prerequisite for meeting
                  value:
                    message: License prerequisite missing
                    errors:
                    - errorCode: 700005
                      description: 'Free teams messaging mandatory for teams meeting license. The following license(s) could not be applied as requested: {licenses}'
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
                screenShareImplicit:
                  summary: Screen Share license cannot be removed
                  value:
                    message: License removal not allowed
                    errors:
                    - errorCode: 700006
                      description: Screen Share {licenses} is implicitly assigned and cannot be removed
                    trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
        '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: Assign Licenses to Users
      operationId: Assign_Licenses_to_Users
      description: 'Assign licenses and attendee `siteUrls` to existing users. Only an admin can assign licenses. Only existing users can be assigned a license. Assign meeting licenses to users outside your organization (Status will be pending until the user accepts the invite)


        At least one of the following body parameters is required to assign license to the user: `email`, `personId`. For Calling license assignment, properties `phoneNumber` or `extension` are required. If `phoneNumber` is not provided then `locationId` is mandatory.


        When assigning licenses and attendee siteUrls to a user who does not belong to the organization, the licenses and siteUrls remain in pending state until the user accepts them. The `pendingLicenses` and `pendingSiteUrls` are part of the response.'
      tags:
      - Licenses
      parameters: []
      requestBody:
        content:
          application/json:
            example:
              email: john.andersen@example.com
              personId: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY
              orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
              licenses:
              - id: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
                operation: add
                properties:
                  locationId: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OLzYzNzE1
                  phoneNumber: '+14085267209'
                  extension: '133'
              - id: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LTU2eTctMGY0NTU2YWRleWhu
                operation: remove
              - id: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LTIzNDItMGY0NTU2YWRlZXJm
                operation: add
              siteUrls:
              - siteUrl: mysite.webex.com
                accountType: attendee
                operation: add
            schema:
              $ref: '#/components/schemas/PatchUserLicenses'
components:
  schemas:
    UserLicensesResponse:
      type: object
      properties:
        orgId:
          type: string
          example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
          description: The ID of the organization to which this user belongs.
        personId:
          type: string
          example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY
          description: A unique identifier for the user.
        email:
          type: string
          example: john.andersen@example.com
          description: The email address of this user.
        licenses:
          type: array
          items:
            type: string
            example: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh,Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWIyNjMtMGY0NTkyYWRlZmFi,Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LTIzNDItMGY0NTU2YWRlZXJm
          description: An array of license strings that are assigned to this user.
        siteUrls:
          type: array
          items:
            $ref: '#/components/schemas/SiteResponse'
          description: An array of `siteUrls` and their `accountType` that are assigned to this user.
        pendingLicenses:
          type: array
          items:
            type: string
            example: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYWJj,Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWFiY2Rl
          description: An array of license strings that are in pending state. This is only applicable to users outside the organization.
        pendingSiteUrls:
          type: array
          items:
            $ref: '#/components/schemas/SiteResponse'
          description: An array of `siteUrls` and their `accountType` that are in pending state. This is only applicable to users outside the organization.
    Users:
      type: object
      properties:
        id:
          type: string
          example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mNWIzNjE4Ny1jOGRkLTQ3MjctOGIyZi1mOWM0NDdmMjkwNDY
          description: A unique identifier for the user.
        type:
          type: string
          enum:
          - INTERNAL
          - EXTERNAL
          description: "Indicates if the user is internal or external to the organization.\n * `INTERNAL` - User resides in the license-owned organization.\n * `EXTERNAL` - User resides outside the license-owned organization.\n"
        displayName:
          type: string
          example: John Andersen
          description: The full name of the user.
        email:
          type: string
          example: john.andersen@example.com
          description: Email address of the user.
    SiteResponse:
      type: object
      properties:
        siteUrl:
          type: string
          example: mysite.webex.com
          description: '`siteUrl` assigned to the user.'
        accountType:
          type: string
          enum:
          - attendee
          - host
          description: "Account Type of the site.\n * `attendee` - Attendee account on the site.\n * `host` - Host account on the site.\n"
    License:
      type: object
      properties:
        id:
          type: string
          example: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
          description: A unique identifier for the license.
        name:
          type: string
          example: Meeting - Webex Meeting Center
          description: Name of the licensed feature.
        totalUnits:
          type: number
          example: 50
          description: Total number of license units allocated.
        consumedUnits:
          type: number
          example: 5
          description: Total number of license units consumed.
        consumedByUsers:
          type: number
          example: 5
          description: Total number of license units consumed by users.
        consumedByWorkspaces:
          type: number
          description: Total number of license units consumed by workspaces.
        subscriptionId:
          type: string
          example: Sub-hydraOct26a
          description: The subscription ID associated with this license. This ID is used in other systems, such as Webex Control Hub.
        siteUrl:
          type: string
          example: site1-example.webex.com
          description: The Webex Meetings site associated with this license.
        siteType:
          type: string
          enum:
          - Control Hub managed site
          - Linked site
          - Site Admin managed site
          description: "The type of site associated with this license.\n * `Control Hub managed site` - The site is managed by Webex Control Hub.\n * `Linked site` - The site is a linked site.\n * `Site Admin managed site` - The site is managed by Site Administration.\n"
    LicenseCollectionResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/License'
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: A human readable description of the error.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
          description: An array of error details.
        trackingId:
          type: string
          description: A unique identifier to help with debugging.
    LicensewithUsers:
      type: object
      properties:
        id:
          type: string
          example: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
          description: A unique identifier for the license.
        name:
          type: string
          example: Meeting - Webex Meeting Center
          description: Name of the licensed feature.
        totalUnits:
          type: number
          example: 50
          description: Total number of license units allocated.
        consumedUnits:
          type: number
          example: 5
          description: Total number of license units consumed.
        consumedByUsers:
          type: number
          example: 5
          description: Total number of license units consumed by users.
        consumedByWorkspaces:
          type: number
          description: Total number of license units consumed by workspaces.
        subscriptionId:
          type: string
          example: Sub-hydraOct26a
          description: The subscription ID associated with this license. This ID is used in other systems, such as Webex Control Hub.
        siteUrl:
          type: string
          example: site1-example.webex.com
          description: The Webex Meetings site associated with this license.
        siteType:
          type: string
          enum:
          - Control Hub managed site
          - Linked site
          - Site Admin managed site
          description: "The type of site associated with this license.\n * `Control Hub managed site` - The site is managed by Webex Control Hub.\n * `Linked site` - The site is a linked site.\n * `Site Admin managed site` - The site is managed by Site Administration.\n"
        users:
          type: array
          items:
            $ref: '#/components/schemas/Users'
          description: A list of users to whom the license is assigned to.
    LicenseError:
      allOf:
      - $ref: '#/components/schemas/ErrorResponse'
      example:
        message: License assignment failed
        errors:
        - errorCode: 400112
          description: 'Changing a user''s Webex Calling license from Professional to Standard is not allowed. The following license(s) could not be applied as requested: {licenses}'
        trackingId: NA_88b8b4ce-6338-4d3a-8d6c-22b37e62354f
    LicenseRequest:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          example: Y2lzY29zcGFyazovL3VzL0xJQ0VOU0UvOTZhYmMyYWEtM2RjYy0xMWU1LWExNTItZmUzNDgxOWNkYzlh
          description: A unique identifier for the license.
        operation:
          type: string
          enum:
          - remove
          - add
          description: "Operation type. The default operation is `add` if no operation is specified.\n * `remove` - Remove the license from the user\n * `add` - Assign the license to the user\n"
        properties:
          $ref: '#/components/schemas/LicenseProperties'
    LicenseProperti

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webex/refs/heads/main/openapi/webex-licenses-api-openapi.yml