Avaya Category API

Routing is implemented by matching the attributes specified on an engagement, either through customer choice or by business logic, against the attributes associated with the members of the pool of available agents.

Operations 7

POST /accounts/{accountId}/categories Create Category #
GET /accounts/{accountId}/categories List Categories #
GET /accounts/{accountId}/categories/{categoryId} Get Category #
PUT /accounts/{accountId}/categories/{categoryId} Update Category #
DELETE /accounts/{accountId}/categories/{categoryId} Delete Category #
POST /accounts/{accountId}/categories:bulkCreate Bulk Create Categories #
POST /accounts/{accountId}/categories:bulkDelete Bulk Delete Categories #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/avaya-category-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

avaya-category-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Admin - Match Category API
  description: 'Administration of categories, attributes, and queues used in Matching.


    Queue''s are used to identify a pool of contact center agents for which Customer engagements can be matched and routed.'
  contact:
    name: Avaya API Team
    url: https://developers.avayacloud.com/onecloud-ccaas
    email: apiteam@avaya.com
  license:
    name: Avaya Software Development Kit (SDK) Software License Terms
    url: http://support.avaya.com/css/P8/documents/101038288
  version: 1.0.1
servers:
- url: '{protocol}://{server}{basePath}'
  description: Open API
  variables:
    protocol:
      enum:
      - http
      - https
      default: https
    server:
      default: HOST-REGION.api.avayacloud.com
    basePath:
      default: /api/admin/match/v1
- url: '{protocol}://{server}:{port}'
  description: Internal API
  variables:
    protocol:
      enum:
      - http
      - https
      default: http
    server:
      default: cc-admin-assisted
    port:
      enum:
      - '80'
      - '443'
      default: '80'
security:
- BearerAuth: []
  AppKey: []
tags:
- name: Category
  description: 'Routing is implemented by matching the attributes specified on an engagement, either through customer

    choice or by business logic, against the attributes associated with the members of the pool of available agents.'
