openapi: 3.1.0 info: contact: email: tmunzer@juniper.net name: Thomas Munzer description: '> Version: **2604.1.1** > > Date: **May 13, 2026**
NOTE:
Some important API changes will be introduced. Please make sure to read the announcements
--- ## 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 Orgs RF Templates 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: 'Rf Templates are a feature in Juniper Mist wireless assurance that allow for uniform radio configurations to be applied across all sites in an organization. These templates can be customized to include model-specific exceptions and settings for different use cases. RF Templates enable the management of radio bands, channel width, transmission power, and ap antenna gain. They provide a centralized way to configure and apply these settings to all access points within an organization.' name: Orgs RF Templates paths: /api/v1/orgs/{org_id}/rftemplates: parameters: - $ref: '#/components/parameters/org_id' get: description: Get List of Org RF Template operationId: listOrgRfTemplates parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/page' responses: '200': $ref: '#/components/responses/RftemplatesArray' '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: listOrgRfTemplates tags: - Orgs RF Templates post: description: Create Org RF Template operationId: createOrgRfTemplate requestBody: content: application/json: schema: $ref: '#/components/schemas/rf_template' description: Request Body responses: '200': $ref: '#/components/responses/Rftemplate' '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: createOrgRfTemplate tags: - Orgs RF Templates /api/v1/orgs/{org_id}/rftemplates/{rftemplate_id}: parameters: - $ref: '#/components/parameters/org_id' - $ref: '#/components/parameters/rftemplate_id' delete: description: Delete Org RF Template operationId: deleteOrgRfTemplate 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: deleteOrgRfTemplate tags: - Orgs RF Templates get: description: Get Org RF Template Details operationId: getOrgRfTemplate responses: '200': $ref: '#/components/responses/Rftemplate' '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: getOrgRfTemplate tags: - Orgs RF Templates put: description: Update Org RF Template operationId: updateOrgRfTemplate requestBody: content: application/json: schema: $ref: '#/components/schemas/rf_template' description: Request Body responses: '200': $ref: '#/components/responses/Rftemplate' '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: updateOrgRfTemplate tags: - Orgs RF Templates components: schemas: id: description: Unique ID of the object instance in the Mist Organization examples: - 53f10664-3ce8-4c27-b382-0ef66432349f format: uuid readOnly: true type: string 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 response_http403: additionalProperties: false properties: detail: examples: - You do not have permission to perform this action. type: string 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 radio_band_24_usage: description: 'enum: `24`, `5`, `6`, `auto`' enum: - '24' - '5' - '6' - auto 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 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 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 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 radio_band_channels: default: [] description: For RFTemplates. List of channels, null or empty array means auto items: type: integer type: - array - 'null' radio_band_antenna_mode: default: default description: 'enum: `1x1`, `2x2`, `3x3`, `4x4`, `default`' enum: - 1x1 - 2x2 - 3x3 - 4x4 - default examples: - default type: string rf_templates: items: $ref: '#/components/schemas/rf_template' type: array response_http401: additionalProperties: false properties: detail: examples: - Authentication credentials were not provided. type: string type: object org_id: examples: - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61 format: uuid readOnly: true type: string modified_time: description: When the object has been modified for the last time, in epoch format: double readOnly: true type: number created_time: description: When the object has been created, in epoch format: double readOnly: true type: number 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 examples: RftemplatesArrayExample: value: - ant_gain_24: 0 ant_gain_5: 0 band_24: allow_rrm_disable: true ant_gain: 0 bandwidth: 20 channels: - 1 - 6 - 11 disabled: false power_max: 11 power_min: 3 preamble: short band_24_usage: auto band_5: allow_rrm_disable: false ant_gain: 0 bandwidth: 80 channels: - 36 - 40 - 44 - 48 - 52 - 56 - 60 - 64 - 100 - 104 - 149 - 153 - 157 - 161 disabled: false power_max: 16 power_min: 9 preamble: short country_code: FR created_time: 1594743723 id: b3f20330-f76a-49f1-bc65-0d8727140b1d model_specific: {} modified_time: 1613582192 name: Lab org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4 RftemplateExample: value: ant_gain_24: 0 ant_gain_5: 0 band_24: allow_rrm_disable: true ant_gain: 0 bandwidth: 20 channels: - 1 - 6 - 11 disabled: false power_max: 11 power_min: 3 preamble: short band_24_usage: auto band_5: allow_rrm_disable: false ant_gain: 0 bandwidth: 80 channels: - 36 - 40 - 44 - 48 - 52 - 56 - 60 - 64 - 100 - 104 - 149 - 153 - 157 - 161 disabled: false power_max: 16 power_min: 9 preamble: short country_code: FR created_time: 1594743723 id: b3f20330-f76a-49f1-bc65-0d8727140b1d model_specific: {} modified_time: 1613582192 name: Lab org_id: 203d3d02-dbc0-4c1b-9f41-76896a3330f4 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 HTTP401Example: value: detail: Authentication credentials were not provided. parameters: org_id: in: path name: org_id required: true schema: examples: - 000000ab-00ab-00ab-00ab-0000000000ab format: uuid type: string page: in: query name: page schema: default: 1 minimum: 1 type: integer rftemplate_id: in: path name: rftemplate_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 responses: RftemplatesArray: content: application/json: examples: Example: $ref: '#/components/examples/RftemplatesArrayExample' schema: $ref: '#/components/schemas/rf_templates' application/vnd.api+json: examples: Example: $ref: '#/components/examples/RftemplatesArrayExample' schema: $ref: '#/components/schemas/rf_templates' description: OK HTTP404: content: application/json: schema: $ref: '#/components/schemas/response_http404' application/vnd.api+json: schema: $ref: '#/components/schemas/response_http404' description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist HTTP429: content: application/json: examples: Example: $ref: '#/components/examples/HTTP429Example' schema: $ref: '#/components/schemas/response_http429' application/vnd.api+json: examples: Example: $ref: '#/components/examples/HTTP429Example' schema: $ref: '#/components/schemas/response_http429' description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold HTTP403: content: application/json: examples: Example: $ref: '#/components/examples/HTTP403Example' schema: $ref: '#/components/schemas/response_http403' application/vnd.api+json: examples: Example: $ref: '#/components/examples/HTTP403Example' schema: $ref: '#/components/schemas/response_http403' description: Permission Denied HTTP400: content: application/json: examples: Example: $ref: '#/components/examples/HTTP400Example' schema: $ref: '#/components/schemas/response_http400' application/vnd.api+json: examples: Example: $ref: '#/components/examples/HTTP400Example' schema: $ref: '#/components/schemas/response_http400' description: Bad Syntax Rftemplate: content: application/json: examples: Example: $ref: '#/components/examples/RftemplateExample' schema: $ref: '#/components/schemas/rf_template' application/vnd.api+json: examples: Example: $ref: '#/components/examples/RftemplateExample' schema: $ref: '#/components/schemas/rf_template' description: OK OK: description: OK HTTP401: content: application/json: examples: Example: $ref: '#/components/examples/HTTP401Example' schema: $ref: '#/components/schemas/response_http401' application/vnd.api+json: examples: Example: $ref: '#/components/examples/HTTP401Example' schema: $ref: '#/components/schemas/response_http401' description: Unauthorized securitySchemes: apiToken: description: "Like many other API providers, it’s also possible to generate API Tokens to be used (in HTTP Header) for authentication. An API token ties to a Admin with equal or less privileges.\n\n**Format**:\n API Token value format is `Token {apitoken}`\n\n**Notes**:\n* an API token generated for a specific admin has the same privilege as the user\n* an API token will be automatically removed if not used for > 90 days\n* SSO admins cannot generate these API tokens. Refer Org level API tokens which can have privileges of a specific Org/Site for more information." in: header name: Authorization type: apiKey basicAuth: description: While our current UI uses Session / Cookie-based authentication, it’s also possible to do Basic Auth. scheme: basic type: http csrfToken: description: "This protects the website against [Cross Site Request Forgery](https://en.wikipedia.org/wiki/Cross-site_request_forgery), all the POST / PUT / DELETE APIs needs to have CSRF token in the AJAX Request header when using Login/Password authentication (with or without MFA)\n\n\nThe CSRF Token is sent back by Mist in the Cookies from the Login Response API Call:\n`cookies[csrftoken]` \n\nThe CSRF Token must be added in the HTTP Request Headers:\n```\nX-CSRFToken: vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx\n```" in: header name: X-CSRFToken type: apiKey