openapi: 3.0.3
info:
title: ExtremeCloud IQ Account AFC 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: AFC
description: ExtremeCloud IQ AFC Feature.
paths:
/afcserver:
get:
tags:
- AFC
summary: Get list of AFC Servers
description: Get list of AFC Servers.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_list_afc_servers
operationId: listAfcServers
parameters:
- $ref: '#/components/parameters/ownerId'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqListAfcServers'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/afcserver/statistics/{server_id}:
get:
tags:
- AFC
summary: Get AFC server Statistics
description: Get AFC server Statistics.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_afc_server_statistics
operationId: getAfcServerStatistics
parameters:
- name: server_id
in: path
description: The Id of the server
required: true
schema:
type: integer
format: int64
- name: startTime
in: query
description: Query Start Time
required: true
schema:
type: integer
format: int64
- name: endTime
in: query
description: Query End Time
required: true
schema:
type: integer
format: int64
- name: precision
in: query
description: precision specified in seconds
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcServersStatistics'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/ap/afc/interface/details/{sn}:
get:
tags:
- AFC
summary: Get AP Interface status
description: Get AP Interface status info.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_afc_ap_interface_details
operationId: getAfcApDetails
parameters:
- $ref: '#/components/parameters/sn'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcApInterfaceDetails'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/afc/recalculateSite/{id}:
post:
tags:
- AFC
summary: AFC Recalculate Geolocation
description: Recalculate geolocation for site.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_recalculate_afc_site
operationId: recalculateSite
parameters:
- name: id
in: path
description: The device id
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/afc/aps/reportFtm:
post:
tags:
- AFC
summary: Request FTM data for APs
description: Request FTM data for a list of Access Points.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_request_ftm_data
operationId: requestAfcFtmData
requestBody:
description: List of APs to request FTM data
content:
application/json:
schema:
$ref: '#/components/schemas/XiqReportFtmDataRequest'
required: true
responses:
'200':
description: OK
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/afc/aps/status/summary:
get:
tags:
- AFC
summary: AFC AP status Summary
description: AFC Status summary of AP channels and powers query.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_afc_ap_status_stats
operationId: getAfcApsStatusSummary
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcApStatusSummary'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/floor/afc/details:
get:
tags:
- AFC
summary: Get AFC Floor Details
description: Retrieve AFC related floor height and accuracy data for a specific floor.
operationId: getFloorAfcProperties
parameters:
- $ref: '#/components/parameters/ownerId'
- name: floorId
in: query
description: The Id of the floor
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcFloorDetails'
security:
- BearerAuth: []
post:
tags:
- AFC
summary: Add AFC Floor Details
description: Create new AFC related floor height and accuracy data for a floor.
operationId: addFloorAfcProperties
requestBody:
description: Floor AFC related properties body
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcFloorDetails'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcFloorDetails'
security:
- BearerAuth: []
put:
tags:
- AFC
summary: Update AFC Floor Details
description: Update existing AFC related floor height and accuracy data for a floor.
operationId: updateFloorAfcProperties
requestBody:
description: Floor AFC related properties body
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcFloorDetails'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcFloorDetails'
security:
- BearerAuth: []
/aps/afc/query:
get:
tags:
- AFC
summary: Query AFC APs
description: Retrieve AFC summary information for access points including status, geolocation, and spectrum mismatch data.
operationId: getApsAfcSummaryInfo
parameters:
- $ref: '#/components/parameters/ownerId'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcApsInfoElement'
security:
- BearerAuth: []
post:
tags:
- AFC
summary: Query AFC APs
description: Retrieve AFC summary information for access points including status, geolocation, and spectrum mismatch data.
operationId: getApsAfcSummaryInfoWithFilter
parameters:
- $ref: '#/components/parameters/ownerId'
requestBody:
content:
application/json:
schema:
type: object
properties:
site_ids:
description: List of site IDs to filter the device list
type: array
items:
type: integer
format: int64
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcApsInfoElement'
security:
- BearerAuth: []
/ap/afc/diagnostics/{id}:
get:
tags:
- AFC
summary: Get AFC AP Diagnostics
description: Retrieve AFC diagnostics information.
operationId: getApsAfcDiagnostics
parameters:
- $ref: '#/components/parameters/ownerId'
- name: id
in: path
description: device id
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcApDiagnostics'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/ap/afc/floorReport/{deviceId}:
get:
summary: Get AFC Floor Report
description: Retrieves the AFC geolocation floor report for a specific device.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_afc_geolocation_floor_report
operationId: getAfcGeolocationFloorReport
tags:
- AFC
parameters:
- name: deviceId
in: path
description: Device ID
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/XiqGetAfcGeolocationFloorReportResponse'
example:
floor_report: Floor geolocation report data for AFC calculations
security:
- BearerAuth: []
/aps/afc/update:
post:
tags:
- AFC
summary: Request Manual Spectrum for device(s)
description: Manual Spectrum request for device(s).
operationId: postApsManualAfcSpectrum
requestBody:
description: AFC site schedule request body
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcApManualSpectrum'
required: true
responses:
'200':
description: OK
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/site/afc/schedule:
get:
tags:
- AFC
summary: Get AFC Site Schedule
description: Get AFC site update settings.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_get_afc_site_schedule
operationId: getAfcSiteSchedule
parameters:
- $ref: '#/components/parameters/ownerId'
- $ref: '#/components/parameters/folderId'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/XiqAfcSiteScheduleResponse'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
post:
tags:
- AFC
summary: Create AFC Site Schedule
description: Create AFC Site Schedule.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_add_afc_site_schedule
operationId: addAfcSiteSchedule
requestBody:
description: The body of the Site Schedule
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcSiteSchedule'
required: true
responses:
'200':
description: OK
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
put:
tags:
- AFC
summary: Update AFC SiteSchedule
description: Update AFC SiteSchedule.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_update_afc_site_schedule
operationId: updateAfcSiteSchedule
requestBody:
description: The body of the Site Schedule
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcSiteSchedule'
required: true
responses:
'200':
description: OK
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
/afc/mobileapp/apcandidates:
post:
tags:
- AFC
summary: Find potential AP candidates to be used as anchor
description: Find potential AP candidates to be used as anchor.
externalDocs:
description: API Reference
url: https://extremecloudiq.com/api-docs/api-reference.html#_afc_mobileapp_apcandidates
operationId: afcMobileappApCandidates
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/XiqAfcMobileappScanInfo'
responses:
'200':
description: List of AP candidates that may be used as anchors
content:
application/json:
schema:
$ref: '#/components/schemas/XiqMobileappAnchorCandidatesResponse'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- BearerAuth: []
components:
schemas:
XiqAfcApDiagnostics:
type: object
description: AFC AP Diagnostics containing spectrum details
properties:
afc_spectrum_details:
type: string
description: AFC spectrum details for the AP diagnostics
XiqListAfcServers:
type: object
properties:
servers:
type: array
description: List of AFC servers
items:
$ref: '#/components/schemas/XiqAfcServer'
XiqAfcSiteScheduleResponse:
allOf:
- type: object
properties:
ownerId:
type: integer
format: int64
folderId:
type: integer
format: int64
description: Site folder ID, retrievable through device inventory API
example: 67890
siteTimeZone:
type: string
description: The timezone identifier for the site location, uses TZ database time zones format
example: America/New_York
siteSchedule:
type: integer
format: int64
description: The time of day in milliseconds since 00:00:00 (midnight) in the specified timezone when AFC spectrum recalculation should be performed for this site. Default is 0 (midnight) for new outdoor sites.
example: 7200000
default_schedule:
type: boolean
XiqAfcFloorDetails:
type: object
description: AFC Floor Details containing floor and AP height information
properties:
id:
type: integer
format: int64
description: Unique identifier for the floor details record
floor_id:
type: integer
format: int64
description: The ID of the floor
floor_height:
type: number
format: float
description: Height of the floor
floor_height_accuracy:
type: integer
format: int64
description: Accuracy of the floor height measurement
ap_height:
type: number
format: float
description: Height of the access point
ap_height_accuracy:
type: integer
format: int64
description: Accuracy of the AP height measurement
XiqAfcMobileappCoordinates:
allOf:
- type: object
properties:
latitude:
type: number
description: Latitude expressed as a floating point number
minimum: -90
maximum: 90
longitude:
type: number
description: Longitude expressed as a floating point number
minimum: -180
maximum: 180
source:
$ref: '#/components/schemas/XiqAfcCoordinatesSource'
ts:
type: number
description: Timestamp of the acquired geolocation (milliseconds from epoch)
XiqAfcAvailableSpectrum:
type: object
properties:
request_id:
type: string
description: serial number of AP
available_channel_info:
type: array
description: Available channel information for this AP
items:
$ref: '#/components/schemas/XiqAvailableChannelInfo'
availability_expire_time:
type: string
description: Expiration time for the spectrum availability in ISO 8601 format
XiqAfcMobileappAnchorCandidate:
allOf:
- type: object
properties:
id:
type: integer
description: The device unique identifier
format: int64
serial:
type: string
description: The device serial number
name:
type: string
description: AP name
mac_address:
$ref: '#/components/schemas/XiqMacAddress'
make:
type: string
description: 'The product make, such as: WiNG, Aerohive, Extreme etc.'
product_type:
type: string
description: 'The product type, such as: AP_5050U, AP_5050D, AP_5020 etc.'
location:
type: string
description: The location of the device, including floor name
bssid:
$ref: '#/components/schemas/XiqMacAddress'
description: Base radio BSSID
gpsAnchor:
type: boolean
default: false
description: Use this AP as GPS anchor to derive geo-coordinates of other APs on the floor
coordinates:
$ref: '#/components/schemas/XiqAfcMobileappCoordinates'
neighbors:
type: integer
description: Number of neighboring APs.
XiqAfcServerState:
type: string
description: Status of AFC server connection
enum:
- CONNECTED
- DNS_ERROR
- UNREACHABLE
- CONNECTION_REFUSED
- INVALID_CERT
- REVOKED_CERT
- NOT_FOUND
- HTTP_ERROR
- INVALID_RESPONSE
- CONNECTION_RESET
- READ_TIMEOUT
- UNKNOWN_ERROR
XiqGetAfcGeolocationFloorReportResponse:
type: object
description: Response containing AFC floor report data
properties:
floor_report:
type: string
description: 'Floor geolocation report data used for AFC (Automated Frequency Coordination) calculations.
'
required:
- floor_report
XiqAfcServersStatistics:
allOf:
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/XiqAfcServerStatistics'
description: List of AFC server statistics
XiqAfcServer:
type: object
properties:
state:
$ref: '#/components/schemas/XiqAfcServerState'
server_url:
type: string
description: URL of the AFC server
example: https://extremeserver.afc.wi-fi.com/api/9FxgegHdMPWi2sfJ
region:
type: string
description: The country or regulatory region for which the AFC server provides service
example: United States
server_id:
type: integer
format: int64
description: The unique identifier of the AFC server
example: 2
XiqAfcServerStatistics:
allOf:
- type: object
properties:
id:
type: integer
format: int64
description: The unique identifier
create_time:
type: string
format: date-time
description: The create time
update_time:
type: string
format: date-time
description: The last update time
connection_state:
type: string
description: The connection state of the AFC server
enum:
- CONNECTED
- DISCONNECTED
- CONNECTING
- ERROR
timestamp:
type: integer
format: int64
description: The timestamp of the statistics data point
XiqErrorParams:
type: object
description: Error parameters
properties:
field:
type: string
description: The error field
value:
type: string
description: The error value
XiqAfcMobileappScanInfo:
allOf:
- type: object
properties:
ownerId:
type: integer
format: int64
bssidList:
type: array
description: Base radio BSSIDs reported by the mobile application scan
items:
$ref: '#/components/schemas/XiqMacAddress'
XiqAfcApsInfoElement:
type: object
description: AFC APs Information Element containing status summaries
properties:
total_devices:
type: integer
description: Total number of AFC supported APs
afc_status:
$ref: '#/components/schemas/XiqAfcStatusSummary'
description: AFC status summary information
geo_location:
$ref: '#/components/schemas/XiqAfcGeolocationSummary'
description: Geolocation summary information
spectrum_mismatch:
$ref: '#/components/schemas/XiqSpectrumMismatchSummary'
description: Spectrum mismatch summary information
XiqAvailableChannelInfo:
type: object
properties:
global_operating_class:
type: integer
description: "Operating class:\n- 131 = 20MHz bandwidth\n- 132 = 40MHz bandwidth \n- 133 = 80MHz bandwidth\n- 134 = 160MHz bandwidth\n- 137 = 320MHz bandwidth\n"
channel_cfi:
type: array
description: RF channel numbers
items:
type: integer
max_eirp:
type: array
description: Maximum RF power in dB
items:
type: number
format: double
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
XiqAfcApStatus:
type: string
description: Status of AP AFC.
enum:
- PENDING
- GRACE_PERIOD
- AVAILABLE
- NA
XiqReportFtmDataRequest:
type: object
properties:
owner_id:
type: integer
format: int64
description: The owner ID
ids:
type: array
description: List of Access Point IDs to request FTM data for
items:
type: integer
format: int64
required:
- owner_id
- ids
XiqMacAddress:
description: Colon separated MAC address in upper or lower case
type: string
pattern: ^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$
example: 18:09:F8:61:6B:C0
XiqAfcGeolocationSummary:
allOf:
- type: object
properties:
total_available:
type: integer
description: Total number of Aps that have reported their geo location.
total_unavailable:
type: integer
description: Total number of Aps that have not reported their geo location.
XiqSpectrumMismatchSummary:
type: object
description: Spectrum Mismatch Summary information
properties:
total_backup:
type: integer
description: Total number of APs in backup mode
total_radio_off:
type: integer
description: Total number of APs with radio off
total_reduced:
type: integer
description: Total number of APs with reduced power
XiqAfcStatusSummary:
type: object
description: AFC Status Summary information
properties:
total_available:
type: integer
description: Total number of APs available
total_pending:
type: integer
description: Total number of APs pending
total_grace_period:
type: integer
description: Total number of APs in grace period
XiqAfcApStatusSummary:
allOf:
- type: object
properties:
totalAvailable:
type: integer
totalPending:
type: integer
totalGracePeriod:
type: integer
XiqAfcCoordinatesSource:
type: string
description: Source of coordinates:
APP - Mobile Application GPS coordinates,
GPS - AP reported GPS coordinates,
GEO - Geolocation Agent derived coordinates
enum:
- APP
- GPS
- GEO
XiqAfcApManualSpectrum:
type: object
description: Manual spectrum request for AFC AP devices
properties:
ids:
type: array
description: List of AP device IDs for manual spectrum request
items:
type: integer
format: int64
required:
- ids
XiqAfcApInterfaceDetails:
type: object
properties:
status:
$ref: '#/components/schemas/XiqAfcApStatus'
expire:
type: integer
format: int64
description: Timestamp of the next AP channel/power info query (seconds from epoch)
received:
type: integer
format: int64
description: Timestamp of the acquired channel/power (seconds from epoch)
reason:
type: string
description: Reason for the current AFC status
spectrum:
$ref: '#/components/schemas/XiqAfcAvailableSpectrum'
band_width:
type: integer
format: int64
description: Bandwidth used by the AP
XiqMobileappAnchorCandidatesResponse:
type: object
properties:
candidates:
description: List of AP candidates that may be used as anchors
type: array
items:
$ref: '#/components/schemas/XiqAfcMobileappAnchorCandidate'
description: The response for afc mobile app anchor candidates
XiqAfcSiteSchedule:
allOf:
- type: object
properties:
ownerId:
type: integer
format: int64
folderId:
type: integer
format: int64
description: Site folder ID, retrievable through device inventory API
example: 67890
siteTimeZone:
type: string
description: The timezone identifier for the site location, uses TZ database time zones format
example: America/New_York
siteSchedule:
type: integer
format: int64
description: The time of day in milliseconds since 00:00:00 (midnight) in the specified timezone when AFC spectrum recalculation should be performed for this site. Default is 0 (midnight) for new outdoor sites.
example: 7200000
isDefaultSchedule:
type: boolean
parameters:
folderId:
name: folderId
in: query
description: The folder id for the location
required: true
schema:
type: integer
format: int64
sn:
name: sn
in: path
description: The serial number of an Ap.
required: true
schema:
type: string
ownerId:
name: ownerId
in: query
description: The Owner Id
required: true
schema:
type: integer
format: int64
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