paths:
  /accounts/{accountId}/categories:
    post:
      tags:
      - Category
      summary: Create Category
      description: Creates a category.
      operationId: createCategory
      parameters:
      - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryCreate'
            examples:
              language:
                $ref: '#/components/examples/PostCategory'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
              examples:
                Create Category Response:
                  $ref: '#/components/examples/GetCategory'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/CategoryNameExists'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
      - Category
      summary: List Categories
      description: Lists all the categories for an account in ascending name order.
      operationId: listCategories
      parameters:
      - $ref: '#/components/parameters/accountId'
      - name: name
        in: query
        description: The optional name of the category to query.
        required: false
        schema:
          type: string
          maxLength: 50
          pattern: ^[^\s|\[\*`/?=;,.\]]([^\[\*`/?=;,.\]]{0,48}[^\s|\[\*`/?=;,.\]])?$
          example: Language
      - $ref: '#/components/parameters/pageNumber'
      - name: pageSize
        in: query
        description: The maximum number of results per page. Default value is 20, max value is 20.
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 20
          default: 20
          example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryPage'
              examples:
                all:
                  $ref: '#/components/examples/AllCategoryResponsePage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/categories/{categoryId}:
    get:
      tags:
      - Category
      summary: Get Category
      description: Gets a category.
      operationId: getCategory
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/categoryId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
              examples:
                language:
                  $ref: '#/components/examples/GetCategory'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - Category
      summary: Update Category
      description: 'Updates a category.


        Any attributes that previously existed within the category will be deleted if they are not re-defined.'
      operationId: updateCategory
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/categoryId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryUpdate'
            examples:
              language:
                $ref: '#/components/examples/PutCategory'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
              examples:
                previous:
                  $ref: '#/components/examples/PrevCategoryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - Category
      summary: Delete Category
      description: Deletes a category.
      operationId: deleteCategory
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/categoryId'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/categories:bulkCreate:
    post:
      tags:
      - Category
      summary: Bulk Create Categories
      description: Bulk creates categories and their attributes.
      operationId: bulkCreateCategories
      parameters:
      - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: List of categories and attributes.
              minItems: 1
              maxItems: 10
              items:
                $ref: '#/components/schemas/CategoryCreate'
            examples:
              language:
                $ref: '#/components/examples/BulkCategoryArray'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Category'
              examples:
                previous:
                  $ref: '#/components/examples/PrevBulkCategoryResponseArray'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/BulkCategoryNameExists'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/categories:bulkDelete:
    post:
      tags:
      - Category
      summary: Bulk Delete Categories
      description: 'Bulk deletes a list of categories.


        Any categories specified that do not require deletion will be ignored.'
      operationId: bulkDeleteCategories
      parameters:
      - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: List of category ids
              minItems: 1
              maxItems: 10
              items:
                $ref: '#/components/schemas/CategoryId'
            examples:
              previous:
                $ref: '#/components/examples/BulkDeleteCategoryArray'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  examples:
    ErrorForbidden:
      description: Forbidden
      value:
        type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#forbidden
        title: Forbidden
        status: 403
        detail: According to the access control policy the current user and/or accountId does not have permission to access this resource.
    BulkDeleteCategoryArray:
      description: 'Array of category ids to delete.

        '
      value:
      - 4331fa35-9671-4ea0-94e0-517097a5a13a
      - a730d229-c386-43df-9241-b5191af2725c
    AllCategoryResponsePage:
      description: 'Page of categories.

        '
      value:
        pagination:
          pageNumber: 2
          pageSize: 10
          total: 3
        categories:
        - categoryId: 4331fa35-9671-4ea0-94e0-517097a5a13a
          name: Language
          attributes:
          - value: French
            name: Language.French
          - value: German
            name: Language.German
        - categoryId: a730d229-c386-43df-9241-b5191af2725c
          name: Product
          attributes:
          - value: Landline
            name: Product.Landline
          - value: Mobile
            name: Product.Mobile
        links:
          next: /api/admin/match/v1/accounts/ABCDEF/categories?pageNumber=3&pageSize=10
          prev: /api/admin/match/v1/accounts/ABCDEF/categories?pageNumber=1&pageSize=10
    PrevBulkCategoryResponseArray:
      description: 'Previous properties, by category.

        '
      value:
      - categoryId: 4331fa35-9671-4ea0-94e0-517097a5a13a
        name: Language
        attributes:
        - value: English
          name: Language.English
        - value: French
          name: Language.French
      - categoryId: a730d229-c386-43df-9241-b5191af2725c
        name: Product
        attributes:
        - value: Landline
          name: Product.Landline
    ErrorConstraintViolation:
      description: Constraint Violation
      value:
        type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation
        title: Constraint Violation
        status: 400
        detail: A problem that indicates a syntactically correct, yet semantically illegal request. The Server can not process this request until the client resolves the semantic errors described in the violations section.
        violations:
        - field: accountId
          message: must match "^[a-zA-Z]{6}$"
          code: 20006
    PrevCategoryResponse:
      description: 'Previous category properties, if found.

        '
      value:
        categoryId: 4331fa35-9671-4ea0-94e0-517097a5a13a
        name: Language
        attributes:
        - value: English
          name: Language.English
        - value: French
          name: Language.French
    ErrorCategoryNameExists:
      description: Constraint Violation
      value:
        type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#conflict
        title: Conflict
        status: 409
        detail: A resource with the same unique constraint values already exists.
        violations:
        - field: name
          message: A category with this name already exists
    ErrorInternalServerError:
      description: Server Error
      value:
        type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#server-error
        title: Server Error
        status: 500
        detail: An internal server error was encountered.
    ErrorNotFound:
      description: Not Found
      value:
        type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#resource-not-found
        title: Resource Not Found
        status: 404
        detail: Either there is no API method associated with the URL path of the request, or the request refers to one or more resources that were not found.
    BulkCategoryArray:
      description: 'Category name can be inferred in attributes.

        '
      value:
      - name: Language
        attributes:
        - value: French
        - value: German
      - name: Product
        attributes:
        - value: Mobile
        - value: Landline
    ErrorUnauthorized:
      description: Unauthorized
      value:
        type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#unauthorized
        title: Unauthorized
        status: 401
        detail: This operation requires authentication. See https://developers.avayacloud.com/onecloud-ccaas/docs/how-to-authenticate-with-ccaas-apis
    ErrorBulkCategoryNameExists:
      description: Constraint Violation
      value:
        type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#conflict
        title: Conflict
        status: 409
        detail: A resource with the same unique constraint values already exists.
        violations:
        - field: bulkCreateCategories.createCategory[0].name
          message: A category with this name already exists
    GetCategory:
      description: 'Generated attribute name included.

        '
      value:
        categoryId: 4331fa35-9671-4ea0-94e0-517097a5a13a
        name: Language
        attributes:
        - value: French
          name: Language.French
        - value: German
          name: Language.German
    PutCategory:
      description: 'Update attributes belonging to category.

        '
      value:
        attributes:
        - value: French
        - value: German
    PostCategory:
      description: 'Create named category with an initial list of attribute values.

        '
      value:
        name: Language
        attributes:
        - value: French
        - value: German
  responses:
    CategoryNameExists:
      description: Conflict
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorCategoryNameExists'
    BulkCategoryNameExists:
      description: Conflict
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorBulkCategoryNameExists'
    NotFound:
      description: Not Found.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorNotFound'
    InternalServerError:
      description: Internal Server Error
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorInternalServerError'
    Forbidden:
      description: Forbidden.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorForbidden'
    Unauthorized:
      description: Unauthorized.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorUnauthorized'
    BadRequest:
      description: Bad Request
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorConstraintViolation'
  schemas:
    CategoryName:
      type: string
      description: The category name.
      maxLength: 50
      pattern: ^[^\s|\[\*`/?=;,.\]]([^\[\*`/?=;,.\]]{0,48}[^\s|\[\*`/?=;,.\]])?$
      example: Language
    CategoryUpdate:
      type: object
      description: Update attributes for matching in category.
      required:
      - attributes
      properties:
        attributes:
          type: array
          description: 'List of attributes. Empty list is supported.

            '
          minItems: 0
          maxItems: 100
          items:
            $ref: '#/components/schemas/Attribute'
    Links:
      type: object
      properties:
        prev:
          type: string
          description: URL of the previous page. Blank if currently on the first page.
        next:
          type: string
          description: URL of the next page. Blank if currently on the last page.
    Category:
      type: object
      description: Category used for matching. Contains the category name and a list of attributes.
      required:
      - name
      - attributes
      properties:
        categoryId:
          $ref: '#/components/schemas/CategoryId'
        name:
          $ref: '#/components/schemas/CategoryName'
        attributes:
          type: array
          description: 'List of attributes. Empty list is supported.

            '
          minItems: 0
          maxItems: 100
          items:
            $ref: '#/components/schemas/Attribute'
    CategoryId:
      type: string
      minLength: 36
      maxLength: 36
      pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$
      description: The unique 36 character internal id that represents the category.
      example: 4331fa35-9671-4ea0-94e0-517097a5a13a
    CategoryCreate:
      type: object
      description: Create a category and its attributes for matching.
      required:
      - name
      - attributes
      properties:
        name:
          $ref: '#/components/schemas/CategoryName'
        attributes:
          type: array
          description: 'List of attributes. Empty list is supported.

            '
          minItems: 0
          maxItems: 100
          items:
            $ref: '#/components/schemas/Attribute'
    AttributeName:
      type: string
      description: The internally generated name of the attribute.
      example: Language.French
      readOnly: true
    AttributeValue:
      type: string
      description: The attribute value.
      maxLength: 50
      pattern: ^[^\s|\[\*`/?=;,.\]]([^\[\*`/?=;,.\]]{0,48}[^\s|\[\*`/?=;,.\]])?$
      example: French
    CategoryPage:
      type: object
      description: Page of matching categories.
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        categories:
          type: array
          description: List of categories.
          items:
            $ref: '#/components/schemas/Category'
        links:
          $ref: '#/components/schemas/Links'
    Pagination:
      type: object
      properties:
        pageNumber:
          type: integer
          description: The current page number.
        pageSize:
          type: integer
          description: The max number of records that can be retrieved on this page.
        total:
          type: integer
          description: The total number of records.
    Attribute:
      type: object
      description: Matching attribute in category
      required:
      - value
      properties:
        value:
          $ref: '#/components/schemas/AttributeValue'
        name:
          $ref: '#/components/schemas/AttributeName'
    Problem:
      type: object
      description: '<b>Problem Detail</b> as a way to carry machine-readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs <a href="https://tools.ietf.org/html/rfc7807">RFC 7807</a>

        '
      properties:
        type:
          type: string
          format: uri
          description: 'An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g., using HTML).

            '
          default: about:blank
          example: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation
        title:
          type:
          - string
          - 'null'
          description: 'A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized).

            '
          example: Service Unavailable
        status:
          type:
          - integer
          - 'null'
          format: int32
          description: 'The HTTP status code generated by the origin server for this occurrence of the problem.

            '
          minimum: 100
          example: 503
          exclusiveMaximum: 600
        detail:
          type:
          - string
          - 'null'
          description: 'A human readable explanation specific to this occurrence of the problem.

            '
          example: Connection to database timed out
        instance:
          type:
          - string
          - 'null'
          format: uri
          description: 'An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

            '
        violations:
          type:
          - array
          - 'null'
          description: 'A list of violations that occurred as a result of invalid data provided as part of a request.

            '
          items:
            type: object
            properties:
              field:
                type: string
                description: 'The name of the field in the request that caused the violation. This can be the name of a path parameter, query parameter, or a field within the request body.

                  '
                example: accountId
              message:
                type: string
                description: 'A human readable explanation specific to this occurrence of the violation.

                  '
                example: must match "^[a-zA-Z]{6}$"
              code:
                type: integer
                format: int32
                description: 'The violation code generated by the server for this occurrence of the violation. Use this code when implementing any error handling logic instead of the message, as the message can change.

                  '
                example: 20006
          example:
          - field: emailAddress
            message: must not be null
            code: 20002
          - field: accountId
            message: must match "^[a-zA-Z]{6}$"
            code: 20006
  parameters:
    accountId:
      name: accountId
      description: The unique 6 character internal id that represents the customer account
      required: true
      in: path
      schema:
        type: string
        minLength: 6
        maxLength: 6
        pattern: ^[a-zA-Z]{6}$
        example: ABCDEF
    categoryId:
      name: categoryId
      description: The unique 36 character internal id (uuid) that represents the category
      required: true
      in: path
      schema:
        type: string
        minLength: 36
        maxLength: 36
        pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$
        example: 4331fa35-9671-4ea0-94e0-517097a5a13a
    pageNumber:
      name: pageNumber
      in: query
      description: The page number of the records to retrieve. Default value is 1.
      schema:
        type: integer
        format: int32
        default: 1
        minimum: 1
        example: 1
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: This API uses Bearer Token Authorization Flow
      bearerFormat: JWT
    AppKey:
      type: apiKey
      in: header
      name: appkey
      description: This API needs an appKey as header.
x-explorer-enabled: false
x-samples-languages:
- curl
- node
- java
- javascript
- python
- go