Juniper Mist AI Constants Models API
API Calls to retrieve the list of Hardware Models and their features
API Calls to retrieve the list of Hardware Models and their features
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 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