Extreme Networks Application API

Application management and application metrics

OpenAPI Specification

extreme-networks-application-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ExtremeCloud IQ Account Application API
  description: 'ExtremeCloud IQ™ API allows customers and partners to create solutions for the management, monitoring, and provisioning

    of any ExtremeCloud IQ™ environment.


    All related resources and documentation are available at [ExtremeCloud IQ Developer Portal](https://developer.extremecloudiq.com/).

    Please check [Get Started and Tutorial](https://developer.extremecloudiq.com/documentation/) to understand how to use the APIs.


    Get the [latest OpenAPI definition](https://github.com/extremenetworks/ExtremeCloudIQ-OpenAPI/blob/main/xcloudiq-openapi.yaml)

    from [ExtremeCloud IQ OpenAPI GitHub repository](https://github.com/extremenetworks/ExtremeCloudIQ-OpenAPI).


    Please have a valid [ExtremeCloud IQ](https://extremecloudiq.com/) account before getting started.

    If you don''t have one, please [register a new account](https://www.extremenetworks.com/cloud-networking/).'
  termsOfService: https://www.extremenetworks.com/company/legal/terms-of-use/
  contact:
    name: Extreme Networks Support
    url: https://www.extremenetworks.com/support
    email: support@extremenetworks.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 25.9.0-36
servers:
- url: https://api.extremecloudiq.com
  description: ExtremeCloud IQ REST API Server
tags:
- name: Application
  description: Application management and application metrics
paths:
  /applications:
    get:
      tags:
      - Application
      summary: List the applications
      description: List a page of applications by filter.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_list_the_applications
      operationId: listApplications
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/limit'
      - name: sortField
        in: query
        description: The sort field
        required: false
        schema:
          $ref: '#/components/schemas/XiqApplicationSortField'
      - $ref: '#/components/parameters/order'
      - name: name
        in: query
        description: Application Name
        required: false
        schema:
          type: string
      - name: detectionProtocol
        in: query
        description: Application Detection Protocol, only for custom Application
        required: false
        schema:
          $ref: '#/components/schemas/XiqApplicationDetectionProtocol'
      - name: detectionType
        in: query
        description: Application Detection Type, only for custom Application
        required: false
        schema:
          $ref: '#/components/schemas/XiqApplicationDetectionType'
      - name: predefined
        in: query
        description: Flag to filter predefined or custom Application
        required: false
        schema:
          type: boolean
        example: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedXiqApplication'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /applications/top{n}:
    get:
      tags:
      - Application
      summary: List the TopN applications
      description: List the TopN applications by usage.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_list_top_n_applications_usage
      operationId: listTopApplicationsUsage
      parameters:
      - $ref: '#/components/parameters/n'
      - $ref: '#/components/parameters/startTime'
      - $ref: '#/components/parameters/endTime'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/XiqTopApplicationsUsage'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /applications/{id}/clients/top{n}:
    get:
      tags:
      - Application
      summary: List the TopN clients for a application
      description: List the TopN clients by usage for a specific application.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_list_top_n_clients_usage_for_one_application
      operationId: listApplicationTopClientsUsage
      parameters:
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/n'
      - $ref: '#/components/parameters/startTime'
      - $ref: '#/components/parameters/endTime'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/XiqApplicationTopClientsUsage'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /applications/grid:
    post:
      tags:
      - Application
      summary: List application usage summary
      description: Returns a paginated list of application usage summaries with support for search, filter, and sort.
      operationId: listApplicationUsageSummary
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/limit'
      - name: sort_field
        in: query
        description: Field to sort by (e.g., usage, percentage_usage, clients, users)
        required: false
        schema:
          type: string
          enum:
          - usage
          - percentage_usage
          - clients
          - users
          - application_name
          - category_name
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/async'
      - name: search
        in: query
        description: Search term for application or category name
        required: false
        schema:
          type: string
      requestBody:
        description: Filters for category and number-based columns
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                category_name:
                  type: array
                  items:
                    type: string
                  description: Filter by one or more category (application group) names
                application_name:
                  type: array
                  items:
                    type: string
                  description: Filter by one or more application names
                site_ids:
                  description: List of site IDs to filter the applications grid
                  type: array
                  items:
                    type: integer
                    format: int64
                number_filters:
                  type: array
                  description: 'The number-based column filters available. Available columns: usage, percentageUsage, clients, users.

                    '
                  items:
                    $ref: '#/components/schemas/number_filter'
      responses:
        '200':
          description: A paginated list of application usage summaries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedAppUsageSummary'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /applications/category_metadata:
    get:
      tags:
      - Application
      summary: List application categories and names
      description: Returns a list of unique application category names along with associated application names used in application usage data.
      operationId: listApplicationCategoriesAndNames
      responses:
        '200':
          description: Lists of application categories and application names
          content:
            application/json:
              schema:
                type: object
                properties:
                  categories:
                    type: array
                    items:
                      type: string
                      description: Application category name
                  applicationNames:
                    type: array
                    items:
                      type: string
                      description: Application name
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /applications/grid/export:
    post:
      tags:
      - Application
      summary: Export application usage summary
      description: Export the application usage summary grid as a CSV file.
      operationId: export_application_usage_to_csv
      parameters:
      - name: search
        in: query
        description: Search term for application or category name
        required: false
        schema:
          type: string
      - name: sort_field
        in: query
        description: Field to sort by (e.g., usage, percentage_usage, clients, users)
        required: false
        schema:
          type: string
          enum:
          - usage
          - percentage_usage
          - clients
          - users
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/async'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                category_name:
                  type: array
                  items:
                    type: string
                  description: Filter by one or more category (application group) names
                application_name:
                  type: array
                  items:
                    type: string
                  description: Filter by one or more application names
                site_ids:
                  description: List of site IDs to filter the applications grid
                  type: array
                  items:
                    type: integer
                    format: int64
                number_filters:
                  type: array
                  description: 'The number-based column filters available. Available columns: usage, percentage_usage, clients, users.

                    '
                  items:
                    $ref: '#/components/schemas/number_filter'
      responses:
        '202':
          description: Accepted - The request has been accepted for processing, but the processing has not been completed.
          headers:
            location:
              description: The URL to check the status or download the exported file
              schema:
                type: string
                format: uri
            retry-after:
              description: Time in seconds to wait before polling the status
              schema:
                type: integer
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
components:
  parameters:
    order:
      name: order
      in: query
      description: The sort order (ascending by default)
      required: false
      schema:
        $ref: '#/components/schemas/XiqSortOrder'
    startTime:
      name: startTime
      in: query
      description: The start time to query, epoch time in milliseconds since 1/1/1970
      required: true
      schema:
        type: integer
        format: int64
    page:
      name: page
      in: query
      description: Page number, min = 1
      required: false
      schema:
        minimum: 1
        type: integer
        format: int32
        default: 1
    async:
      in: query
      name: async
      description: Whether to enable async mode
      required: false
      schema:
        type: boolean
        default: false
    limit:
      name: limit
      in: query
      description: Page Size, min = 1, max = 100
      required: false
      schema:
        maximum: 100
        minimum: 1
        type: integer
        format: int32
        default: 10
    endTime:
      name: endTime
      in: query
      description: The end time to query, epoch time in milliseconds since 1/1/1970
      required: true
      schema:
        type: integer
        format: int64
    id:
      name: id
      in: path
      description: The unique identifier
      required: true
      schema:
        type: integer
        format: int64
    n:
      name: n
      in: path
      description: The TopN number
      required: true
      schema:
        maximum: 100
        minimum: 1
        type: integer
        format: int32
  schemas:
    XiqTopApplicationsUsage:
      type: object
      description: The Top N Applications Usage
      properties:
        id:
          type: integer
          description: The application ID
          format: int64
        name:
          type: string
          description: The application name
        clients:
          type: integer
          description: The associated unique client count
          format: int64
        users:
          type: integer
          description: The associated unique user count
          format: int64
        usage:
          type: integer
          description: The application usage
          format: int64
    XiqSortOrder:
      type: string
      enum:
      - ASC
      - DESC
    XiqApplicationDetectionProtocol:
      type: string
      enum:
      - HTTP
      - HTTPS
    PagedXiqApplication:
      allOf:
      - $ref: '#/components/schemas/XiqPage'
      - type: object
        properties:
          data:
            type: array
            description: The data in the current page
            items:
              $ref: '#/components/schemas/XiqApplication'
    XiqApplicationDetectionType:
      type: string
      enum:
      - HOST_NAME
      - SERVER_IP_ADDRESS
      - PORT_NUMBER
    XiqErrorParams:
      type: object
      description: Error parameters
      properties:
        field:
          type: string
          description: The error field
        value:
          type: string
          description: The error value
    number_filter:
      type: object
      description: If the filter type is between, only then min and max are to be used, else value is to be used.
      properties:
        column_name:
          description: The name of the column being filtered
          type: string
        filter_type:
          description: The type of number filter
          type: string
          enum:
          - eq
          - neq
          - gt
          - gte
          - lt
          - lte
          - bw
          - blank
          - notblank
        value:
          description: The value of the number
          type: integer
          format: int64
        min:
          description: The minimum value of the number
          type: integer
          format: int64
        max:
          description: The maximum value of the number
          type: integer
          format: int64
    XiqBaseEntity:
      required:
      - id
      - create_time
      - update_time
      type: object
      properties:
        id:
          type: integer
          description: The unique identifier
          format: int64
        create_time:
          type: string
          description: The create time
          format: date-time
        update_time:
          type: string
          description: The last update time
          format: date-time
    XiqError:
      type: object
      properties:
        error_code:
          type: string
          description: The error code
        error_id:
          type: string
          description: The error ID for internal troubleshooting
        error_message:
          type: string
          description: The error detailed message
        error_message_code:
          type: string
          description: The error message code
        error_message_description:
          type: string
          description: The error message description
        error_params:
          $ref: '#/components/schemas/XiqErrorParams'
      required:
      - error_code
      - error_id
      - error_message
    RmAppUsageSummary:
      type: object
      properties:
        application_name:
          type: string
          description: Name of the application
        category_name:
          type: string
          description: Name of the application group or category
        usage:
          type: integer
          format: int64
          description: Total data usage in bytes for the application
        percentage_usage:
          type: number
          format: float
          description: Percentage of total traffic attributed to this application
        clients:
          type: integer
          description: Number of unique client devices that used the application
        users:
          type: integer
          description: Number of unique users associated with the application
    XiqPage:
      required:
      - count
      - page
      - total_count
      - total_pages
      type: object
      properties:
        page:
          type: integer
          description: The current page number
          format: int32
        count:
          type: integer
          description: The element count of the current page
          format: int32
        total_pages:
          type: integer
          description: The total page number based on request page size
          format: int32
        total_count:
          type: integer
          description: The total element count
          format: int64
    XiqApplication:
      allOf:
      - $ref: '#/components/schemas/XiqViqEntity'
      - type: object
        properties:
          name:
            type: string
            description: The application name.
          description:
            type: string
            description: The application description.
          predefined:
            type: boolean
            description: Flag to describe whether the application is predefined or customized.
          category_id:
            type: integer
            description: The category ID of application.
            format: int64
          category_name:
            type: string
            description: The category name of application.
          detection_rules:
            type: array
            description: The application detection rules.
            items:
              $ref: '#/components/schemas/XiqApplicationDetectionRule'
    XiqViqEntity:
      allOf:
      - $ref: '#/components/schemas/XiqBaseEntity'
      - type: object
        properties:
          org_id:
            type: integer
            description: The organization identifier, valid when enabling HIQ feature
            format: int64
        required:
        - org_id
    XiqApplicationSortField:
      type: string
      enum:
      - NAME
      - CATEGORY
    PagedAppUsageSummary:
      allOf:
      - $ref: '#/components/schemas/XiqPage'
      - type: object
        properties:
          data:
            type: array
            description: The data in the current page
            items:
              $ref: '#/components/schemas/RmAppUsageSummary'
    XiqApplicationTopClientsUsage:
      type: object
      description: The Top N Clients Usage per Application
      properties:
        application_id:
          type: integer
          description: The application ID
          format: int64
        client_id:
          type: integer
          description: The TOP N client ID
          format: int64
        client_mac_address:
          type: string
          description: The MAC address of TOP N client
        client_host_name:
          type: string
          description: The host name of TOP N client
        usage:
          type: integer
          description: The TOP N client usage
          format: int64
    XiqApplicationDetectionRule:
      type: object
      description: The Application Detection Rule
      properties:
        value:
          type: string
          description: The value of detection rule type.
        protocol:
          $ref: '#/components/schemas/XiqApplicationDetectionProtocol'
        type:
          $ref: '#/components/schemas/XiqApplicationDetectionType'
  responses:
    ErrorResponse:
      description: The generic ExtremeCloud IQ API error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/XiqError'
  securitySchemes:
    BearerAuth:
      type: http
      description: JSON Web Token (JWT) based authentication
      scheme: bearer
      bearerFormat: JWT
externalDocs:
  description: API Reference
  url: https://extremecloudiq.com/api-docs/api-reference.html