Avaya Hybrid Skill API

Administration of Hybrid Skills. These APIs are expected to be called by an account administrator.

Operations 5

POST /accounts/{accountId}/communication-managers/{communicationManagerId}/skills Create Hybrid Skill #
GET /accounts/{accountId}/communication-managers/{communicationManagerId}/skills List Hybrid Skills #
PUT /accounts/{accountId}/communication-managers/{communicationManagerId}/skills/{skillId} Update Hybrid Skill #
GET /accounts/{accountId}/communication-managers/{communicationManagerId}/skills/{skillId} Get Hybrid Skill #
DELETE /accounts/{accountId}/communication-managers/{communicationManagerId}/skills/{skillId} Delete Hybrid Skill #

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-hybrid-skill-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-hybrid-skill-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Admin - Voice Hybrid Skill API
  description: 'The Voice provider APIs are used to manage information about voice specific elements and different voice related entities e.g. Phone numbers.


    Voice Services will support multiple ways to provision voice providers

    1. Programmatic Interface (Rest APIs)

    2. User Interface'
  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.2
servers:
- url: '{protocol}://{server}{basePath}'
  description: Open API
  variables:
    protocol:
      enum:
      - https
      default: https
    server:
      default: HOST-REGION.api.avayacloud.com
    basePath:
      default: /api/admin/voice/v1
security:
- {}
- BearerAuth: []
  AppKey: []
tags:
- name: Hybrid Skill
  description: Administration of Hybrid Skills. These APIs are expected to be called by an account administrator.
