Mist Sites Wlans API

A Site Wlan is a wireless local area network that is configured and applied to a specific site within an organization. It allows for the creation and management of wireless network settings, such as SSIDs (service set identifiers), authentication settings, VLAN configurations, etc... for a particular site. Site Wlans are created and managed at the site level and can only be referenced and used within that particular site.

OpenAPI Specification

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

    >

    > Date: **July 10, 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 Wlans API
  version: 2606.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: []
- csrfToken: []
tags:
- description: 'A Site Wlan is a wireless local area network that is configured and applied to a specific site within an organization.


    It allows for the creation and management of wireless network settings, such as SSIDs (service set identifiers), authentication settings, VLAN configurations, etc... for a particular site.


    Site Wlans are created and managed at the site level and can only be referenced and used within that particular site.'
  name: Sites Wlans
paths:
  /api/v1/sites/{site_id}/wlans:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get List of Site WLANs
      operationId: listSiteWlans
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/WlansArray'
        '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: listSiteWlans
      tags:
      - Sites Wlans
    post:
      description: Create Site WLAN
      operationId: createSiteWlan
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  acct_immediate_update: false
                  acct_interim_interval: 0
                  acct_servers:
                  - host: 1.2.3.4
                    keywrap_enabled: true
                    keywrap_format: hex
                    keywrap_kek: '1122334455'
                    keywrap_mack: '1122334455'
                    port: 1813
                    secret: testing123
                  airwatch:
                    api_key: aHhlbGxvYXNkZmFzZGZhc2Rmc2RmCg=="
                    console_url: https://hs1.airwatchportals.com
                    enabled: true
                    password: user1
                    username: test123
                  allow_ipv6_ndp: true
                  allow_mdns: false
                  allow_ssdp: false
                  ap_ids:
                  - 497f6eca-6276-4993-bfeb-53cbbbbb6f08
                  app_limit:
                    apps:
                      dropbox: 300
                      netflix: 60
                    enabled: false
                    wxtag_ids:
                      f99862d9-2726-931f-7559-3dfdf5d070d3: 30
                  app_qos:
                    apps:
                      skype-business-video:
                        dscp: 32
                        dst_subnet: 10.2.0.0/16
                        src_subnet: 10.2.0.0/16
                    enabled: true
                    others:
                    - dscp: 32
                      dst_subnet: 10.2.0.0/16
                      port_ranges: 80,1024-6553
                      protocol: udp
                      src_subnet: 10.2.0.0/16
                  apply_to: site
                  arp_filter: false
                  auth:
                    anticlog_threshold: 16
                    eap_reauth: false
                    enable_mac_auth: false
                    key_idx: 1
                    keys:
                    - string
                    multi_psk_only: false
                    pairwise:
                    - wpa2-ccmp
                    private_wlan: true
                    psk: foryoureyesonly
                    type: psk
                    wep_as_secondary_auth: true
                  auth_server_selection: ordered
                  auth_servers:
                  - host: 1.2.3.4
                    keywrap_enabled: true
                    keywrap_format: hex
                    keywrap_kek: '1122334455'
                    keywrap_mack: '1122334455'
                    port: 1812
                    secret: testing123
                  auth_servers_nas_id: 5c5b350e0101-nas
                  auth_servers_nas_ip: 15.3.1.5
                  auth_servers_retries: 5
                  auth_servers_timeout: 5
                  band: string
                  band_steer: false
                  band_steer_force_band5: false
                  bands:
                  - '24'
                  - '5'
                  block_blacklist_clients: false
                  bonjour:
                    additional_vlan_ids: 10,20
                    enabled: false
                    services:
                      airplay:
                        radius_groups:
                        - teachers
                        scope: same_ap
                  cisco_cwa:
                    allowed_hostnames:
                    - snapchat.com
                    allowed_subnets:
                    - 63.5.3.0/24
                    blocked_subnets:
                    - 192.168.0.0/16
                    enabled: false
                  client_limit_down: 1000
                  client_limit_down_enabled: false
                  client_limit_up: 512
                  client_limit_up_enabled: false
                  coa_servers:
                  - disable_event_timestamp_check: false
                    enabled: false
                    ip: 1.2.3.4
                    port: 3799
                    secret: testing456
                  disable_11ax: false
                  disable_ht_vht_rates: false
                  disable_uapsd: false
                  disable_v1_roam_notify: false
                  disable_v2_roam_notify: false
                  disable_wmm: false
                  dns_server_rewrite:
                    enabled: false
                    radius_groups:
                      contractor: 172.1.1.1
                      guest: 8.8.8.8
                  dtim: 2
                  dynamic_psk:
                    default_psk: foryoureyesonly
                    default_vlan_id: 999
                    enabled: false
                    source: cloud_psks
                  dynamic_vlan:
                    default_vlan_id: 999
                    enabled: false
                    local_vlan_ids:
                    - 1
                    type: airespace-interface-name
                    vlans:
                      '131': default
                      '322': fast,video
                  enable_local_keycaching: false
                  enable_wireless_bridging: false
                  enabled: true
                  fast_dot1x_timers: false
                  hide_ssid: false
                  hostname_ie: false
                  hotspot20:
                    domain_name:
                    - mist.com
                    enabled: true
                    nai_realms:
                    - string
                    operators:
                    - google
                    - att
                    rcoi:
                    - 5A03BA0000
                    venue_name: some_name
                  interface: all
                  isolation: false
                  l2_isolation: false
                  legacy_overds: false
                  limit_bcast: false
                  limit_probe_response: true
                  max_idletime: 1800
                  mist_nac:
                    enabled: false
                  no_static_dns: false
                  no_static_ip: false
                  ssid: demo
            schema:
              $ref: '#/components/schemas/wlan'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Wlan'
        '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: createSiteWlan
      tags:
      - Sites Wlans
  /api/v1/sites/{site_id}/wlans/derived:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Get the list of derived Wlans for a Site
      operationId: listSiteWlansDerived
      parameters:
      - description: Whether to resolve SITE_VARS
        in: query
        name: resolve
        schema:
          default: false
          examples:
          - true
          type: boolean
      - description: Filter by WLAN ID
        in: query
        name: wlan_id
        schema:
          examples:
          - 8bfc2490-d726-3587-038d-cb2e71bd2330
          type: string
      responses:
        '200':
          $ref: '#/components/responses/WlansArray'
        '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: listSiteWlansDerived
      tags:
      - Sites Wlans
  /api/v1/sites/{site_id}/wlans/{wlan_id}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/wlan_id'
    delete:
      description: Delete Site WLAN
      operationId: deleteSiteWlan
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '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: deleteSiteWlan
      tags:
      - Sites Wlans
    get:
      description: Get Site WLAN
      operationId: getSiteWlan
      responses:
        '200':
          $ref: '#/components/responses/Wlan'
        '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: getSiteWlan
      tags:
      - Sites Wlans
    put:
      description: Update Site WLAN
      operationId: updateSiteWlan
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  acct_immediate_update: false
                  acct_interim_interval: 0
                  acct_servers:
                  - host: 1.2.3.4
                    keywrap_enabled: true
                    keywrap_format: hex
                    keywrap_kek: '1122334455'
                    keywrap_mack: '1122334455'
                    port: 1813
                    secret: testing123
                  airwatch:
                    api_key: aHhlbGxvYXNkZmFzZGZhc2Rmc2RmCg=="
                    console_url: https://hs1.airwatchportals.com
                    enabled: true
                    password: user1
                    username: test123
                  allow_ipv6_ndp: true
                  allow_mdns: false
                  allow_ssdp: false
                  ap_ids:
                  - 497f6eca-6276-4993-bfeb-53cbbbbe6f08
                  app_limit:
                    apps:
                      dropbox: 300
                      netflix: 60
                    enabled: false
                    wxtag_ids:
                      f99862d9-2726-931f-7559-3dfdf5d070d3: 30
                  app_qos:
                    apps:
                      skype-business-video:
                        dscp: 32
                        dst_subnet: 10.2.0.0/16
                        src_subnet: 10.2.0.0/16
                    enabled: true
                    others:
                    - dscp: 32
                      dst_subnet: 10.2.0.0/16
                      port_ranges: 80,1024-6553
                      protocol: udp
                      src_subnet: 10.2.0.0/16
                  apply_to: site
                  arp_filter: false
                  auth:
                    anticlog_threshold: 16
                    eap_reauth: false
                    enable_mac_auth: false
                    key_idx: 1
                    keys:
                    - string
                    multi_psk_only: false
                    pairwise:
                    - wpa2-ccmp
                    private_wlan: true
                    psk: foryoureyesonly
                    type: psk
                    wep_as_secondary_auth: true
                  auth_server_selection: ordered
                  auth_servers:
                  - host: 1.2.3.4
                    keywrap_enabled: true
                    keywrap_format: hex
                    keywrap_kek: '1122334455'
                    keywrap_mack: '1122334455'
                    port: 1812
                    secret: testing123
                  auth_servers_nas_id: 5c5b350e0101-nas
                  auth_servers_nas_ip: 15.3.1.5
                  auth_servers_retries: 5
                  auth_servers_timeout: 5
                  band: string
                  band_steer: false
                  band_steer_force_band5: false
                  bands:
                  - '24'
                  - '5'
                  block_blacklist_clients: false
                  bonjour:
                    additional_vlan_ids: 10,20
                    enabled: false
                    services:
                      airplay:
                        radius_groups:
                        - teachers
                        scope: same_ap
                  cisco_cwa:
                    allowed_hostnames:
                    - snapchat.com
                    allowed_subnets:
                    - 63.5.3.0/24
                    blocked_subnets:
                    - 192.168.0.0/16
                    enabled: false
                  client_limit_down: 1000
                  client_limit_down_enabled: false
                  client_limit_up: 512
                  client_limit_up_enabled: false
                  coa_servers:
                  - disable_event_timestamp_check: false
                    enabled: false
                    ip: 1.2.3.4
                    port: 3799
                    secret: testing456
                  disable_11ax: false
                  disable_ht_vht_rates: false
                  disable_uapsd: false
                  disable_v1_roam_notify: false
                  disable_v2_roam_notify: false
                  disable_wmm: false
                  dns_server_rewrite:
                    enabled: false
                    radius_groups:
                      contractor: 172.1.1.1
                      guest: 8.8.8.8
                  dtim: 2
                  dynamic_psk:
                    default_psk: foryoureyesonly
                    default_vlan_id: 999
                    enabled: false
                    source: cloud_psks
                  dynamic_vlan:
                    default_vlan_id: 999
                    enabled: false
                    local_vlan_ids:
                    - 1
                    type: airespace-interface-name
                    vlans:
                      '131': default
                      '322': fast,video
                  enable_local_keycaching: false
                  enable_wireless_bridging: false
                  enabled: true
                  fast_dot1x_timers: false
                  hide_ssid: false
                  hostname_ie: false
                  hotspot20:
                    domain_name:
                    - mist.com
                    enabled: true
                    nai_realms:
                    - string
                    operators:
                    - google
                    - att
                    rcoi:
                    - 5A03BA0000
                    venue_name: some_name
                  interface: all
                  isolation: false
                  l2_isolation: false
                  legacy_overds: false
                  limit_bcast: false
                  limit_probe_response: true
                  max_idletime: 1800
                  mist_nac:
                    enabled: false
                  no_static_dns: false
                  no_static_ip: false
                  ssid: demo
            schema:
              $ref: '#/components/schemas/wlan'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Wlan'
        '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: updateSiteWlan
      tags:
      - Sites Wlans
  /api/v1/sites/{site_id}/wlans/{wlan_id}/portal_image:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/wlan_id'
    delete:
      description: Delete Site WLAN Portal Image
      operationId: deleteSiteWlanPortalImage
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '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: deleteSiteWlanPortalImage
      tags:
      - Sites Wlans
    post:
      description: WLAN Portal Image Upload
      operationId: uploadSiteWlanPortalImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/image_import'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '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: uploadSiteWlanPortalImage
      tags:
      - Sites Wlans
  /api/v1/sites/{site_id}/wlans/{wlan_id}/portal_template:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/wlan_id'
    put:
      description: 'Update a Portal Template


        #### Sponsor Email Template

        Sponsor Email Template supports following template variables:


        | **Name** | **Description** |

        | --- | --- |

        | approve_url | Renders URL to approve the request; optionally &minutes=N query param can be appended to change the Authorization period of the guest, where N is a valid integer denoting number of minutes a guest remains authorized |

        | deny_url | Renders URL to reject the request |

        | guest_email | Renders Email ID of the guest |

        | guest_name | Renders Name of the guest |

        | field1 | Renders value of the Custom Field 1 |

        | field2 | Renders value of the Custom Field 2 |

        | company | Renders value of the Company field |

        | sponsor_link_validity_duration | Renders validity time of the request (i.e. Approve/Deny URL) |

        | auth_expire_minutes | Renders Wlan-level configured Guest Authorization Expiration time period (in minutes), If not configured then default (1 day in minutes) |'
      operationId: updateSiteWlanPortalTemplate
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  accessCodeAlternateEmail: string
                  alignment: string
                  authButtonAmazon: string
                  authButtonAzure: string
                  authButtonEmail: string
                  authButtonFacebook: string
                  authButtonGoogle: string
                  authButtonMicrosoft: string
                  authButtonPassphrase: string
                  authButtonSms: string
                  authButtonSponsor: string
                  authLabel: string
                  backLink: string
                  color: string
                  colorDark: string
                  colorLight: string
                  company: true
                  companyError: string
                  companyLabel: string
                  email: true
                  emailAccessDomainError: string
                  emailCancel: string
                  emailCodeError: string
                  emailError: string
                  emailFieldLabel: string
                  emailLabel: string
                  emailMessage: string
                  emailSubmit: string
                  emailTitle: string
                  field1: true
                  field1Error: string
                  field1Label: string
                  field1Required: true
                  field2: true
                  field2Error: string
                  field2Label: string
                  field2Required: true
                  field3: true
                  field3Error: string
                  field3Label: string
                  field3Required: true
                  field4: true
                  field4Error: string
                  field4Label: string
                  field4Required: true
                  message: string
                  name: true
                  nameError: string
                  nameLabel: string
                  optout: true
                  optoutLabel: string
                  pageTitle: string
                  passphraseCancel: string
                  passphraseError: string
                  passphraseLabel: string
                  passphraseMessage: string
                  passphraseSubmit: string
                  passphraseTitle: string
                  poweredBy: true
                  requiredFieldLabel: string
                  signInLabel: string
                  smsCarrierDefault: string
                  smsCarrierError: string
                  smsCarrierFieldLabel: string
                  smsCodeCancel: string
                  smsCodeError: string
                  smsCodeFieldLabel: string
                  smsCodeMessage: string
                  smsCodeSubmit: string
                  smsCodeTitle: string
                  smsCountryFieldLabel: string
                  smsCountryFormat: string
                  smsHaveAccessCode: string
                  smsMessageFormat: string
                  smsNumberCancel: string
                  smsNumberError: string
                  smsNumberFieldLabel: string
                  smsNumberFormat: string
                  smsNumberMessage: string
                  smsNumberSubmit: string
                  smsNumberTitle: string
                  smsUsernameFormat: string
                  smsValidityDuration: 0
                  sponsorBackLink: string
                  sponsorCancel: string
                  sponsorEmail: string
                  sponsorEmailError: string
                  sponsorEmailTemplate: string
                  sponsorInfoApproved: string
                  sponsorInfoDenied: string
                  sponsorInfoPending: string
                  sponsorName: string
                  sponsorNameError: string
                  sponsorNotePending: string
                  sponsorStatusApproved: string
                  sponsorStatusDenied: string
                  sponsorStatusPending: string
                  sponsorSubmit: string
                  sponsorsFieldLabel: string
                  tos: true
                  tosAcceptLabel: string
                  tosError: string
                  tosLink: string
                  tosText: string
            schema:
              $ref: '#/components/schemas/wlan_portal_template'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Portaltemplate'
        '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: updateSiteWlanPortalTemplate
      tags:
      - Sites Wlans
