Extreme Networks User API

Local and external user management in ExtremeCloud IQ account

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/extreme-networks-user-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 email required.

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

OpenAPI Specification

extreme-networks-user-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ExtremeCloud IQ Account User 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: User
  description: Local and external user management in ExtremeCloud IQ account
paths:
  /users:
    get:
      tags:
      - User
      summary: List all users
      description: List users with pagination.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_get_user_list
      operationId: listUsers
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedXiqUser'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
    post:
      tags:
      - User
      summary: Create new user
      description: Create a new user to access.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_create_new_user
      operationId: createUser
      requestBody:
        description: Create new user request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/XiqCreateUserRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XiqUser'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/me:
    get:
      tags:
      - User
      summary: Get current user info
      description: Get currently login user info.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_get_current_user
      operationId: getCurrentUser
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XiqUser'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/{id}:
    get:
      tags:
      - User
      summary: Get user info by ID
      description: Get user info for a specific user.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_get_user
      operationId: getUser
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XiqUser'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
    patch:
      tags:
      - User
      summary: Update user info
      description: Updates user info for a specific user.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_update_user
      operationId: updateUser
      parameters:
      - $ref: '#/components/parameters/id'
      requestBody:
        description: Update user request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/XiqUpdateUserRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XiqUser'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
    delete:
      tags:
      - User
      summary: Delete user by ID
      description: Delete a specific user.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_delete_user
      operationId: deleteUser
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: OK
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/external:
    get:
      tags:
      - User
      summary: List external access users
      description: List a page of external access users.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_get_external_user_list
      operationId: listExternalUsers
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedXiqExternalUser'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
    post:
      tags:
      - User
      summary: Grant external access
      description: Grant external access to a specific user.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_grant_external_user
      operationId: grantExternalUser
      requestBody:
        description: Grant external user request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/XiqGrantExternalUserRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XiqExternalUser'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/external/{id}:
    get:
      tags:
      - User
      summary: Get external access info
      description: Get external access info for a specific external user.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_get_external_user
      operationId: getExternalUser
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XiqExternalUser'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
    patch:
      tags:
      - User
      summary: Update external access info
      description: Updates external access info for a specific user.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_update_external_user
      operationId: updateExternalUser
      parameters:
      - $ref: '#/components/parameters/id'
      requestBody:
        description: Update external user request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/XiqUpdateExternalUserRequest'
            examples:
              Update_external_user_info.:
                description: Update external user info.
                value:
                  user_role: ADMINISTRATOR
        required: true
      responses:
        '200':
          description: OK
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
    delete:
      tags:
      - User
      summary: Revoke external access
      description: Revoke external acccess for a specific user.
      externalDocs:
        description: API Reference
        url: https://extremecloudiq.com/api-docs/api-reference.html#_revoke_external_user
      operationId: revokeExternalUser
      parameters:
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: OK
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/grid:
    post:
      tags:
      - User
      summary: List users
      description: Returns a paginated list of users with support for search, filter, and sort.
      operationId: list_users
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/limit'
      - name: search
        in: query
        description: Search term for user name, email or group
        required: false
        schema:
          type: string
      - name: sort_field
        in: query
        description: Field to sort by
        required: false
        schema:
          type: string
          enum:
          - data_usage
          - session_duration
          - expiration
          - user_name
          - email
          - group
          - source
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/startTime'
      - $ref: '#/components/parameters/endTime'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                user_name:
                  type: array
                  items:
                    type: string
                  description: Filter by user name(s)
                group:
                  type: array
                  items:
                    type: string
                  description: Filter by user group(s)
                email:
                  type: array
                  items:
                    type: string
                  description: Filter by email(s)
                source:
                  type: array
                  items:
                    type: string
                  description: Filter by session source(s)
                status:
                  type: boolean
                  description: Filter by user status
                number_filters:
                  type: array
                  description: 'The number-based column filters available. Available columns: data_usage, session_duration, expiration.

                    '
                  items:
                    $ref: '#/components/schemas/number_filter'
                site_ids:
                  description: List of site IDs to filter the users grid
                  type: array
                  items:
                    type: integer
                    format: int64
      responses:
        '200':
          description: A paginated list of user sessions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmPagedUsers'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/filter_metadata:
    post:
      tags:
      - User
      summary: List user grid filter metadata
      description: Returns lists of available values for user_name, group, and source fields used in the user grid.
      operationId: listUserGridFilterMetadata
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  description: List of site IDs to filter the users grid
                  type: array
                  items:
                    type: integer
                    format: int64
      responses:
        '200':
          description: Lists of values for user grid filters
          content:
            application/json:
              schema:
                type: object
                properties:
                  user_names:
                    type: array
                    items:
                      type: string
                    description: List of unique user names
                  groups:
                    type: array
                    items:
                      type: string
                    description: List of unique user groups
                  sources:
                    type: array
                    items:
                      type: string
                    description: List of unique session sources
                  emails:
                    type: array
                    items:
                      type: string
                    description: List of unique emails
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/type_distribution:
    post:
      tags:
      - User
      summary: Get user type distribution
      description: Returns the percentage distribution of connected users by type (PPSK, RADIUS, Others) and the total number of connected users.
      operationId: getUserTypeDistribution
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  description: List of site IDs to filter the users grid
                  type: array
                  items:
                    type: integer
                    format: int64
      responses:
        '200':
          description: User type distribution and total connected users
          content:
            application/json:
              schema:
                type: object
                properties:
                  ppsk_percentage:
                    type: number
                    format: float
                    description: Percentage of users authenticated via PPSK
                  radius_percentage:
                    type: number
                    format: float
                    description: Percentage of users authenticated via RADIUS
                  others_percentage:
                    type: number
                    format: float
                    description: Percentage of users authenticated via other methods
                  total_connected_users:
                    type: integer
                    description: Total number of connected users
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/data_usage:
    post:
      tags:
      - User
      summary: Get user data usage
      description: Returns data usage in bytes for each user.
      operationId: getUserDataUsage
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                site_ids:
                  description: List of site IDs to filter the users grid
                  type: array
                  items:
                    type: integer
                    format: int64
      responses:
        '200':
          description: Data usage per user
          content:
            application/json:
              schema:
                type: object
                properties:
                  users:
                    type: array
                    items:
                      type: object
                      properties:
                        user_name:
                          type: string
                          description: Name or identifier of the user
                        data_usage_gb:
                          type: number
                          format: float
                          description: Data usage in bytes
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - BearerAuth: []
  /users/grid_export:
    post:
      tags:
      - User
      summary: Export user grid
      description: Export the user grid data as a CSV file.
      operationId: exportUserGridToCsv
      parameters:
      - name: search
        in: query
        description: Search term for user name, email or group
        required: false
        schema:
          type: string
      - name: sort_field
        in: query
        description: Field to sort by
        required: false
        schema:
          type: string
          enum:
          - data_usage
          - session_duration
          - expiration
          - user_name
          - email
          - group
          - source
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/startTime'
      - $ref: '#/components/parameters/endTime'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                user_name:
                  type: array
                  items:
                    type: string
                  description: Filter by user name(s)
                group:
                  type: array
                  items:
                    type: string
                  description: Filter by user group(s)
                source:
                  type: array
                  items:
                    type: string
                  description: Filter by session source(s)
                email:
                  type: array
                  items:
                    type: string
                  description: Filter by email(s)
                site_ids:
                  description: List of site IDs to filter the client health grid
                  type: array
                  items:
                    type: integer
                    format: int64
                number_filters:
                  type: array
                  description: 'The number-based column filters available. Available columns: data_usage, session_duration, expiration.

                    '
                  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'
    page:
      name: page
      in: query
      description: Page number, min = 1
      required: false
      schema:
        minimum: 1
        type: integer
        format: int32
        default: 1
    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
    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
  schemas:
    XiqSortOrder:
      type: string
      enum:
      - ASC
      - DESC
    RmUsers:
      type: object
      properties:
        status:
          type: boolean
          description: The connection status of user
        site:
          type: string
          description: The site where the user is located
        building:
          type: string
          description: The building where the user is located
        floor:
          type: string
          description: The floor where the user is located
        user_name:
          type: string
          description: Name of the user
        email:
          type: string
          description: Email address of the user
        group:
          type: string
          description: Group to which the user belongs
        wireless_clients:
          type: integer
          description: The number of wireless clients
        wired_clients:
          type: integer
          description: The number of wired clients
        data_usage:
          type: integer
          format: int64
          description: Total data usage in bytes
        source:
          type: string
          description: Source of the session (e.g., RADIUS, SAML)
        session_duration:
          type: integer
          format: int64
          description: Duration of the session in seconds
        expiration:
          type: integer
          format: int64
          description: Time in seconds until the session expires
    XiqGrantExternalUserRequest:
      type: object
      required:
      - login_name
      - user_role
      properties:
        login_name:
          type: string
          description: Login name, i.e. username or login Email
        user_role:
          $ref: '#/components/schemas/XiqUserRole'
        org_id:
          type: integer
          description: The HIQ organization ID if it is HIQ user, otherwise leave it as empty
          format: int64
        enable_api_access:
          type: boolean
          description: Whether to enable API access, false by default
    RmPagedUsers:
      allOf:
      - $ref: '#/components/schemas/XiqPage'
      - type: object
        properties:
          data:
            type: array
            description: The data in the current page
            items:
              $ref: '#/components/schemas/RmUsers'
    PagedXiqExternalUser:
      allOf:
      - $ref: '#/components/schemas/XiqPage'
      - type: object
        properties:
          data:
            type: array
            description: The data in the current page
            items:
              $ref: '#/components/schemas/XiqExternalUser'
    XiqUser:
      allOf:
      - $ref: '#/components/schemas/XiqBaseEntity'
      - type: object
        required:
        - login_name
        properties:
          login_name:
            type: string
            description: Login name, i.e. username or login Email
          first_name:
            type: string
            description: The first name
          last_name:
            type: string
            description: The last name, i.e. family name
          display_name:
            type: string
            description: The name to display
          phone:
            type: string
            description: The Phone Number
          job_title:
            type: string
            description: The job title
          locale:
            type: string
            description: The locale
          user_role:
            $ref: '#/components/schemas/XiqUserRole'
          idle_timeout:
            type: integer
            description: The idle timeout in minutes, the minimum value is 5 minutes and the maximum value is 4 hours
            format: int32
          last_login_time:
            type: string
            description: The last login time
            format: date-time
          org_id:
            type: integer
            description: The HIQ organization ID if it is HIQ user
            format: int64
    XiqErrorParams:
      type: object
      description: Error parameters
      properties:
        field:
          type: string
          description: The error field
        value:
          type: string
          description: The error value
    XiqUpdateUserRequest:
      type: object
      properties:
        login_name:
          type: string
          description: Login name, i.e. username or login Email
        display_name:
          type: string
          description: The user name to display
        idle_timeout:
          type: integer
          description: The idle timeout in minutes, the minimum value is 5 minutes and the maximum value is 4 hours
          format: int32
        user_role:
          $ref: '#/components/schemas/XiqUserRole'
    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
    XiqExternalUser:
      allOf:
      - $ref: '#/components/schemas/XiqBaseEntity'
      - type: object
        required:
        - login_name
        - user_role
        properties:
          login_name:
            type: string
            description: Login name, i.e. username or login Email
          user_role:
            $ref: '#/components/schemas/XiqUserRole'
          org_id:
            type: integer
            description: The HIQ organization ID if it is HIQ user.
            format: int64
          enable_api_access:
            type: boolean
            description: Whether to enable API access.
    PagedXiqUser:
      allOf:
      - $ref: '#/components/schemas/XiqPage'
      - type: object
        properties:
          data:
            type: array
            description: The data in the current page
            items:
              $ref: '#/components/schemas/XiqUser'
    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
    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
    XiqUpdateExternalUserRequest:
      type: object
      properties:
        user_role:
          $ref: '#/components/schemas/XiqUserRole'
        org_id:
          type: integer
          description: The HIQ organization ID if it is HIQ user, otherwise leave it as empty.
          format: int64
        enable_api_access:
          type: boolean
          description: Whether to enable API access, false by default.
    XiqCreateUserRequest:
      type: object
      required:
      - login_name
      - display_name
      - user_role
      properties:
        login_name:
          type: string
          description: Login name, i.e. username or login Email
        display_name:
          type: string
          description: The user name to display
        idle_timeout:
          type: integer
          description: The idle timeout in minutes, the minimum value is 5 minutes and the maximum value is 4 hours
          format: int32
        user_role:
          $ref: '#/components/schemas/XiqUserRole'
    XiqUserRole:
      type: string
      description: The user administrative role.
      enum:
      - ADMINISTRATOR
      - OPERATOR
      - MONITOR
      - HELP_DESK
      - GUEST_MANAGEMENT
      - OBSERVER
      - INSTALLER
      - APPLICATION_OPERATOR
  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