paths:
  /accounts/{accountId}/communication-managers/{communicationManagerId}/skills:
    post:
      tags:
      - Hybrid Skill
      summary: Create Hybrid Skill
      description: '**This API requires the Account Administrator role.**


        Create a skill for specified account id and communication manager server id'
      operationId: createSkill
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/communicationManagerId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateHybridSkill'
            examples:
              default:
                $ref: '#/components/examples/HybridSkillRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HybridSkillResponse'
              examples:
                Skill:
                  $ref: '#/components/examples/HybridSkillResponse'
        '207':
          description: Partial success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HybridSkillResponse'
              examples:
                Skill:
                  $ref: '#/components/examples/HybridSkillResponsePartial'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
      - Hybrid Skill
      summary: List Hybrid Skills
      description: '**This API requires the Account Administrator role.**


        Returns the list of all available Skills by account Id and communication manager Id'
      operationId: getAllSkills
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/communicationManagerId'
      - $ref: '#/components/parameters/pageNumber'
      - name: pageSize
        in: query
        description: 'The max number of records to retrieve per page. Default value is 10.

          '
        required: false
        schema:
          type: integer
          format: int32
          example: 5
          default: 10
          minimum: 5
          maximum: 50
      - name: filter
        in: query
        required: false
        description: "Specifies details of a row filter.\n\n The possible fields that can be filtered on are:\n  * name\n  * number\n  * extension\n\n\nThe allowed format:\n  - Begins with the column name to be filtered, followed by a colon, then:\n    - Either an exact string to match, or\n    - A string expression including the * wildcard character\n      - :{PREFIX}* will be used to find out word start with.\n      - :*{POSTFIX} will be used to find out word end with\n      - : will be used to match exact word\n  - Begin with column name to be filtered, followed by a = operator. (this will be used to match exact string)\n"
        schema:
          type: string
          maxLength: 255
        examples:
          exact:
            description: Example of filtering based on an exact string.
            value: name=French
          prefix:
            description: Example of filtering based on a prefix string.
            value: name:French*
          postfix:
            description: Example of filtering based on a postfix string.
            value: name:*French
      - name: orderBy
        in: query
        required: false
        description: 'Field name on which ordering needs to be performed. The default order is ascending.


          The possible fields that can be ordered on are:

          * name

          * number

          * extension


          Field Names are case-senstive (should be written as it is in description).


          To specify descending order, a suffix " desc" should be added. For example, "name" for ascending or "name desc" for descending".

          '
        schema:
          type: string
          default: name
          maxLength: 255
        examples:
          ascending:
            value: name
          descending:
            value: name desc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HybridSkillPage'
              examples:
                default:
                  $ref: '#/components/examples/HybridSkillPageResponse'
        '400':
          description: Constraint violation for accountId
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                default:
                  $ref: '#/components/examples/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/communication-managers/{communicationManagerId}/skills/{skillId}:
    put:
      tags:
      - Hybrid Skill
      summary: Update Hybrid Skill
      description: '**This API requires the Account Administrator role.**


        Update an existing Skill with Skill id, account & communication manager id'
      operationId: updateSkill
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/communicationManagerId'
      - $ref: '#/components/parameters/skillId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HybridSkill'
            examples:
              default:
                $ref: '#/components/examples/UpdateHybridSkillRequest'
        required: true
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HybridSkillResponse'
              examples:
                default:
                  $ref: '#/components/examples/HybridSkillResponse'
        '207':
          description: Partial success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HybridSkillResponse'
              examples:
                Skill:
                  $ref: '#/components/examples/HybridSkillResponsePartial'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
      - Hybrid Skill
      summary: Get Hybrid Skill
      description: '**This API requires the Account Administrator role.**


        Returns the details of Skill, based on Skill id, account id and communication manager id'
      operationId: getSkill
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/communicationManagerId'
      - $ref: '#/components/parameters/skillId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HybridSkillResponse'
              examples:
                default:
                  $ref: '#/components/examples/HybridSkillResponse'
        '207':
          description: Partial success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HybridSkillResponse'
              examples:
                Skill:
                  $ref: '#/components/examples/HybridSkillResponsePartial'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - Hybrid Skill
      summary: Delete Hybrid Skill
      description: '**This API requires the Account Administrator role.**


        Deletes an existing Skill identified by Skill id.'
      operationId: deleteSkill
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/communicationManagerId'
      - $ref: '#/components/parameters/skillId'
      responses:
        '204':
          description: No Content
        '207':
          description: Partial success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HybridSkillResponse'
              examples:
                Skill:
                  $ref: '#/components/examples/HybridSkillResponsePartial'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '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 does not have permission to access this resource.
    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
    HybridSkillResponsePartial:
      description: Single skill response
      value:
        id: 1f15835f-1365-4913-acf3-0ffd0767ad6e
        number: '8000'
        name: French
        extension: '253647784'
        agentAssistProfileId: 6a305019-a43c-4ed4-8dab-324d82dd9d55
        errorMessage: Failure in agent assist API while skill creation
    HybridSkillRequest:
      description: Request model for creating a Skill.
      value:
        name: French
        number: '1'
        extension: '253647784'
        agentAssistProfileId: 1f15835f-1365-4913-acf3-0ffd0767ad6e
    HybridSkillPageResponse:
      description: Lists all Skills.
      value:
        pagination:
          pageNumber: 2
          pageSize: 10
          total: 20
        skills:
        - id: 7700d655-5807-4738-a868-712740a18199
          name: French
          number: '11'
          extension: '253647784'
        - id: 8b2ae74d-61e5-48df-8b32-81a7bc726495
          name: English
          number: '12'
          extension: '253647784'
        links:
          prev: /api/admin/voice/v1/accounts/NCWBNY/communication-managers/5e9be49a-32d3-4927-83c7-7b0952798028/skills?pageNumber=1&pageSize=10
          next: /api/admin/voice/v1/accounts/NCWBNY/communication-managers/5e9be49a-32d3-4927-83c7-7b0952798028/skills?pageNumber=3&pageSize=10
    ErrorMethodNotAllowed:
      description: Method not allowed
      value:
        title: Method not allowed
        status: 405
        detail: The request calls an HTTP method that is not supported at the resource.
    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.
    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
    UpdateHybridSkillRequest:
      description: Request model for updating a Skill.
      value:
        name: French
        number: '1'
        extension: '253647784'
        agentAssistProfileId: 1f15835f-1365-4913-acf3-0ffd0767ad6e
    HybridSkillResponse:
      description: Single skill response
      value:
        id: 1f15835f-1365-4913-acf3-0ffd0767ad6e
        number: '8000'
        name: French
        extension: '253647784'
        agentAssistProfileId: 6a305019-a43c-4ed4-8dab-324d82dd9d55
    ErrorConflict:
      description: Conflict
      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: Communication Manager with same name already exists.
        - field: hostname
          message: Communication Manager with same hostname 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.
  responses:
    NotFound:
      description: Not Found
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorNotFound'
    InternalServerError:
      description: All other application errors
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorInternalServerError'
    ErrorConstraintViolation:
      description: Constraint Violation
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorConstraintViolation'
    Conflict:
      description: Conflict
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorConflict'
    Forbidden:
      description: Forbidden
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorForbidden'
    MethodNotAllowed:
      description: Method Not Allowed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorMethodNotAllowed'
    Unauthorized:
      description: Unauthorized
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            default:
              $ref: '#/components/examples/ErrorUnauthorized'
  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
    skillId:
      name: skillId
      in: path
      description: Id of existing skill
      required: true
      schema:
        type: string
        format: uuid
        example: 1f15835f-1365-4913-acf3-0ffd0767ad6e
    pageNumber:
      name: pageNumber
      in: query
      description: The page number of the records to retrieve. Default value is 1.
      required: false
      schema:
        type: integer
        format: int32
        example: 1
        default: 1
        minimum: 1
    communicationManagerId:
      name: communicationManagerId
      description: The unique id of the Communication Manager
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 2ec20580-d204-43f3-ae0b-34795439137f
  schemas:
    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.
    HybridSkillResponseWithoutAgentAssistProfileId:
      title: HybridSkillResponseWithoutAgentAssistProfileId
      type: object
      description: Represents the model used to get details of a single Skill.
      properties:
        id:
          type: string
          description: The unique id of Skill
          readOnly: true
          format: uuid
          example: 7700d655-5807-4738-a868-712740a18199
        name:
          type: string
          example: French
          minLength: 1
          maxLength: 27
          pattern: ^[a-zA-Z0-9\p{L}\-\_\.\ ]+$
        number:
          type: string
          example: '8000'
          minLength: 1
          maxLength: 4
          pattern: ^[0-9]*$
        extension:
          type: string
          description: The extension number of skill unique per communication manager.
          example: '914565637786'
          minLength: 1
          maxLength: 16
          pattern: ^[1-9][0-9]*$
    HybridSkill:
      title: HybridSkill
      type: object
      description: Hybrid Skill for specific account and communication manager server.
      properties:
        id:
          type: string
          description: The unique id of Skill
          readOnly: true
          format: uuid
          example: 7700d655-5807-4738-a868-712740a18199
        number:
          type: string
          example: '8000'
          description: The skill unique per communication manager.
          minLength: 1
          maxLength: 4
          pattern: ^[0-9]*$
        name:
          type: string
          example: French
          minLength: 1
          maxLength: 27
          pattern: ^[a-zA-Z0-9\p{L}\-\_\.\ ]+$
        extension:
          type: string
          example: '914565637786'
          description: The extension number of skill unique per communication manager.
          minLength: 1
          maxLength: 16
          pattern: ^[1-9][0-9]*$
        agentAssistProfileId:
          type: string
          format: uuid
          description: Agent Assist Profile ID reterived from Agent Assist service.
          example: 36c707a7-7a29-4cd7-82c0-60a61346ed29
      required:
      - number
      - name
      - extension
    HybridSkillResponse:
      title: HybridSkillResponse
      type: object
      description: Represents the model used to get details of a single Skill.
      properties:
        id:
          type: string
          description: The unique id of Skill
          readOnly: true
          format: uuid
          example: 7700d655-5807-4738-a868-712740a18199
        name:
          type: string
          example: French
          minLength: 1
          maxLength: 27
          pattern: ^[a-zA-Z0-9\p{L}\-\_\.\ ]+$
        number:
          type: string
          example: '8000'
          minLength: 1
          maxLength: 4
          pattern: ^[0-9]*$
        extension:
          type: string
          description: The extension number of skill unique per communication manager.
          example: '914565637786'
          minLength: 1
          maxLength: 16
          pattern: ^[1-9][0-9]*$
        agentAssistProfileId:
          type: string
          format: uuid
          description: Agent Assist Profile ID reterived from Agent Assist service.
          example: 36c707a7-7a29-4cd7-82c0-60a61346ed29
        errorMessage:
          type: string
          example: Failed to delete skill
          description: The error message in case of failure from agent assist API.
    HybridSkillPage:
      title: HybridSkillPage
      type: object
      description: Hybrid Skill filtered response
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        skills:
          type: array
          items:
            $ref: '#/components/schemas/HybridSkillResponseWithoutAgentAssistProfileId'
        links:
          allOf:
          - $ref: '#/components/schemas/Links'
          example:
            prev: /api/admin/voice/v1/accounts/{accountId}/communication-managers/{communicationManagerId}/skills?pageNumber=1&pageSize=10
            next: /api/admin/voice/v1/accounts/{accountId}/communication-managers/{communicationManagerId}/skills?pageNumber=3&pageSize=10
    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.
    CreateHybridSkill:
      title: CreateHybridSkill
      type: object
      description: Hybrid Skill for specific account and communication manager server.
      properties:
        number:
          type: string
          example: '8000'
          description: The skill unique per communication manager.
          minLength: 1
          maxLength: 4
          pattern: ^[0-9]*$
        name:
          type: string
          example: French
          minLength: 1
          maxLength: 27
          pattern: ^[a-zA-Z0-9\p{L}\-\_\.\ ]+$
        extension:
          type: string
          example: '914565637786'
          description: The extension number of skill unique per communication manager.
          minLength: 1
          maxLength: 16
          pattern: ^[1-9][0-9]*$
        agentAssistProfileId:
          type: string
          format: uuid
          description: Agent Assist Profile ID reterived from Agent Assist service.
          example: 36c707a7-7a29-4cd7-82c0-60a61346ed29
      required:
      - number
      - name
      - extension
    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
  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