components:
  schemas:
    vlan_id_with_variable:
      description: VLAN ID, either numeric or expressed as a template variable string
      oneOf:
      - type: string
      - maximum: 4094
        minimum: 1
        type: integer
    wlan_portal_sponsors:
      description: Object of allowed sponsors email with name. Required if `sponsor_enabled` is `true` and `sponsor_email_domains` is empty. Property key is the sponsor email, Property value is the sponsor name. List of email allowed for backward compatibility
      oneOf:
      - $ref: '#/components/schemas/wlan_portal_sponsors_list'
      - $ref: '#/components/schemas/wlan_portal_sponsors_object'
    wlan_limit:
      anyOf:
      - maximum: 999000
        minimum: 1
        type: integer
      - type: string
      description: In kbps, value from 1 to 999000
    wlan_airwatch:
      additionalProperties: false
      description: AirWatch integration settings for the WLAN
      properties:
        api_key:
          default: ''
          description: API key used to authenticate to the AirWatch service
          examples:
          - aHhlbGxvYXNkZmFzZGZhc2Rmc2RmCg=="
          type: string
        console_url:
          default: ''
          description: Base console URL of the AirWatch deployment
          examples:
          - https://hs1.airwatchportals.com
          type: string
        enabled:
          default: false
          description: Whether AirWatch integration is enabled for the WLAN
          type: boolean
        password:
          default: ''
          description: AirWatch integration account password for this WLAN
          examples:
          - user1
          format: password
          type: string
        username:
          default: ''
          description: AirWatch integration account username for this WLAN
          examples:
          - test123
          type: string
      type: object
    wlan_auth_owe:
      default: disabled
      description: 'if `type`==`open`. enum: `disabled`, `enabled` (means transition mode), `required`'
      enum:
      - disabled
      - enabled
      - required
      type: string
    id:
      description: Unique ID of the object instance in the Mist Organization
      examples:
      - 53f10664-3ce8-4c27-b382-0ef66432349f
      format: uuid
      readOnly: true
      type: string
    wlan_vlan_ids_string:
      description: If `vlan_enabled`==`true` and `vlan_pooling`==`true`. List of VLAN IDs to be used in the VLAN Pool
      examples:
      - 1,2
      type: string
    wlan_datarates_legacy:
      description: If `template`==`custom`. List of supported rates (IE=1) and extended supported rates (IE=50) for custom template, append ‘b’ at the end to indicate a rate being basic/mandatory. If `template`==`custom` is configured and legacy does not define at least one basic rate, it will use `no-legacy` default values
      examples:
      - - '6'
        - '9'
        - '12'
        - '18'
        - 24b
        - '36'
        - '48'
        - '54'
      items:
        $ref: '#/components/schemas/wlan_datarates_legacy_item'
      type: array
    wlan_bands:
      default:
      - '24'
      - '5'
      - '6'
      description: 'List of radios that the wlan should apply to. enum: `24`, `5`, `5-dedicated`, `5-selectable`, `6`, `6-dedicated`, `6-selectable`'
      items:
        $ref: '#/components/schemas/dot11_band'
      type: array
    wlan_portal_sponsor_email_domains:
      description: List of domain allowed for sponsor email. Required if `sponsor_enabled` is `true` and `sponsors` is empty.
      examples:
      - - reserved.net
        - reserved.org
      items:
        type: string
      type: array
    wlan_qos:
      additionalProperties: false
      description: QoS override settings for WLAN client traffic
      properties:
        class:
          $ref: '#/components/schemas/wlan_qos_class'
          description: QoS traffic class applied when WLAN QoS override is enabled
        overwrite:
          default: false
          description: Whether to overwrite QoS
          type: boolean
      type: object
    radius_acct_server:
      additionalProperties: false
      description: RADIUS accounting server settings
      properties:
        host:
          description: Address or hostname of the RADIUS accounting server
          examples:
          - 1.2.3.4
          type: string
        keywrap_enabled:
          description: Whether RADIUS keywrap is enabled for messages sent to this accounting server
          type: boolean
        keywrap_format:
          $ref: '#/components/schemas/radius_keywrap_format'
          description: Encoding format for RADIUS keywrap KEK and MACK values
        keywrap_kek:
          description: RADIUS keywrap key encryption key (KEK)
          examples:
          - '1122334455'
          type: string
        keywrap_mack:
          description: RADIUS keywrap message authentication code key (MACK)
          examples:
          - '1122334455'
          type: string
        port:
          $ref: '#/components/schemas/radius_acct_port'
          description: UDP port used by the RADIUS accounting server
        secret:
          description: Shared secret used with this RADIUS accounting server
          examples:
          - testing123
          format: password
          type: string
      required:
      - host
      - secret
      type: object
    wlan_portal_sms_provid

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