Extreme Networks NG Reports API

The NG Reports - On Demand Analytics and Scheduled Reporting

OpenAPI Specification

extreme-networks-ng-reports-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ExtremeCloud IQ Account NG Reports 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: NG Reports
  description: The NG Reports - On Demand Analytics and Scheduled Reporting
paths:
  /ng-reports/reports:
    get:
      tags:
      - NG Reports
      summary: Get scheduled reports
      description: Retrieve scheduled reports based on frequency and keyword search.
      operationId: getScheduledReports
      parameters:
      - name: request
        in: query
        description: Type of report to retrieve
        required: true
        schema:
          type: string
          enum:
          - monthly_reports
          - daily_reports
          - weekly_reports
      - name: keyword
        in: query
        description: Keyword to search reports
        required: false
        schema:
          type: string
      responses:
        '200':
          description: A list of scheduled reports
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    report_name:
                      type: string
                      description: Name of the report
                    recipients:
                      type: array
                      items:
                        type: string
                      description: List of report recipients
                    latest_report_pdf:
                      type: string
                      format: uri
                      description: URL to the latest report PDF
                    enable_report:
                      type: boolean
                      description: Indicates if the report is enabled
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
    post:
      tags:
      - NG Reports
      summary: Create a new scheduled report
      description: Create a new scheduled report with specified details.
      operationId: createScheduledReport
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - report_name
              - recipients
              - enable_report
              properties:
                report_name:
                  type: string
                  description: Name of the report
                recipients:
                  type: array
                  items:
                    type: string
                  description: List of email recipients
                enable_report:
                  type: boolean
                  description: Whether the report is enabled
                frequency:
                  type: string
                  enum:
                  - daily_reports
                  - weekly_reports
                  - monthly_reports
                  description: Frequency of the report
      responses:
        '201':
          description: Report successfully created
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /ng-reports/reports/{id}:
    delete:
      tags:
      - NG Reports
      summary: Delete a scheduled report
      description: Delete a scheduled report by its unique identifier.
      operationId: deleteScheduledReport
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '204':
          description: Report successfully deleted (No Content)
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
    put:
      tags:
      - NG Reports
      summary: Update an existing scheduled report
      description: Update the details of a scheduled report by its ID.
      operationId: updateScheduledReport
      parameters:
      - $ref: '#/components/parameters/id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                report_name:
                  type: string
                recipients:
                  type: array
                  items:
                    type: string
                enable_report:
                  type: boolean
                frequency:
                  type: string
                  enum:
                  - daily_reports
                  - weekly_reports
                  - monthly_reports
      responses:
        '200':
          description: Report successfully updated
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /ng-reports/metrics/timeseries.yaml:
    post:
      tags:
      - NG Reports
      summary: Time Series data in NG Reports Metrics
      operationId: timeseriesReportMetrics
      description: This API returns the data for the graph widgets.
      requestBody:
        description: The payload to get the table data metrics data
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/XiqMaxConcurrentClientsRequest'
              - $ref: '#/components/schemas/XiqUniqueWifiClientsRequest'
              - $ref: '#/components/schemas/XiqClientSessionsRequest'
              - $ref: '#/components/schemas/XiqClientAirtimeUsageRequest'
              - $ref: '#/components/schemas/XiqUniqueClientsByOSRequest'
              - $ref: '#/components/schemas/XiqAppTrafficPercentageRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XiqDiagnosticsTimeSeriesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /ng-reports/metrics/tabledata.yaml:
    post:
      tags:
      - NG Reports
      summary: Table Data data in NG Reports Metrics
      description: This API returns the table (raw) Data data in NG Reports Metrics.
      operationId: tabledataReportMetrics
      requestBody:
        description: The payload to get the table data metrics data
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/XiqMaxConcurrentClientsRequest-2'
              - $ref: '#/components/schemas/XiqUniqueWifiClientsRequest-2'
              - $ref: '#/components/schemas/XiqClientSessionsRequest-2'
              - $ref: '#/components/schemas/XiqClientAirtimeUsageRequest-2'
              - $ref: '#/components/schemas/XiqUniqueClientsByOSRequest-2'
              - $ref: '#/components/schemas/XiqAppTrafficPercentageRequest-2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/XiqPage'
                - type: object
                  properties:
                    data:
                      type: array
                      description: The data in the current page
                      items:
                        $ref: '#/components/schemas/XiqDiagnosticsTableDataResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /ng-reports/metrics/metadata/ssid:
    post:
      tags:
      - NG Reports
      summary: Ssid filter metadata
      description: Returns the Ssid filter metadata. You can filter the results by sites,buildings,floor.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_ng-reports_metadata_ssid
      operationId: getDiagnosticsSsidFilterMetadata
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The site ID list to filter
                building_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Building ID list to filter
                floor_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Floor ID list to filter
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The List of Ssids
                items:
                  type: string
        default:
          $ref: '#/components/responses/ErrorResponse'
  /ng-reports/metrics/metadata/os:
    post:
      tags:
      - NG Reports
      summary: Client Os filter metadata
      description: Returns the Client Os filter metadata. You can filter the results by sites,buildings,floor,ssid,band.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_ng-reports_metadata_os
      operationId: getDiagnosticsOsFilterMetadata
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The site ID list to filter
                building_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Building ID list to filter
                floor_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Floor ID list to filter
                ssids:
                  type: array
                  items:
                    type: string
                  description: The Ssid list to filter
                bands:
                  type: array
                  items:
                    type: string
                  description: The Band list to filter
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The List of os
                items:
                  type: string
        default:
          $ref: '#/components/responses/ErrorResponse'
  /ng-reports/metrics/metadata/band:
    post:
      tags:
      - NG Reports
      summary: Band filter metadata
      description: Returns the Band filter metadata. You can filter the results by sites,buildings,floor,ssid.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_ng-reports_metadata_band
      operationId: getDiagnosticsBandFilterMetadata
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The site ID list to filter
                building_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Building ID list to filter
                floor_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Floor ID list to filter
                ssids:
                  type: array
                  items:
                    type: string
                  description: The Ssid list to filter
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The List of Bands
                items:
                  type: string
        default:
          $ref: '#/components/responses/ErrorResponse'
  /ng-reports/metrics/metadata/client:
    post:
      tags:
      - NG Reports
      summary: Client filter metadata
      description: Returns the Client filter metadata. You can filter the results by sites,buildings,floor,usernames.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_ng-reports_metadata_client
      operationId: getDiagnosticsClientFilterMetadata
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The site ID list to filter
                building_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Building ID list to filter
                floor_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Floor ID list to filter
                usernames:
                  type: array
                  items:
                    type: string
                  description: The username list to filter
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The filter metadata available for Client.
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: id
                    hostname:
                      type: string
                      description: Host Name
                    mac_address:
                      type: string
                      description: Mac address
        default:
          $ref: '#/components/responses/ErrorResponse'
  /ng-reports/metrics/metadata/user:
    post:
      tags:
      - NG Reports
      summary: User filter metadata
      description: Returns the user filter metadata. You can filter the results by sites,buildings,floor.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_ng-reports_metadata_user
      operationId: getDiagnosticsUserFilterMetadata
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The site ID list to filter
                building_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Building ID list to filter
                floor_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Floor ID list to filter
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The filter metadata available for User.
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: id
                    username:
                      type: string
                      description: User Name
        default:
          $ref: '#/components/responses/ErrorResponse'
  /ng-reports/metrics/metadata/applications:
    post:
      tags:
      - NG Reports
      summary: Application filter metadata
      description: Returns the Application filter metadata. You can filter the results by sites, buildings, floor, usernames, and client MAC addresses.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_ng-reports_metadata_application
      operationId: getDiagnosticsApplicationFilterMetadata
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The site ID list to filter.
                building_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The building ID list to filter.
                floor_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The floor ID list to filter.
                usernames:
                  type: array
                  items:
                    type: string
                  description: The username list to filter.
                client_macs:
                  type: array
                  items:
                    type: string
                  description: The client MAC list to filter.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The filter metadata available for the application.
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: Application Code.
                    name:
                      type: string
                      description: Application Name.
        default:
          $ref: '#/components/responses/ErrorResponse'
  /ng-reports/metrics/metadata/devices:
    post:
      tags:
      - NG Reports
      summary: Devices filter metadata
      description: Returns the Channel filter metadata. You can filter the results by sites,buildings,floor,channel,band.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_ng-reports_metadata_devices
      operationId: getDiagnosticsDeviceFilterMetadata
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The site ID list to filter
                building_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Building ID list to filter
                floor_ids:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Floor ID list to filter
                bands:
                  type: array
                  items:
                    type: string
                  description: The Band list to filter
                channel:
                  type: array
                  items:
                    type: integer
                    format: int64
                  description: The Channel list to filter
                ostype:
                  type: array
                  items:
                    type: string
                  description: The OsType list to filter
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The filter metadata available for Devices.
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: id
                    hostname:
                      type: string
                      description: Host Name
        default:
          $ref: '#/components/responses/ErrorResponse'
  /ng-reports/metrics/get-metrics-grouping:
    get:
      tags:
      - NG Reports
      summary: Grouping of Metrics
      description: Provides detailed information about the grouping of different metrics.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_ng-reports_metadata_application
      operationId: metricsGrouping
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  clientsAnalytics:
                    type: array
                    items:
                      type: string
                      example: '- maxConcurrentClientsOverTime

                        - uniqueClientsOverTimeBySsid

                        - uniqueWiFiClientsOverTime

                        - clientQualityScopeOverTime

                        - clientSessionsOverTime

                        - clientAirtimeUsageOverTime

                        - wirelessClientsByOs

                        - uniqueClientsByOs

                        '
                  applicationUsageAnalytics:
                    type: array
                    items:
                      type: string
                      example: '- applicationUsage

                        '
                  deviceAnalytics:
                    type: array
                    items:
                      type: string
                      example: '- devicesByClientsOverTime

                        - switchSummary

                        '
        default:
          $ref: '#/components/responses/ErrorResponse'
  /ng-reports/download/reports:
    post:
      tags:
      - NG Reports
      summary: Download NG reports
      description: Returns the Xlsx/pdf for provided metrics on the provided filters.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_post_export_download
      operationId: ngReportDownload
      requestBody:
        description: The payload to get the table data metrics
        required: true
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/XiqDownloadReportsRequest'
      responses:
        '202':
          description: Accepted - The request has been accepted for processing, but processing has not been completed.
          headers:
            cache-control:
              description: Cache control directives
              schema:
                type: string
            content-length:
              description: The length of the response body in octets (8-bit bytes)
              schema:
                type: integer
            date:
              description: The date and time at which the message was originated
              schema:
                type: string
                format: date-time
            expires:
              description: The date/time after which the response is considered stale
              schema:
                type: string
            location:
              description: The URL to check the request status
              schema:
                type: string
                format: uri
            pragma:
              description: Implementation-specific directives that might apply to any recipient
              schema:
                type: string
            ratelimit-limit:
              description: The maximum number of requests allowed in a given time period
              schema:
                type: string
            ratelimit-remaining:
              description: The number of requests remaining in the current rate limit window
              schema:
                type: integer
            retry-after:
              description: Time to wait before making a follow-up request
              schema:
                type: integer
            server:
              description: Server name
              schema:
                type: string
                example: nginx
            x-content-type-options:
              description: Prevents browser from interpreting files as a different MIME type
              schema:
                type: string
            x-xss-protection:
              description: Enables cross-site scripting (XSS) filter
              schema:
                type: string
                format: byte
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /ng-reports/download/reports/{id}:
    get:
      tags:
      - NG Reports
      summary: Download the file
      description: Returns the file for the given metrics based on the provided filters.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_get_metrics_report
      operationId: ngReportExport
      parameters:
      - name: id
        in: path
        description: The file name
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the file for the given metrics
          content:
            application/octet-stream:
              schema:
                type: string
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /ng-reports/information/{metrics}:
    get:
      tags:
      - NG Reports
      summary: Information of filters
      description: Returns the filter for the given metrics.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_get_metrics_report
      operationId: ngReportInfo
      parameters:
      - $ref: '#/components/parameters/id-2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                description: The filter metadata available for metrics.
                items:
                  type: object
                  properties:
                    metrics:
                      type: string
                      description: Unique metric identifier.
                    description:
                      type: string
                      description: Description of the metric.
                    filters_supported:
                      type: array
                      description: List of filters applicable.
                      items:
                        type: string
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
components:
  schemas:
    XiqUniqueWifiClientsRequest-2:
      allOf:
      - type: object
        description: Network Service
        required:
        - service_type
        properties:
          METRICS:
            $ref: '#/components/schemas/XiqReportMetrics'
          sortField:
            description: default TIME_STAMP
            type: string
            enum:
            - TIME_STAMP (default)
            - MAC
            - HOSTNAME
            - CONNECTED_TIME
            - DICONNECTED_TIME
          sortOrder:
            type: string
            description: default ASC
            enum:
            - ASC (default)
            - DESC
          siteIds:
            description: List of Site IDs
            type: array
            items:
              type: integer
              format: int64
          buildingIds:
            description: List of building IDs
            type: array
            items:
              type: integer
              format: int64
          floorIds:
            description: List of Floor IDs
            type: array
            items:
              type: integer
              format: int64
          ssids:
            description: 'List of SSIDs to filter

              '
            type: array
            items:
              type: string
          band:
            description: 'List of Bands to filter

              '
            type: string
            enum:
            - 2.4GHz
            - 5GHz
            - 6GHz
          channelNums:
            description: 'List of channel numbers to filter

              '
            type: array
            items:
              type: integer
              format: int32
          deviceIds:
            description: 'List of deviceIds to filter

              '
            type: array
            items:
              type: integer
              format: int64
          startTime:
            description: Epoch Time in milliseconds since 1/1/1970
            type: array
            items:
              type: integer
              format: int64
          endTime:
            description: Epoch Time in milliseconds since 1/1/1970
            type: array
            items:
              type: integer
              format: int64
          export:
            description: export to CSV format. true will initiate export. default value false
            type: boolean
          pageno:
            description: page number >= 1. Ignored if export is set to true
            type: integer
            format: int
          limit:
            description: size of each page. Ignored if export is set to true
            type: integer
            format: int
          async:
            description: LRO operation. default value false. Will be true if export is set to true
            type: boolean
    XiqMaxConcurrentClientsResponse:
      allOf:
      - type: object
        description: Network Service
        required:
        - service_type
        properties:
          metrics:
            $ref: '#/components/schemas/XiqReportMetrics'
      - type: object
        properties:
          time_stamp:
            type: integer
            description: time in epoch
            format: int64
          user_name:
            type: string
            description: Name of the User
          user_profile_name:
            type: string
            description: Profile Name of the User
          os_name:
            type: string
            description: Profile Name of the operating system
          ssid:
            type: string
            description: ssid
    XiqQoeDiagnosticsTimeRange:
      required:
      - startTime
      - endTime
      type: object
      properties:
        startTime:
          type: integer
          description: Start time

# --- truncated at 32 KB (75 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/extreme-networks/refs/heads/main/openapi/extreme-networks-ng-reports-api-openapi.yml