openapi: 3.0.3
info:
title: ExtremeCloud IQ Account Client 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: Client
description: The clients associate to the devices of ExtremeCloud IQ
paths:
/clients/active:
get:
tags:
- Client
summary: List active clients
description: List active clients with filters and pagination.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_list_active_clients
operationId: getActiveClients
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/views'
- $ref: '#/components/parameters/locationIds'
- $ref: '#/components/parameters/deviceIds'
- name: vlans
in: query
description: The associate vlan IDs
required: false
schema:
type: array
items:
type: integer
format: int32
- name: userProfileNames
in: query
description: The user profile names
required: false
schema:
type: array
items:
type: string
- name: ssids
in: query
description: The SSIDs
required: false
schema:
type: array
items:
type: string
- name: clientOsNames
in: query
description: The client os names
required: false
schema:
type: array
items:
type: string
- name: clientConnectionTypes
in: query
description: The client connection types - 1 - WIRELESS, 2 - WIRED, -1 - UNDETERMINED
required: false
schema:
type: array
items:
type: integer
- name: clientHealthStatus
in: query
description: The client health status - 1 - HEALTHY, 2 - POOR
required: false
schema:
type: integer
- name: excludeLocallyManaged
in: query
description: Return Cloud managed Devices' clients. Default value - false
required: false
schema:
type: boolean
- name: userNames
in: query
description: The user names.
required: false
schema:
type: array
items:
type: string
- name: searchString
in: query
description: The SearchString
required: false
schema:
type: string
- name: sortField
in: query
description: Sort field. Available values - AUTH_METHOD, CHANNEL, CONNECTED_VIA, CONNECTION_TYPE, DEVICE_NAME, HOST_NAME, IPV4, IPV6, MAC, NAC_DETAILS, NAC_PROFILE, OS_TYPE, REPORTED_BY, START_TIME, USER_NAME, USER_PROFILE, VLAN
required: false
schema:
type: string
- name: sortOrder
in: query
description: Sort order (ascending by default). Available values - ASC, DESC
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PagedXiqClient'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/clients/summary:
get:
tags:
- Client
summary: Get client summary metrics
description: Get number of connected wireless clients and number of detected wired clients.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_client_summary
operationId: getClientSummary
parameters:
- $ref: '#/components/parameters/locationIds'
- $ref: '#/components/parameters/deviceIds'
- name: vlans
in: query
description: The associate VLAN IDs
required: false
schema:
type: array
items:
type: integer
format: int32
- name: userProfileNames
in: query
description: The user profile names
required: false
schema:
type: array
items:
type: string
- name: ssids
in: query
description: The SSIDs
required: false
schema:
type: array
items:
type: string
- name: clientOsNames
in: query
description: The client os names
required: false
schema:
type: array
items:
type: string
- name: clientHealthStatus
in: query
description: The client health status - 1 - HEALTHY, 2 - POOR
required: false
schema:
type: integer
- name: excludeLocallyManaged
in: query
description: Return Cloud managed Devices' clients. Default value - false
required: false
schema:
type: boolean
- name: searchString
in: query
description: The SearchString
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqClientSummary'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/clients/usage:
get:
tags:
- Client
summary: Get usage per client
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_client_usage
operationId: getClientUsage
description: Get the client usage.
parameters:
- name: clientIds
in: query
description: The client IDs
required: true
schema:
type: array
items:
type: integer
format: int64
- $ref: '#/components/parameters/startTime'
- $ref: '#/components/parameters/endTime'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/XiqClientUsage'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/clients/{id}:
get:
tags:
- Client
summary: Get client info
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_client_details
operationId: getClient
description: Get client detailed information.
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/views'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqClient'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/clients/alias:
put:
tags:
- Client
summary: Set the aliases for multiple clients
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_set_aliases_for_multiple_clients
operationId: setClientsAliases
description: Bulk update the aliases for multiple clients based on the mac addresses. Empty or null alias value deletes the previous client alias.
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/XiqClientMacAddressAlias'
required: true
responses:
'200':
description: OK
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/clients/active/count:
get:
tags:
- Client
summary: Get active clients count
description: List active clients count.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_count_of_active_clients
operationId: getActiveClientsCount
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/views'
- $ref: '#/components/parameters/locationIds'
- $ref: '#/components/parameters/deviceIds'
- name: vlans
in: query
description: The associate vlan IDs
required: false
schema:
type: array
items:
type: integer
format: int32
- name: userProfileNames
in: query
description: The user profile names
required: false
schema:
type: array
items:
type: string
- name: ssids
in: query
description: The SSIDs
required: false
schema:
type: array
items:
type: string
- name: clientOsNames
in: query
description: The client os names
required: false
schema:
type: array
items:
type: string
- name: clientConnectionTypes
in: query
description: The client connection types - 1 - WIRELESS, 2 - WIRED, -1 - UNDETERMINED
required: false
schema:
type: array
items:
type: integer
- name: clientHealthStatus
in: query
description: The client health status - 1 - HEALTHY, 2 - POOR
required: false
schema:
type: integer
- name: excludeLocallyManaged
in: query
description: Return Cloud managed Devices' clients. Default value - false
required: false
schema:
type: boolean
- name: searchString
in: query
description: The SearchString
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetActiveClientsResponse'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/clients/byMac/{clientMac}:
delete:
tags:
- Client
summary: Disconnect the client
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_delete_client_by_macaddress
operationId: disconnectClient
description: Disconnect the client.
parameters:
- $ref: '#/components/parameters/mac'
responses:
'200':
description: OK
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/clients/getByMac/{clientMac}:
get:
tags:
- Client
summary: Get client info by mac
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_client_details_for_one_client
operationId: getClientByMac
description: Get detailed client information by mac.
parameters:
- $ref: '#/components/parameters/mac'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/views'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqClient'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/clients/disconnect:
post:
tags:
- Client
summary: Disconnect clients
description: Disconnect one or more clients by their MAC addresses.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_delete_client_by_macaddress
operationId: disconnect_clients
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
mac_addresses:
type: array
description: List of client MAC addresses to disconnect
items:
type: string
format: mac
responses:
'200':
description: OK
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
components:
parameters:
fields:
name: fields
in: query
description: The client fields to return
required: false
schema:
type: array
items:
$ref: '#/components/schemas/XiqClientField'
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
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
views:
name: views
in: query
description: The views to return client fields (Check fields for each view at XiqClientView schema)
required: false
schema:
type: array
items:
$ref: '#/components/schemas/XiqClientView'
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
mac:
name: clientMac
in: path
description: The mac address of client
required: true
schema:
type: string
id:
name: id
in: path
description: The unique identifier
required: true
schema:
type: integer
format: int64
locationIds:
name: locationIds
in: query
description: The location IDs
required: false
schema:
type: array
items:
type: integer
format: int64
deviceIds:
name: deviceIds
in: query
description: The device IDs
required: false
schema:
type: array
items:
type: integer
format: int64
schemas:
PagedXiqClient:
allOf:
- $ref: '#/components/schemas/XiqPage'
- type: object
properties:
data:
type: array
description: The data in the current page
items:
$ref: '#/components/schemas/XiqClient'
XiqLocationEntity:
allOf:
- $ref: '#/components/schemas/XiqViqEntity'
- type: object
properties:
location_id:
type: integer
description: The location identifier
format: int64
required:
- location_id
XiqClientField:
type: string
enum:
- ID
- CREATE_TIME
- UPDATE_TIME
- ORG_ID
- ORG_NAME
- LOCATION_ID
- LOCATIONS
- HOSTNAME
- MAC_ADDRESS
- IP_ADDRESS
- IPV6_ADDRESS
- OS_TYPE
- DEVICE_ID
- DEVICE_FUNCTION
- DEVICE_NAME
- USERNAME
- USER_PROFILE_NAME
- CONNECTED
- ONLINE_TIME
- OFFLINE_TIME
- VLAN
- CONNECTION_TYPE
- SSID
- PORT
- BSSID
- PORT_TYPE_NAME
- INTERFACE_NAME
- AUTH
- ENCRYPTION_METHOD
- CHANNEL
- CLIENT_HEALTH
- APPLICATION_HEALTH
- NETWORK_HEALTH
- RADIO_HEALTH
- RSSI
- SNR
- RADIO_TYPE
- WING_AP
- VENDOR
- MOBILITY
- CATEGORY
- DESCRIPTION
- DEVICE_MAC_ADDRESS
- ALIAS
- PRODUCT_TYPE
- MAKE
- OS_VERSION
- CONNECTED_TO
- CONNECTION_DURATION
- CAPTIVE_WEB_PORTAL
XiqClient:
allOf:
- $ref: '#/components/schemas/XiqDeviceEntity'
- type: object
properties:
hostname:
type: string
description: The hostname of the client
mac_address:
type: string
description: The MAC address of the client
ip_address:
type: string
description: The IP address of the client
ipv6_address:
type: string
description: The IPv6 address of the client
os_type:
type: string
description: The OS type of the client
username:
type: string
description: The username of the client.
user_profile_name:
type: string
description: The user profile name of the client
connected:
type: boolean
description: Client is connected or not
online_time:
type: string
description: The online time for the client
format: date-time
offline_time:
type: string
description: The offline time for the client
format: date-time
vlan:
type: integer
description: The associate VLAN
format: int32
connection_type:
type: integer
description: The connection type
format: int32
ssid:
type: string
description: The SSID
port:
type: string
description: The associate device port
org_name:
type: string
description: The organization name
device_function:
type: integer
description: The associated device function
format: int32
device_mac_address:
type: string
description: The associated device mac address
device_name:
type: string
description: The associated device name
auth:
type: integer
description: The authentication type
format: int32
channel:
type: integer
description: The channel value
format: int32
client_health:
type: integer
description: The health score of client
format: int32
application_health:
type: integer
description: The health score of application
format: int32
radio_health:
type: integer
description: The health score of radio
format: int32
network_health:
type: integer
description: The health score of network
format: int32
radio_type:
type: integer
description: 'The radio type. Represented by an integer code for each standard:
- 1 - 2.4G
- 2 - 5G
- 3 - WIRED
- 4 - 6G
- 5 - THREAD'
format: int32
encryption_method:
type: integer
description: 'The encryption method, represented by an integer code for each encryption type:
- -1 - N/A (Not applicable)
- 0 - AES (Advanced Encryption Standard)
- 1 - TKIP (Temporal Key Integrity Protocol)
- 2 - WEP (Wired Equivalent Privacy)
- 3 - NON (No encryption)
- 4 - CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol)
- 5 - KEYGUARD (Keyguard encryption)
- 6 - WEP128 (128-bit WEP encryption)
- 7 - WEP64 (64-bit WEP encryption)
- 8 - WAPI (WLAN Authentication and Privacy Infrastructure)
- 9 - GCMP256 (256-bit Galois/Counter Mode Protocol)
- 10 - NONE (No encryption)
- 11 - PAP (Password Authentication Protocol)
- 12 - MsCHAP (Microsoft Challenge Handshake Authentication Protocol)
- 13 - EAP-MD5 (Extensible Authentication Protocol - MD5)
- 14 - EAP-TLS (Extensible Authentication Protocol - Transport Layer Security)
- 15 - PEAP (Protected Extensible Authentication Protocol)
- 16 - TTLS (Tunneled Transport Layer Security)
- 17 - TTLS-INNER-TUNNEL (Inner tunnel for TTLS)
- 18 - PEAP-INNER-TUNNEL (Inner tunnel for PEAP)
- 19 - EAP-FAST (Extensible Authentication Protocol - Flexible Authentication via Secure Tunneling)
- 20 - EAP-LEAP (Lightweight Extensible Authentication Protocol)
- 21 - EAP-RSA (Extensible Authentication Protocol - RSA)
- 22 - EAP-SIM (Extensible Authentication Protocol - SIM)
- 23 - EAP-AKA (Extensible Authentication Protocol - AKA)
- 24 - EAP-TEAP (Extensible Authentication Protocol - Tunneled EAP)'
format: int32
mac_protocol:
type: string
description: "The MAC protocol.\n - 'N/A'\n - '802.11a'\n - '802.11b'\n - '802.11g'\n - '802.11na'\n - '802.11ng'\n - '802.11ac'\n - '802.11ax-2.4g'\n - '802.11ax-5g'\n - '802.3'\n - '802.11ax-6g'\n - '802.15.4'\n - '802.11be-2g'\n - '802.11be-5g'\n - '802.11be-6g'"
interface_name:
type: string
description: The interface name
bssid:
type: string
description: The bssid
rssi:
type: integer
description: The RSSI
format: int32
snr:
type: integer
description: The SNR
format: int32
description:
type: string
description: The description of client
category:
type: string
description: The category of client
mobility:
type: string
description: The client mobility
port_type_name:
type: string
description: The client port type name
wing_ap:
type: boolean
description: Wing ap flag
vendor:
type: string
description: The vendor of client
locations:
type: array
description: The detailed location
items:
$ref: '#/components/schemas/XiqLocationLegend'
productType:
type: string
description: The Category which describes the Extreme device types(For example:SR_2208P, AP_4000, AP_5010)
alias:
type: string
maxLength: 255
description: The alias of the client
XiqClientView:
type: string
description: The logic collections of client fields
BASIC: ID, ORG_ID, HOSTNAME, MAC_ADDRESS, IP_ADDRESS, IPV6_ADDRESS, OS_TYPE, DEVICE_ID,CONNECTED, ONLINE_TIME, OFFLINE_TIME, CONNECTION_TYPE, SSID, PORT
FULL: All fields
STATUS: ID, CONNECTED, ONLINE_TIME, OFFLINE_TIME
DETAIL: ID, CREATE_TIME, UPDATE_TIME, ORG_ID, ORG_NAME, LOCATION_ID, HOSTNAME, MAC_ADDRESS, IP_ADDRESS, IPV6_ADDRESS, OS_TYPE, DEVICE_ID, DEVICE_FUNCTION, DEVICE_NAME, DEVICE_MAC_ADDRESS, USERNAME, USER_PROFILE_NAME, CONNECTED, ONLINE_TIME, OFFLINE_TIME, VLAN, CONNECTION_TYPE, SSID, PORT, BSSID, PORT_TYPE_NAME, INTERFACE_NAME, AUTH, ENCRYPTION_METHOD, CHANNEL, RSSI, SNR, WING_AP, VENDOR, RADIO_TYPE, ALIAS, MAC_PROTOCOL, MAKE, OS_VERSION, CONNECTED_TO, CONNECTION_DURATION, CAPTIVE_WEB_PORTAL
LOCATION: ID, LOCATION_ID, LOCATIONS
METRICS: ID, CLIENT_HEALTH, APPLICATION_HEALTH, NETWORK_HEALTH, RADIO_HEALTH
IOT: ID, MOBILITY, CATEGORY, DESCRIPTION
enum:
- BASIC
- FULL
- STATUS
- DETAIL
- LOCATION
- METRICS
- IOT
XiqClientMacAddressAlias:
type: object
description: The client's mac address and alias
required:
- mac_address
properties:
mac_address:
type: string
minLength: 12
maxLength: 12
description: The MAC address of the client
alias:
type: string
maxLength: 255
description: The alias of the client
XiqErrorParams:
type: object
description: Error parameters
properties:
field:
type: string
description: The error field
value:
type: string
description: The error value
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
XiqClientUsage:
type: object
description: The client usage over the period
properties:
client_id:
type: integer
description: The client ID
format: int64
usage:
type: integer
description: The client total usage
format: int64
GetActiveClientsResponse:
type: object
properties:
count:
type: integer
description: The connected wireless client count
format: int64
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
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
XiqClientSummary:
type: object
description: The summary for clients
properties:
connected_wireless_client_count:
type: integer
description: The connected wireless client count
format: int64
detected_wired_client_count:
type: integer
description: The detected wired client count
format: int64
XiqDeviceEntity:
allOf:
- $ref: '#/components/schemas/XiqLocationEntity'
- type: object
properties:
device_id:
type: integer
description: The device identifier
format: int64
required:
- device_id
XiqLocationLegend:
type: object
description: The simple location information
properties:
id:
type: integer
description: The location ID
format: int64
name:
type: string
description: The location name
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