Juniper Mist AI Sites RRM API

RRM, or Radio Resource Management, is a tool used by large multi-site organizations to efficiently manage their RF spectrum. It involves making decisions on channel and power settings for access points (APs) based on factors such as user experience, client count, client usage, and interference. Mist RRM uses a reinforcement learning-based feedback model to monitor the impact of changes in channel and power settings on the capacity and performance of the wireless network. It adapts dynamically to changing conditions throughout the day and aims to optimize wireless coverage and capacity across a site.

OpenAPI Specification

mist-ai-sites-rrm-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: '> Version: **2604.1.1**

    >

    > Date: **May 13, 2026**

    <div class="notification"> NOTE:<br>Some important API changes will be introduced. Please make sure to read the <a href="https://www.juniper.net/documentation/us/en/software/mist/api/http/guides/important-api-changes">announcements</a> </div>


    ---

    ## Additional Documentation

    * [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)

    * [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)

    * [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)


    ## Helpful Resources

    * [API Sandbox and Exercises](https://api-class.mist.com/)

    * [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)

    * [Python Script Examples](https://github.com/tmunzer/mist_library)

    * [API Demo Apps](https://apps.mist-lab.fr/)

    * [Juniper Blog](https://blogs.juniper.net/)


    ## Mist Web Browser Extension:

    * Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)

    * Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)


    ---'
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist Admins Sites RRM API
  version: 2604.1.1
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: '#FFFFFF'
    url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
  url: https://api.mist.com
- description: Mist Global 02
  url: https://api.gc1.mist.com
- description: Mist Global 03
  url: https://api.ac2.mist.com
- description: Mist Global 04
  url: https://api.gc2.mist.com
- description: Mist Global 05
  url: https://api.gc4.mist.com
- description: Mist EMEA 01
  url: https://api.eu.mist.com
- description: Mist EMEA 02
  url: https://api.gc3.mist.com
- description: Mist EMEA 03
  url: https://api.ac6.mist.com
- description: Mist EMEA 04
  url: https://api.gc6.mist.com
- description: Mist APAC 01
  url: https://api.ac5.mist.com
- description: Mist APAC 02
  url: https://api.gc5.mist.com
- description: Mist APAC 03
  url: https://api.gc7.mist.com
security:
- apiToken: []
- basicAuth: []
- basicAuth: []
  csrfToken: []
tags:
- description: 'RRM, or Radio Resource Management, is a tool used by large multi-site organizations to efficiently manage their RF spectrum.


    It involves making decisions on channel and power settings for access points (APs) based on factors such as user experience, client count, client usage, and interference.


    Mist RRM uses a reinforcement learning-based feedback model to monitor the impact of changes in channel and power settings on the capacity and performance of the wireless network. It adapts dynamically to changing conditions throughout the day and aims to optimize wireless coverage and capacity across a site.'
  name: Sites RRM
paths:
  /api/v1/sites/{site_id}/rrm/channel_scores/band/{band}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - description: 802.11 Band
      in: path
      name: band
      required: true
      schema:
        $ref: '#/components/schemas/dot11_band'
    get:
      description: Get Site Channel Scores
      operationId: getSiteChannelScores
      parameters:
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      responses:
        '200':
          $ref: '#/components/responses/ChannelScores'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteChannelScores
      tags:
      - Sites RRM
  /api/v1/sites/{site_id}/rrm/current:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get Current Channel Planning
      operationId: getSiteCurrentChannelPlanning
      responses:
        '200':
          $ref: '#/components/responses/Rrm'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteCurrentChannelPlanning
      tags:
      - Sites RRM
  /api/v1/sites/{site_id}/rrm/current/devices/{device_id}/band/{band}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/device_id'
    - description: 802.11 Band
      in: path
      name: band
      required: true
      schema:
        $ref: '#/components/schemas/dot11_band'
    get:
      description: Get Current RRM Considerations for an AP on a Specific Band
      operationId: getSiteCurrentRrmConsiderations
      responses:
        '200':
          $ref: '#/components/responses/RrmConsideration'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteCurrentRrmConsiderations
      tags:
      - Sites RRM
  /api/v1/sites/{site_id}/rrm/events:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: List Site RRM Events
      operationId: listSiteRrmEvents
      parameters:
      - $ref: '#/components/parameters/dot11_band'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/RrmEvents'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteRrmEvents
      tags:
      - Sites RRM
  /api/v1/sites/{site_id}/rrm/neighbors/band/{band}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - description: 802.11 Band
      in: path
      name: band
      required: true
      schema:
        $ref: '#/components/schemas/dot11_band'
    get:
      description: List Current RRM observed neighbors
      operationId: listSiteCurrentRrmNeighbors
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/RrmNeighbors'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteCurrentRrmNeighbors
      tags:
      - Sites RRM
components:
  schemas:
    response_rrm_neighbors_results:
      items:
        $ref: '#/components/schemas/rrm_neighbors'
      type: array
      uniqueItems: true
    id:
      description: Unique ID of the object instance in the Mist Organization
      examples:
      - 53f10664-3ce8-4c27-b382-0ef66432349f
      format: uuid
      readOnly: true
      type: string
    rrm_neighbors_neighbor:
      additionalProperties: false
      properties:
        mac:
          examples:
          - 5c5b35000311
          type: string
        rssi:
          examples:
          - -66
          type: integer
      type: object
    rrm_event:
      additionalProperties: false
      properties:
        ap:
          description: AP MAC
          examples:
          - 5c5b350e0001
          type: string
        band:
          $ref: '#/components/schemas/dot11_band'
        bandwidth:
          $ref: '#/components/schemas/dot11_bandwidth'
        channel:
          description: Channel for the band from rrm
          type: integer
        event:
          $ref: '#/components/schemas/rrm_event_type'
        power:
          description: Tx power of the radio
          type: integer
        pre_bandwidth:
          $ref: '#/components/schemas/rrm_event_pre_bandwidth'
        pre_channel:
          description: (previously) channel for the band, 0 means no previously available
          type: integer
        pre_power:
          description: (previously) tx power of the radio, 0 means no previously available
          type: number
        pre_usage:
          type: string
        timestamp:
          $ref: '#/components/schemas/timestamp'
        usage:
          type: string
      required:
      - ap
      - band
      - bandwidth
      - channel
      - event
      - power
      - pre_bandwidth
      - pre_channel
      - pre_power
      - pre_usage
      - timestamp
      - usage
      type: object
    rrm_band_metric_naps_by_channel:
      additionalProperties:
        type: number
      description: Property key is the channel number, value is number of APs on that channel
      type: object
    rftemplate_radio_band5:
      additionalProperties: false
      description: Radio Band AP settings
      properties:
        allow_rrm_disable:
          default: false
          type: boolean
        ant_gain:
          default: 0
          maximum: 10
          minimum: 0
          type:
          - integer
          - 'null'
        antenna_mode:
          $ref: '#/components/schemas/radio_band_antenna_mode'
        bandwidth:
          $ref: '#/components/schemas/dot11_bandwidth5'
        channels:
          $ref: '#/components/schemas/radio_band_channels'
        disabled:
          default: false
          description: Whether to disable the radio
          type: boolean
        power:
          default: null
          description: 'Tx power of the radio. For Devices, 0 means auto. -1 / -2 / -3 / …: treated as 0 / -1 / -2 / …'
          examples:
          - 6
          maximum: 25
          minimum: 5
          type:
          - integer
          - 'null'
        power_max:
          default: 17
          description: When power=0, max tx power to use, HW-specific values will be used if not set
          maximum: 17
          minimum: 5
          type:
          - integer
          - 'null'
        power_min:
          default: 8
          description: When power=0, min tx power to use, HW-specific values will be used if not set
          maximum: 17
          minimum: 5
          type:
          - integer
          - 'null'
        preamble:
          $ref: '#/components/schemas/radio_band_preamble'
      type: object
    rrm_neighbors:
      additionalProperties: false
      properties:
        mac:
          examples:
          - 5c5b35000001
          type: string
        neighbors:
          $ref: '#/components/schemas/rrm_neighbors_neighbors'
      type: object
    response_http403:
      additionalProperties: false
      properties:
        detail:
          examples:
          - You do not have permission to perform this action.
          type: string
      type: object
    rrm_band_metric_naps_by_power:
      additionalProperties:
        type: number
      description: Property key is the power level, value is number of APs on that power level
      type: object
    response_events_rrm:
      additionalProperties: false
      properties:
        end:
          type: integer
        limit:
          type: integer
        next:
          description: Link to query next set of results. value is null if no next page exists.
          type: string
        results:
          $ref: '#/components/schemas/response_events_rrm_results'
        start:
          type: integer
      required:
      - end
      - limit
      - results
      - start
      type: object
    rftemplate_radio_band24:
      additionalProperties: false
      description: Radio Band AP settings
      properties:
        allow_rrm_disable:
          default: false
          type: boolean
        ant_gain:
          default: 0
          maximum: 10
          minimum: 0
          type:
          - integer
          - 'null'
        antenna_mode:
          $ref: '#/components/schemas/radio_band_antenna_mode'
        bandwidth:
          $ref: '#/components/schemas/dot11_bandwidth24'
        channels:
          $ref: '#/components/schemas/radio_band_channels'
        disabled:
          default: false
          description: Whether to disable the radio
          type: boolean
        power:
          default: null
          description: tx power of the radio, null or 0 means auto, when power_min=power_max=power=0 to indicate power=0
          examples:
          - 3
          maximum: 25
          minimum: 3
          type:
          - integer
          - 'null'
        power_max:
          default: 17
          description: When power=0, max tx power to use, HW-specific values will be used if not set
          maximum: 18
          minimum: 3
          type:
          - integer
          - 'null'
        power_min:
          default: 8
          description: When power=0, min tx power to use, HW-specific values will be used if not set
          maximum: 18
          minimum: 3
          type:
          - integer
          - 'null'
        preamble:
          $ref: '#/components/schemas/radio_band_preamble'
      type: object
    rf_template_model_specific_property:
      additionalProperties: false
      properties:
        ant_gain_24:
          default: 0
          type: integer
        ant_gain_5:
          default: 0
          type: integer
        ant_gain_6:
          default: 0
          type: integer
        band_24:
          $ref: '#/components/schemas/rftemplate_radio_band24'
        band_24_usage:
          $ref: '#/components/schemas/radio_band_24_usage'
        band_5:
          $ref: '#/components/schemas/rftemplate_radio_band5'
        band_5_on_24_radio:
          $ref: '#/components/schemas/rftemplate_radio_band5'
        band_6:
          $ref: '#/components/schemas/rftemplate_radio_band6'
      type: object
    response_events_rrm_results:
      items:
        $ref: '#/components/schemas/rrm_event'
      type: array
      uniqueItems: true
    radio_band_24_usage:
      description: 'enum: `24`, `5`, `6`, `auto`'
      enum:
      - '24'
      - '5'
      - '6'
      - auto
      type: string
    rrm_neighbors_neighbors:
      items:
        $ref: '#/components/schemas/rrm_neighbors_neighbor'
      type: array
    response_rrm_neighbors:
      additionalProperties: false
      properties:
        end:
          type: integer
        limit:
          type: integer
        next:
          description: Link to query next set of results. value is null if no next page exists.
          type: string
        results:
          $ref: '#/components/schemas/response_rrm_neighbors_results'
        start:
          type: integer
      required:
      - end
      - limit
      - results
      - start
      type: object
    rrm_event_type:
      description: 'enum: `interference-ap-co-channel`, `interference-ap-non-wifi`, `neighbor-ap-down`, `neighbor-ap-recovered`, `radar-detected`, `rrm-radar`, `scheduled-site_rrm`, `triggered-site_rrm`'
      enum:
      - interference-ap-co-channel
      - interference-ap-non-wifi
      - neighbor-ap-down
      - neighbor-ap-recovered
      - radar-detected
      - rrm-radar
      - scheduled-site_rrm
      - triggered-site_rrm
      type: string
    rf_template:
      description: RF Template
      properties:
        ant_gain_24:
          type: integer
        ant_gain_5:
          type: integer
        ant_gain_6:
          type: integer
        band_24:
          $ref: '#/components/schemas/rftemplate_radio_band24'
        band_24_usage:
          $ref: '#/components/schemas/radio_band_24_usage'
        band_5:
          $ref: '#/components/schemas/rftemplate_radio_band5'
        band_5_on_24_radio:
          $ref: '#/components/schemas/rftemplate_radio_band5'
        band_6:
          $ref: '#/components/schemas/rftemplate_radio_band6'
        country_code:
          description: Optional, country code to use. If specified, this gets applied to all sites using the RF Template
          type: string
        created_time:
          $ref: '#/components/schemas/created_time'
        for_site:
          readOnly: true
          type: boolean
        id:
          $ref: '#/components/schemas/id'
        model_specific:
          additionalProperties:
            $ref: '#/components/schemas/rf_template_model_specific_property'
          description: overwrites for a specific model. If a band is specified, it will shadow the default. Property key is the model name (e.g. "AP63")
          type: object
        modified_time:
          $ref: '#/components/schemas/modified_time'
        name:
          description: The name of the RF template
          type: string
        org_id:
          $ref: '#/components/schemas/org_id'
        scanning_enabled:
          description: Whether scanning radio is enabled
          type: boolean
      required:
      - name
      type: object
    response_http404:
      additionalProperties: false
      properties:
        id:
          type: string
      type: object
    rftemplate_radio_band6:
      additionalProperties: false
      description: Radio Band AP settings
      properties:
        allow_rrm_disable:
          default: false
          type: boolean
        ant_gain:
          default: 0
          maximum: 10
          minimum: 0
          type:
          - integer
          - 'null'
        antenna_mode:
          $ref: '#/components/schemas/radio_band_antenna_mode'
        bandwidth:
          $ref: '#/components/schemas/dot11_bandwidth6'
        channels:
          $ref: '#/components/schemas/radio_band_channels'
        disabled:
          default: false
          description: Whether to disable the radio
          type: boolean
        power:
          default: null
          description: 'Tx power of the radio. For Devices, 0 means auto. -1 / -2 / -3 / …: treated as 0 / -1 / -2 / …'
          examples:
          - 7
          maximum: 25
          minimum: 5
          type:
          - integer
          - 'null'
        power_max:
          default: 18
          description: When power=0, max tx power to use, HW-specific values will be used if not set
          maximum: 18
          minimum: 5
          type:
          - integer
          - 'null'
        power_min:
          default: 8
          description: When power=0, min tx power to use, HW-specific values will be used if not set
          maximum: 18
          minimum: 5
          type:
          - integer
          - 'null'
        preamble:
          $ref: '#/components/schemas/radio_band_preamble'
        standard_power:
          default: false
          description: For 6GHz Only, standard-power operation, AFC (Automatic Frequency Coordination) will be performed, and we'll fall back to Low Power Indoor if AFC failed
          type: boolean
      type: object
    timestamp:
      description: Epoch (seconds)
      format: double
      readOnly: true
      type: number
    modified_time:
      description: When the object has been modified for the last time, in epoch
      format: double
      readOnly: true
      type: number
    rrm_band:
      additionalProperties: false
      properties:
        bandwidth:
          $ref: '#/components/schemas/dot11_bandwidth'
        channel:
          description: proposed channel
          type: integer
        curr_bandwidth:
          $ref: '#/components/schemas/dot11_bandwidth'
        curr_channel:
          description: Current channel
          type: integer
        curr_power:
          description: Current tx power
          type: integer
        curr_usage:
          description: Current radio band
          minLength: 1
          type: string
        power:
          description: proposed tx power
          type: integer
        usage:
          description: proposed radio band
          minLength: 1
          type: string
      type: object
    dot11_bandwidth24:
      default: 20
      description: 'channel width for the 2.4GHz band. enum: `0`(disabled, response only), `20`, `40`'
      enum:
      - 0
      - 20
      - 40
      examples:
      - 20
      type: integer
    radio_band_preamble:
      default: short
      description: 'enum: `auto`, `long`, `short`'
      enum:
      - auto
      - long
      - short
      type: string
    response_http400:
      additionalProperties: false
      properties:
        detail:
          examples:
          - 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
          type: string
      type: object
    dot11_bandwidth6:
      default: 80
      description: 'channel width for the 6GHz band. enum: `0`(disabled, response only), `20`, `40`, `80`, `160`'
      enum:
      - 0
      - 20
      - 40
      - 80
      - 160
      examples:
      - 80
      type: integer
    response_http429:
      additionalProperties: false
      properties:
        detail:
          examples:
          - Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
          type: string
      type: object
    rrm_channel_score:
      additionalProperties: false
      properties:
        channel:
          description: Channel number
          type: integer
        util_score:
          description: Utilization score for the channel, 0-1, lower means cleaner RF
          type: number
        util_score_noise_floor:
          description: Score contribution from noise, 0-1, lower means cleaner RF
          type: number
        util_score_non_wifi:
          description: Score contribution from non-wifi utilization, 0-1, lower means cleaner RF
          type: number
        util_score_other:
          description: Score contribution from RxOtherBss utilization (wifi packets destined for other radios), 0-1, lower means cleaner RF
          type: number
        util_score_radar:
          description: Score contribution from radar detections, 0-1, lower means cleaner RF
          type: number
        util_score_undecodable_wifi:
          description: Score contribution from undecodable wifi utilization (wifi packets which can't be decoded), 0-1, lower means cleaner RF
          type: number
        util_score_unknown_wifi:
          description: Score contribution from unknown wifi utilization (wifi packets of unknown type), 0-1, lower means cleaner RF
          type: number
      required:
      - channel
      - util_score
      - util_score_noise_floor
      - util_score_non_wifi
      - util_score_other
      - util_score_radar
      - util_score_undecodable_wifi
      - util_score_unknown_wifi
      type: object
    radio_band_channels:
      default: []
      description: For RFTemplates. List of channels, null or empty array means auto
      items:
        type: integer
      type:
      - array
      - 'null'
    rrm_consideration:
      additionalProperties: false
      properties:
        channel:
          type: integer
        noise:
          type: number
        other_rssi:
          description: Avg RSSI heard from other APs (that does NOT belongs to the same site)
          type: number
        other_ssid:
          description: SSID from other AP that we heard from with the max RSSI
          type: string
        rssi:
          description: Avg RSSI heard from APs (that belongs to the same site)
          type: number
        util_score:
          description: utilization score, 0-1, lower means less utilization (cleaner RF)
          type: number
        util_score_non_wifi:
          description: non-Wi-Fi utilization score, 0-1, lower means less utilization (cleaner RF)
          type: number
        util_score_other:
          description: other utilization score, 0-1, lower means less utilization (cleaner RF)
          type: number
      required:
      - channel
      - noise
      - util_score
      - util_score_other
      - util_score_non_wifi
      type: object
    radio_band_antenna_mode:
      default: default
      description: 'enum: `1x1`, `2x2`, `3x3`, `4x4`, `default`'
      enum:
      - 1x1
      - 2x2
      - 3x3
      - 4x4
      - default
      examples:
      - default
      type: string
    rrm_event_pre_bandwidth:
      description: '(previously) channel width for the band , 0 means no previously available. enum: `0`, `20`, `40`, `80`, `160`'
      enum:
      - 0
      - 20
      - 40
      - 80
      - 160
      type: integer
    dot11_band:
      description: 'enum: `24`, `5`, `5-dedicated`, `5-selectable`, `6`, `6-dedicated`, `6-selectable`'
      enum:
      - '24'
      - '5'
      - 5-dedicated
      - 5-selectable
      - '6'
      - 6-dedicated
      - 6-selectable
      type: string
    rrm:
      additionalProperties: false
      description: RRM
      properties:
        band_24:
          additionalProperties:
            $ref: '#/components/schemas/rrm_band'
          description: proposal on band 2.4G, key is ap_id, value is the proposal
          type: object
        band_24_metric:
          $ref: '#/components/schemas/rrm_band_metric'
        band_5:
          additionalProperties:
            $ref: '#/components/schemas/rrm_band'
          description: proposal on band 5G, key is ap_id, value is the proposal
          type: object
        band_5_metric:
          $ref: '#/components/schemas/rrm_band_metric'
        band_6:
          additionalProperties:
            $ref: '#/components/schemas/rrm_band'
          description: proposal on band 6G, key is ap_id, value is the proposal
          type: object
        band_6_metric:
          $ref: '#/components/schemas/rrm_band_metric'
        rftemplate:
          $ref: '#/components/schemas/rf_template'
        rftemplate_id:
          format: uuid
          type: string
        rftemplate_name:
          type: string
        status:
          $ref: '#/components/schemas/rrm_status'
        timestamp:
          $ref: '#/components/schemas/timestamp'
      required:
      - band_24
      - band_24_metric
      - band_5
      - band_5_metric
      - rftemplate
      - rftemplate_id
      - rftemplate_name
      - status
      - timestamp
      type: object
    rrm_band_metric_interference:
      additionalProperties: false
      properties:
        radar:
          type: number
      type: object
    response_rrm_consideration_results:
      items:
        $ref: '#/components/schemas/rrm_consideration'
      type: array
      uniqueItems: true
    response_rrm_consideration:
      additionalProperties: false
      properties:
        results:
          $ref: '#/components/schemas/response_rrm_consideration_results'
      required:
      - results
      type: object
    response_http401:
      additionalProperties: false
      properties:
        detail:
          examples:
          - Authentication credentials were not provided.
          type: string
      type: object
    rrm_band_metric:
      additionalProperties: false
      properties:
        avg_aps_per_channel:
          description: Average number of APs per channel
          type: number
        channel_distribution_uniformity:
          description: Distribution of channel across the Access Points
          type: number
        cochannel_neighbors:
          description: Average number of co-channel neighbors
          type: number
        density:
          description: defined by how APs can hear from one and another, 0 - 1 (everyone can hear everyone)
          maximum: 1
          minimum: 0
          type: number
        interferences:
          additionalProperties:
            $ref: '#/components/schemas/rrm_band_metric_interference'
          description: Property key is the channel number
          examples:
          - '149':
              radar: 0.3
            '153':
              radar: 0.2
          type: object
        naps_by_channel:
          $ref: '#/components/schemas/rrm_band_metric_naps_by_channel'
        naps_by_power:
          $ref: '#/components/schemas/rrm_band_metric_naps_by_power'
        neighbors:
          description: Average number of neighbors
          type: number
        noise:
          description: Average noise in dBm
          type: number
      required:
      - cochannel_neighbors
      - density
      - neighbors
      - noise
      type: object
    dot11_bandwidth:
      description: 'channel width for the band.enum: `0`(disabled, response only), `20`, `40`, `80` (only applicable for band_5 and band_6), `160` (only for band_6)'
      enum:
      - 0
      - 20
      - 40
      - 80
      - 160
      examples:
      - 20
      type: integer
    org_id:
      examples:
      - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
      format: uuid
      readOnly: true
      type: string
    response_rrm_channel_scores:
      additionalProperties: false
      properties:
        results:
          $ref: '#/components/schemas/response_rrm_channel_scores_results'
      required:
      - results
      type: object
    created_time:
      description: When the object has been created, in epoch
      format: double
      readOnly: true
      type: number
    rrm_status:
      description: 'enum: `ready`, `unknown`, `updating`'
      enum:
      - ready
      - unknown
      - updating
      type: string
    dot11_bandwidth5:
      default: 40
      description: 'channel width for the 5GHz band. enum: `0`(disabled, response only), `20`, `40`, `80`'
      enum:
      - 0
      - 20
      - 40
      - 80
      examples:
      - 40
      type: integer
    response_rrm_channel_scores_results:
      items:
        $ref: '#/components/schemas/rrm_channel_score'
      type: array
      uniqueItems: true
  parameters:
    device_id:
      in: path
      name: device_id
      required: true
      schema:
        examples:
        - 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    start:
      description: Start time (epoch timestamp in seconds, or relative string like "-1d", "-1w")
      in: query
      name: start
      schema:
        type: string
    duration:
      description: Duration like 7d, 2w
      in: query
      name: duration
      schema:
        default: 1d
        examples:
        - 10m
        type: string
    dot11_band:
      description: 802.11 Band
      in: query
      name: band
      schema:
        $ref: '#/components/schemas/dot11_band'
    page:
      in: query
      name: page
      schema:
        default: 1
        minimum: 1
        type: integer
    end:
      description: End time (epoch timestamp in seconds, or relative string like "-1d", "-2h", "now")
      in: query
      name: end
      schema:
        type: string
    site_id:
      in: path
      name: site_id
      required: true
      schema:
        examples:
        - 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    limit:
      in: query
      name: limit
      schema:
        default: 100
        minimum: 0
        type: integer
  examples:
    ChannelScoresExample:
      value:
        results:
        - channel: 36
          util_score: 0.009
          util_score_noise_floor: 0.001
          util_score_non_wifi: 0.003
          util_score_other: 0.002
          util_score_radar: 0.0
          util_score_undecodable_wifi: 0.004
          util_score_unknown_wifi: 0.0
    HTTP400Example:
      value:
        detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
    HTTP403Example:
      value:
        detail: You do not have permission to perform this action.
    HTTP429Example:
      value:
        detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
    RrmConsiderationExample:
      value:
        results:
        - channel: 36
       

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist-ai/refs/heads/main/openapi/mist-ai-sites-rrm-api-openapi.yml