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 Constants Models 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: API Calls to retrieve the list of Hardware Models and their features name: Constants Models paths: /api/v1/const/default_gateway_config: get: description: Generate Default Gateway Config operationId: getGatewayDefaultConfig parameters: - description: Model the default gateway config is intended (as the default LAN/WAN port can differ) in: query name: model required: true schema: examples: - srx550 type: string - description: Whether the config is intended for HA in: query name: ha schema: examples: - 'false' type: string responses: '200': $ref: '#/components/responses/ConstDefaultGatewayConfig' '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: getGatewayDefaultConfig tags: - Constants Models /api/v1/const/device_models: get: description: Get list of AP device models for the Mist Site operationId: listDeviceModels responses: '200': $ref: '#/components/responses/ConstDeviceModels' '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: listDeviceModels tags: - Constants Models /api/v1/const/mxedge_models: get: description: Get List of available Mx Edge models operationId: listMxEdgeModels responses: '200': $ref: '#/components/responses/ConstMxEdgeModels' '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: listMxEdgeModels tags: - Constants Models /api/v1/const/otherdevice_models: get: description: Supported OtherDevice Models operationId: listSupportedOtherDeviceModels responses: '200': $ref: '#/components/responses/ConstOtherDeviceModels' '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: listSupportedOtherDeviceModels tags: - Constants Models components: schemas: const_device_switch: additionalProperties: false properties: alias: examples: - EX4100-48P-CHAS type: string defaults: $ref: '#/components/schemas/const_device_switch_default' description: examples: - Juniper EX4100 Series type: string display: examples: - EX4100-48P type: string evolved_os: default: false type: boolean evpn_ri_type: examples: - mac-vrf type: string experimental: default: false type: boolean fans_pluggable: default: false examples: - true type: boolean has_bgp: default: false examples: - true type: boolean has_ets: default: false type: boolean has_evpn: default: false examples: - true type: boolean has_irb: default: false examples: - true type: boolean has_poe_out: default: false examples: - true type: boolean has_snapshot: default: true type: boolean has_vc: default: true examples: - true type: boolean model: examples: - EX4100-48P type: string modular: default: false type: boolean no_shaping_rate: default: false type: boolean number_fans: examples: - 2 type: integer oc_device: default: false examples: - true type: boolean oob_interface: examples: - re0:mgmt-0, re1:mgmt-0 type: string packet_action_drop_only: default: false type: boolean pic: additionalProperties: description: List of type and number of ports (e.g. "mge*8, ge*16") type: string description: Object Key is the PIC number examples: - '0': ge*48 '1': qsfp+*4 '2': sfp+*4 (uplink) type: object sub_required: type: string type: $ref: '#/components/schemas/const_device_type_switch' required: - type type: object const_other_device_model: additionalProperties: false properties: _vendor_model_id: type: string display: type: string model: type: string type: type: string vendor: type: string type: object const_device_ap_extios: additionalProperties: false properties: default_dir: $ref: '#/components/schemas/const_device_ap_extios_default_dir' input: type: boolean output: type: boolean type: object const_other_device_models: items: $ref: '#/components/schemas/const_other_device_model' type: array response_http403: additionalProperties: false properties: detail: examples: - You do not have permission to perform this action. type: string type: object const_device_switch_default: additionalProperties: false properties: _ports: examples: - ge-0/0/0-47, et-0/1/0-3, xe-0/2/0-3, ge-0/2/0-3 type: string type: object const_device_models: items: $ref: '#/components/schemas/const_device_model' type: array const_mxedge_model_port: additionalProperties: false properties: display: examples: - xe0 type: string speed: examples: - 10000 type: integer type: object const_device_type_switch: description: 'Device Type. enum: `switch`' enum: - switch readOnly: true type: string const_device_ap_band5: additionalProperties: false properties: max_clients: examples: - 128 type: integer max_power: examples: - 17 type: integer min_power: examples: - 8 type: integer type: object const_device_ap_band24: additionalProperties: false properties: band5_channels_op: examples: - low type: string max_clients: examples: - 128 type: integer max_power: examples: - 19 type: integer min_power: examples: - 8 type: integer type: object response_http404: additionalProperties: false properties: id: type: string type: object const_device_type_ap: description: 'Device Type. enum: `ap`' enum: - ap readOnly: true type: string const_device_ap_disallowed_channels: items: type: integer type: array response_http400: additionalProperties: false properties: detail: examples: - 'JSON parse error - Expecting value: line 5 column 8 (char 56)' type: string type: object const_device_ap_band_24_usage: description: 'enum: `24`, `5`, `6`' enum: - '24' - '5' - '6' type: string const_device_ap_band6: additionalProperties: false properties: max_clients: examples: - 128 type: integer max_power: examples: - 17 type: integer min_power: examples: - 8 type: integer type: object const_device_model: discriminator: mapping: ap: '#/components/schemas/const_device_ap' gateway: '#/components/schemas/const_device_switch' switch: '#/components/schemas/const_device_gateway' propertyName: type oneOf: - $ref: '#/components/schemas/const_device_ap' - $ref: '#/components/schemas/const_device_switch' - $ref: '#/components/schemas/const_device_gateway' const_device_gateway: additionalProperties: false properties: defaults: $ref: '#/components/schemas/const_device_gateway_defaults' description: type: string experimental: default: false type: boolean fans_pluggable: default: true type: boolean ha_node0_fpc: type: integer ha_node1_fpc: type: integer has_bgp: default: false type: boolean has_fxp0: default: true type: boolean has_ha_control: default: false type: boolean has_ha_data: default: false type: boolean has_irb: default: false type: boolean has_poe_out: default: true type: boolean has_snapshot: default: true type: boolean irb_disabled_by_default: default: false type: boolean model: type: string number_fans: type: integer oc_device: default: false type: boolean pic: $ref: '#/components/schemas/const_device_gateway_pic' ports: $ref: '#/components/schemas/const_device_gateway_ports' sub_required: type: string t128_device: default: false type: boolean type: $ref: '#/components/schemas/const_device_type_gateway' required: - type type: object const_device_gateway_defaults: additionalProperties: description: List of interfaces names (e.g. "ge-0/0/3,ge-1/0/3") type: string description: Object Key is the interface type name (e.g. "lan_ports", "wan_ports", ...) 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 const_device_gateway_ports: additionalProperties: false description: Object Key is the interface name (e.g. "ge-0/0/1", ...) properties: display: type: string pci_address: type: string speed: type: integer type: object const_device_ap_band_24_usages: items: $ref: '#/components/schemas/const_device_ap_band_24_usage' type: array const_device_ap_extios_default_dir: description: 'enum: `IN`, `OUT`' enum: - IN - OUT type: string const_device_ap: additionalProperties: false properties: ap_type: examples: - jewel type: string band24: $ref: '#/components/schemas/const_device_ap_band24' band5: $ref: '#/components/schemas/const_device_ap_band5' band6: $ref: '#/components/schemas/const_device_ap_band6' band_24_usages: $ref: '#/components/schemas/const_device_ap_band_24_usages' ce_dfs_ok: examples: - true type: boolean cisco_pace: type: boolean description: examples: - AP-45 type: string disallowed_channels: additionalProperties: additionalProperties: $ref: '#/components/schemas/const_device_ap_disallowed_channels' description: Property key is the RF band (e.g. "band5") type: object description: Property key is a list of country codes (e.g. "GB, DE") type: object display: examples: - AP45 type: string extio: additionalProperties: $ref: '#/components/schemas/const_device_ap_extios' description: Property key is the GPIO port name (e.g. "D0", "A1") type: object fcc_dfs_ok: examples: - true type: boolean has_11ax: type: boolean has_compass: examples: - false type: boolean has_ext_ant: type: boolean has_extio: examples: - false type: boolean has_height: examples: - false type: boolean has_module_port: type: boolean has_poe_out: examples: - true type: boolean has_scanning_radio: examples: - true type: boolean has_selectable_radio: examples: - true type: boolean has_usb: type: boolean has_vble: examples: - true type: boolean has_wifi_band24: examples: - true type: boolean has_wifi_band5: examples: - true type: boolean has_wifi_band6: examples: - true type: boolean max_poe_out: examples: - 15400 type: integer max_wlans: type: integer model: examples: - AP45 type: string other_dfs_ok: examples: - true type: boolean outdoor: type: boolean radios: additionalProperties: type: string description: Property key is the radio number (e.g. r0, r1, ...). Property value is the RF band (e.g. "24", "5", ...) examples: - r0: '6' r1: '5' r2: '24' type: object shared_scanning_radio: type: boolean type: $ref: '#/components/schemas/const_device_type_ap' unmanaged: type: boolean vble: $ref: '#/components/schemas/const_device_ap_vble' required: - ap_type - type type: object response_http401: additionalProperties: false properties: detail: examples: - Authentication credentials were not provided. type: string type: object const_device_type_gateway: description: 'Device Type. enum: `gateway`' enum: - gateway readOnly: true type: string const_mxedge_models: items: $ref: '#/components/schemas/const_mxedge_model' type: array const_device_gateway_pic: additionalProperties: description: List of type and number of ports (e.g. "mge*8, ge*16") type: string description: Object Key is the PIC number type: object const_device_ap_vble: additionalProperties: false properties: beacon_rate: examples: - 4 type: integer beams: examples: - 9 type: integer power: examples: - 8 type: integer type: object const_mxedge_model: additionalProperties: false properties: custom_ports: type: boolean display: examples: - X10 type: string model: examples: - ME-X10 type: string ports: additionalProperties: $ref: '#/components/schemas/const_mxedge_model_port' type: object type: object examples: ConstMxEdgeModelsExample: value: - display: X10 model: ME-X10 ports: '0': display: xe0 speed: 10000 '1': display: xe1 speed: 10000 '2': display: xe2 speed: 10000 '3': display: xe3 speed: 10000 ConstDeviceModelsGateway: value: - defaults: ha_control_port: ge-0/0/1 ha_data_ports: ge-0/0/2,ge-3/0/2 ha_fxp0_port: ge-0/0/0 ha_lan_ports: ge-0/0/4,ge-3/0/4 ha_wan_ports: ge-0/0/3,ge-3/0/3 lan_ports: ge-0/0/1-6 lte_wan_ports: cl-1/0/0 wan_ports: ge-0/0/0,ge-0/0/7 description: Juniper SRX320 Series fans_pluggable: false ha_node0_fpc: 3 ha_node1_fpc: 3 has_bgp: true has_fxp0: false has_ha_control: false has_ha_data: false has_irb: true has_poe_out: true has_snapshot: true irb_disabled_by_default: false model: SRX320 number_fans: 1 oc_device: true pic: '0': ge*6, sfp*2 sub_required: wan1 type: gateway HTTP400Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' ConstDeviceModelsAP: value: - ap_type: jewel band24: band5_channels_op: low max_clients: 128 max_power: 19 min_power: 8 band5: max_clients: 128 max_power: 17 min_power: 8 band6: max_clients: 128 max_power: 17 min_power: 8 band_24_usages: - '5' ce_dfs_ok: true cisco_pace: true description: AP-45 disallowed_channels: property1: property1: - 0 property2: - 0 property2: property1: - 0 property2: - 0 display: AP45 fcc_dfs_ok: true has_11ax: true has_compass: false has_ext_ant: true has_extio: false has_height: false has_module_port: true has_poe_out: true has_scanning_radio: true has_selectable_radio: true has_usb: true has_vble: true has_wifi_band24: true has_wifi_band5: true has_wifi_band6: true max_poe_out: 15400 max_wlans: 0 model: AP45 other_dfs_ok: true outdoor: false radios: r0: '6' r1: '5' r2: '24' shared_scanning_radio: true type: ap unmanaged: true vble: beacon_rate: 4 beams: 9 power: 8 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 ConstDeviceModelsSwitch: value: - alias: EX4100-48P-CHAS defaults: _ports: ge-0/0/0-47, et-0/1/0-3, xe-0/2/0-3, ge-0/2/0-3 description: Juniper EX4100 Series display: EX4100-48P evolved_os: false evpn_ri_type: mac-vrf fans_pluggable: true has_bgp: true has_ets: true has_evpn: true has_irb: true has_poe_out: true model: EX4100-48P modular: true number_fans: 2 oc_device: true oob_interface: re0:mgmt-0, re1:mgmt-0 pic: '0': ge*48 '1': qsfp+*4 '2': sfp+*4 (uplink) sub_required: string type: switch HTTP401Example: value: detail: Authentication credentials were not provided. ConstOtherDeviceModelsExample: value: - _vendor_model_id: '65' display: W1850 model: W1850 type: router vendor: cradlepoint ConstDefaultGatewayConfigExample: value: dhcpd_config: lan: ip_end: 192.168.1.254 ip_start: 192.168.1.2 ip_configs: lan: ip: 192.168.1.1 type: static networks: lan: name: lan subnet: 192.168.1.0/24 vlan_id: 1 path_preferences: wan: paths: - name: wan type: wan port_config: cl-1/0/0: ip_config: type: dhcp name: lte usage: wan wan_type: lte ge-0/0/0,ge-0/0/7: ip_config: type: dhcp name: wan usage: wan ge-0/0/1-6: port_network: lan usage: lan service_policies: - action: allow name: Internet path_preference: wan services: - any tenants: - lan responses: 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 ConstDeviceModels: content: application/json: examples: AP: $ref: '#/components/examples/ConstDeviceModelsAP' Gateway: $ref: '#/components/examples/ConstDeviceModelsGateway' Switch: $ref: '#/components/examples/ConstDeviceModelsSwitch' schema: $ref: '#/components/schemas/const_device_models' application/vnd.api+json: examples: AP: $ref: '#/components/examples/ConstDeviceModelsAP' Gateway: $ref: '#/components/examples/ConstDeviceModelsGateway' Switch: $ref: '#/components/examples/ConstDeviceModelsSwitch' schema: $ref: '#/components/schemas/const_device_models' description: List of supported device models ConstMxEdgeModels: content: application/json: examples: Example: $ref: '#/components/examples/ConstMxEdgeModelsExample' schema: $ref: '#/components/schemas/const_mxedge_models' application/vnd.api+json: examples: Example: $ref: '#/components/examples/ConstMxEdgeModelsExample' schema: $ref: '#/components/schemas/const_mxedge_models' description: List of MxEdge Models 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 ConstOtherDeviceModels: content: application/json: examples: Example: $ref: '#/components/examples/ConstOtherDeviceModelsExample' schema: $ref: '#/components/schemas/const_other_device_models' application/vnd.api+json: examples: Example: $ref: '#/components/examples/ConstOtherDeviceModelsExample' schema: $ref: '#/components/schemas/const_other_device_models' description: OK 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 ConstDefaultGatewayConfig: content: application/json: examples: Example: $ref: '#/components/examples/ConstDefaultGatewayConfigExample' schema: additionalProperties: true type: object application/vnd.api+json: examples: Example: $ref: '#/components/examples/ConstDefaultGatewayConfigExample' schema: additionalProperties: true type: object 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