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 Orgs Device Profiles 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: 'While Templates / RF Templates / Network Templates / Gateway Templates provides powerful ways to control how a Device\''s configuration is derived for a Site. There are cases where you\''d like another level of control at the Org Level.
A Device Profile contains a subset of Device\''s configurations you\''d like a device to have. It will be merged at runtime when we\''re provisioning an AP.'
name: Orgs Device Profiles
paths:
/api/v1/orgs/{org_id}/deviceprofiles:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: List org-level device profiles, which define reusable AP, switch, or gateway configuration subsets that can be applied to matching devices.
operationId: listOrgDeviceProfiles
parameters:
- description: 'Filter results by one device profile type. Use a single value; comma-separated values are not supported. enum: `ap`, `gateway`, `switch`'
in: query
name: type
schema:
$ref: '#/components/schemas/device_type_default_ap'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
responses:
'200':
$ref: '#/components/responses/DeviceprofilesArray'
'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: listOrgDeviceProfiles
tags:
- Orgs Device Profiles
post:
description: Create an org-level device profile containing reusable AP, switch, or gateway configuration.
operationId: createOrgDeviceProfile
requestBody:
content:
application/json:
examples:
deviceprofile_ap:
value:
aeroscout:
enabled: false
host: aero.pvt.net
locate_connected: true
led:
brightness: 255
enabled: true
name: string
ntp_servers:
- 10.10.10.10
type: ap
usb_config:
cacert: string
channel: 3
enabled: true
host: 1.1.1.1
port: 0
type: imagotag
verify_cert: true
vlan_id: 1
deviceprofile_hub:
value:
dhcpd_config:
Corp-Mgmt:
dns_servers:
- 8.8.8.8
dns_suffix:
- stag.one
gateway: 10.3.172.9
ip_end: 10.3.172.99
ip_start: 10.3.172.50
type: local
Corp-lan:
dns_servers:
- 8.8.8.8
dns_suffix:
- stag.one
gateway: 10.3.171.9
ip_end: 10.3.171.99
ip_start: 10.3.171.50
type: local
dnsOverride: true
dns_servers:
- 10.3.20.201
- 10.3.51.222
- 1.1.1.1
dns_suffix:
- example.com
extra_routes:
10.101.0.0/16:
via: 10.3.100.10
ip_configs:
Corp-Core:
ip: 10.3.100.9
netmask: /24
type: static
Corp-Mgmt:
ip: 10.3.172.9
netmask: /24
type: static
Corp-lan:
ip: 10.3.171.9
netmask: /24
type: static
name: Demo
ntpOverride: true
ntp_servers:
- 10.3.51.222
path_preferences:
core:
paths:
- networks:
- Corp-Core
type: local
strategy: ordered
lab:
paths:
- networks:
- Corp-lan
type: local
strategy: ordered
mgmt:
paths:
- networks:
- Corp-Mgmt
type: local
strategy: ordered
untrust:
paths:
- name: wan
type: wan
strategy: ordered
port_config:
ge-0/0/0:
aggregated: false
ip_config:
gateway: 192.168.1.1
ip: 192.168.1.9
netmask: /24
type: static
name: wan
redundant: false
usage: wan
wan_type: broadband
ge-0/0/6-7:
ae_disable_lacp: false
ae_idx: '0'
ae_lacp_force_up: true
aggregated: true
networks:
- Corp-lan
- Corp-Mgmt
- Corp-Core
usage: lan
service_policies:
- action: allow
idp:
enabled: false
name: ITParis-Internal
path_preference: core
services:
- internal_dns
- drive
tenants:
- ITParis
type: gateway
schema:
$ref: '#/components/schemas/deviceprofile'
description: Request Body
responses:
'200':
$ref: '#/components/responses/Deviceprofile'
'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: createOrgDeviceProfile
tags:
- Orgs Device Profiles
/api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/deviceprofile_id'
delete:
description: Delete an org-level device profile and remove that reusable device configuration object from the organization.
operationId: deleteOrgDeviceProfile
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: deleteOrgDeviceProfile
tags:
- Orgs Device Profiles
get:
description: Retrieve the AP, switch, or gateway configuration stored in a specific org-level device profile.
operationId: getOrgDeviceProfile
responses:
'200':
$ref: '#/components/responses/Deviceprofile'
'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: getOrgDeviceProfile
tags:
- Orgs Device Profiles
put:
description: Update the AP, switch, or gateway configuration stored in an org-level device profile.
operationId: updateOrgDeviceProfile
requestBody:
content:
application/json:
examples:
deviceprofile_ap:
value:
aeroscout:
enabled: true
host: aero.pvt.net
disable_eth1: true
disable_module: true
mesh:
enabled: true
group: 1
role: base
name: string
poe_passthrough: true
radio_config:
ant_gain_24: 0
ant_gain_5: 0
band_24:
allow_rrm_disable: true
antenna_mode: default
bandwidth: 20
channel: 6
disabled: true
power: 8
preamble: auto
band_24_usage: '24'
band_5:
allow_rrm_disable: true
antenna_mode: default
bandwidth: 20
channel: 50
disabled: true
power_max: 8
power_min: 15
preamble: auto
scanning_enabled: true
type: ap
deviceprofile_hub:
value:
dhcpd_config:
Corp-Mgmt:
dns_servers:
- 8.8.8.8
dns_suffix:
- stag.one
gateway: 10.3.172.9
ip_end: 10.3.172.99
ip_start: 10.3.172.50
type: local
Corp-lan:
dns_servers:
- 8.8.8.8
dns_suffix:
- stag.one
gateway: 10.3.171.9
ip_end: 10.3.171.99
ip_start: 10.3.171.50
type: local
dnsOverride: true
dns_servers:
- 10.3.20.201
- 10.3.51.222
- 1.1.1.1
dns_suffix:
- example.com
extra_routes:
10.101.0.0/16:
via: 10.3.100.10
ip_configs:
Corp-Core:
ip: 10.3.100.9
netmask: /24
type: static
Corp-Mgmt:
ip: 10.3.172.9
netmask: /24
type: static
Corp-lan:
ip: 10.3.171.9
netmask: /24
type: static
name: ITParis
ntpOverride: true
ntp_servers:
- 10.3.51.222
path_preferences:
core:
paths:
- networks:
- Corp-Core
type: local
strategy: ordered
lab:
paths:
- networks:
- Corp-lan
type: local
strategy: ordered
mgmt:
paths:
- networks:
- Corp-Mgmt
type: local
strategy: ordered
untrust:
paths:
- name: wan
type: wan
strategy: ordered
port_config:
ge-0/0/0:
aggregated: false
ip_config:
gateway: 192.168.1.1
ip: 192.168.1.9
netmask: /24
type: static
name: wan
redundant: false
traffic_shaping:
enabled: false
usage: wan
wan_type: broadband
ge-0/0/6-7:
ae_disable_lacp: false
ae_idx: '0'
ae_lacp_force_up: true
aggregated: true
networks:
- Corp-lan
- Corp-Mgmt
- Corp-Core
usage: lan
service_policies:
- action: allow
idp:
enabled: false
name: ITParis-Internal
path_preference: core
services:
- internal_dns
- drive
tenants:
- ITParis
- action: deny
idp:
enabled: false
name: ITParis-internet
path_preference: untrust
services:
- internet_any
tenants:
- ITParis
type: gateway
schema:
$ref: '#/components/schemas/deviceprofile'
description: Request Body
responses:
'200':
$ref: '#/components/responses/Deviceprofile'
'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: updateOrgDeviceProfile
tags:
- Orgs Device Profiles
/api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}/assign:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/deviceprofile_id'
post:
description: Assign Org Device Profile to Devices
operationId: assignOrgDeviceProfile
requestBody:
content:
application/json:
examples:
Example:
value:
macs:
- 5c5b350e0001
- 5c5b350e0003
schema:
$ref: '#/components/schemas/mac_addresses'
description: Request Body
responses:
'200':
$ref: '#/components/responses/AssignSuccess'
'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: assignOrgDeviceProfile
tags:
- Orgs Device Profiles
/api/v1/orgs/{org_id}/deviceprofiles/{deviceprofile_id}/unassign:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/deviceprofile_id'
post:
description: Unassign Org Device Profile from Devices
operationId: unassignOrgDeviceProfile
requestBody:
content:
application/json:
examples:
Example:
value:
macs:
- 5c5b350e0001
- 5c5b350e0003
schema:
$ref: '#/components/schemas/mac_addresses'
description: Request Body
responses:
'200':
$ref: '#/components/responses/AssignSuccess'
'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: unassignOrgDeviceProfile
tags:
- Orgs Device Profiles
components:
schemas:
acl_tag_spec:
additionalProperties: false
description: Layer 4 protocol and destination-port match constraint for an ACL tag
properties:
port_range:
default: '0'
description: Matched dst port, "0" means any
type: string
protocol:
default: any
description: '`tcp` / `udp` / `icmp` / `icmp6` / `gre` / `any` / `:protocol_number`, `protocol_number` is between 1-254, default is `any` `protocol_number` is between 1-254'
type: string
type: object
routing_policy_term_action_prepend_as_path:
description: When used as export policy, optional. By default, the local AS will be prepended, to change it. Can be a Variable (e.g. `{{as_path}}`)
items:
examples:
- 65000 400
type: string
type: array
ap_usb_type:
description: 'usb config type. enum: `hanshow`, `imagotag`, `solum`'
enum:
- hanshow
- imagotag
- solum
examples:
- imagotag
type: string
switch_networks:
additionalProperties:
$ref: '#/components/schemas/switch_network'
description: Property key is network name
type: object
vrf_extra_routes6:
additionalProperties:
$ref: '#/components/schemas/vrf_extra_route6'
description: Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64")
examples:
- 2a02:1234:420a:10c9::/64:
via: 2a02:1234:200a::100
type: object
id:
description: Unique ID of the object instance in the Mist Organization
examples:
- 53f10664-3ce8-4c27-b382-0ef66432349f
format: uuid
readOnly: true
type: string
deviceprofile_ap:
additionalProperties: false
description: AP device profile configuration applied to APs at a site or organization
properties:
aeroscout:
$ref: '#/components/schemas/ap_aeroscout'
description: Location integration defaults for AeroScout in this AP profile
airista:
$ref: '#/components/schemas/ap_airista'
description: Location integration defaults for Airista in this AP profile
ble_config:
$ref: '#/components/schemas/ble_config'
description: Bluetooth Low Energy beacon and asset defaults in this AP profile
created_time:
$ref: '#/components/schemas/created_time'
description: Timestamp when the AP device profile was created
disable_eth1:
default: false
description: Whether to disable eth1 port
type: boolean
disable_eth2:
default: false
description: Whether to disable eth2 port
type: boolean
disable_eth3:
default: false
description: Whether to disable eth3 port
type: boolean
disable_module:
default: false
description: Whether to disable module port
type: boolean
esl_config:
$ref: '#/components/schemas/ap_esl_config'
description: Electronic shelf label integration defaults in this AP profile
for_site:
description: Whether this AP profile is scoped directly to a site
readOnly: true
type: boolean
id:
$ref: '#/components/schemas/id'
description: Unique identifier of the AP device profile
iot_config:
$ref: '#/components/schemas/ap_iot'
description: Digital and analog IoT pin defaults in this AP profile
ip_config:
$ref: '#/components/schemas/ap_ip_config'
description: Management IP addressing defaults in this AP profile
lacp_config:
$ref: '#/components/schemas/device_ap_lacp_config'
description: Link aggregation defaults for supported AP Ethernet uplinks
led:
$ref: '#/components/schemas/ap_led'
description: Indicator light behavior defaults in this AP profile
mesh:
$ref: '#/components/schemas/ap_mesh'
description: Wireless mesh role and band defaults in this AP profile
modified_time:
$ref: '#/components/schemas/modified_time'
description: Timestamp when the AP device profile was last modified
mqtt_config:
$ref: '#/components/schemas/ap_mqtt'
description: MQTT broker publishing settings for this AP profile
name:
description: Display name of the AP device profile
type:
- string
- 'null'
ntp_servers:
$ref: '#/components/schemas/strings'
description: NTP servers configured by this AP profile
org_id:
$ref: '#/components/schemas/org_id'
description: Organization that owns this AP device profile
poe_passthrough:
default: false
description: Whether to enable power out through module port (for APH) or eth1 (for APL/BT11)
type: boolean
port_config:
additionalProperties:
$ref: '#/components/schemas/ap_port_config'
description: eth0 is not allowed here. Property key is the interface(s) name (e.g. `eth1` or `eth1,eth2`). If specified, this takes precedence over switch_config (deprecated)
type: object
pwr_config:
$ref: '#/components/schemas/ap_pwr_config'
description: Power negotiation and peripheral power defaults in this AP profile
radio_config:
$ref: '#/components/schemas/ap_radio'
description: Radio configuration defaults in this AP profile
site_id:
$ref: '#/components/schemas/site_id'
description: Site where this AP device profile is defined, when scoped to a site
switch_config:
$ref: '#/components/schemas/ap_switch'
description: Deprecated AP switch configuration defaults in this profile
type:
$ref: '#/components/schemas/device_type_ap'
description: Device type discriminator for AP device profiles
uplink_port_config:
$ref: '#/components/schemas/ap_uplink_port_config'
description: Authentication and failover defaults for AP uplink ports
usb_config:
$ref: '#/components/schemas/ap_usb'
description: Legacy USB integration defaults in this AP profile
vars:
$ref: '#/components/schemas/vars'
description: Variable values provided by this AP device profile
zigbee_config:
$ref: '#/components/schemas/ap_zigbee'
description: Zigbee radio and network defaults in this AP profile
required:
- type
type: object
service_policy_skyatp_http_inspection:
additionalProperties: false
description: Sky ATP HTTP inspection settings
properties:
enabled:
description: Whether Sky ATP HTTP inspection is enabled
type: boolean
profile:
$ref: '#/components/schemas/service_policy_skyatp_http_inspection_profile'
description: Sky ATP HTTP inspection profile to apply
type: object
dhcpd_config_type:
default: local
description: 'enum: `local` (DHCP Server), `none`, `relay` (DHCP Relay)'
enum:
- local
- none
- relay
type: string
switch_iot_port_alarm_class:
default: minor
description: 'Alarm class for the switch iot port in. enum: `minor`, `major`'
enum:
- minor
- major
type: string
ap_port_config_dynamic_vlan_type:
description: 'Mapping mode for interpreting dynamic VLAN attributes returned by RADIUS.\ \ enum: `airespace-interface-name`, where the VLAN is determined by parsing\ \ the RADIUS attribute as an Airespace interface name (e.g. "guest"\ \ would map to VLAN 100), or `standard`, where the VLAN is determined by parsing\ \ the RADIUS attribute as a standard VLAN ID number'
enum:
- airespace-interface-name
- standard
type: string
remote_syslog_time_format:
description: 'enum: `millisecond`, `year`, `year millisecond`'
enum:
- millisecond
- year
- year millisecond
examples:
- millisecond
type: string
switch_port_usage_storm_control:
additionalProperties: false
description: Switch storm control. Only if `mode`!=`dynamic`
properties:
disable_port:
default: false
description: Whether to disable the port when storm control is triggered
type: boolean
no_broadcast:
default: false
description: Whether to disable storm control on broadcast traffic
type: boolean
no_multicast:
default: false
description: Whether to disable storm control on multicast traffic
type: boolean
no_registered_multicast:
default: false
description: Whether to disable storm control on registered multicast traffic
type: boolean
no_unknown_unicast:
default: false
description: Whether to disable storm control on unknown unicast traffic
type: boolean
percentage:
default: 80
description: Bandwidth-percentage, configures the storm control level as a percentage of the available bandwidth
maximum: 100
minimum: 0
type: integer
type: object
gateway_port_vpn_path_role:
default: spoke
description: 'If the VPN `type`==`hub_spoke`, enum: `hub`, `spoke`. If the VPN `type`==`mesh`, enum: `mesh`'
enum:
- hub
- mesh
- spoke
type: string
snmp_vacm_access:
description: VACM access rules for SNMPv3
items:
$ref: '#/components/schemas/snmp_vacm_access_item'
type: array
ospf_area_network_interface_type:
default: broadcast
description: 'interface type (nbma = non-broadcast multi-access). enum: `broadcast`, `nbma`, `p2mp`, `p2p`'
enum:
- broadcast
- nbma
- p2mp
- p2p
type: string
tunnel_config_auth_algo:
description: 'enum: `md5`, `sha1`, `sha2`'
enum:
- md5
- sha1
- sha2
type: string
response_http400:
additionalProperties: false
description: Standard HTTP 400 bad request error response
properties:
detail:
description: Human-readable explanation of the bad request error
examples:
- 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
type: string
type: object
bgp_config_via:
default: lan
description: 'enum: `lan`, `tunnel`, `vpn`, `wan`'
enum:
- lan
- tunnel
- vpn
- wan
type: string
vrf_extra_route:
additionalProperties: false
description: Additional IPv4 static route for a VRF instance
properties:
via:
description: IPv4 next-hop address for this VRF extra route
format: ipv4
type: string
type: object
snmpv3_config_target_address_item:
additionalProperties: false
description: SNMPv3 notification target address entry
properties:
address:
description: IP address or hostname of the SNMP target
examples:
- 10.11.0.2
type: string
address_mask:
description: Mask applied to the SNMP target address
examples:
- 255.255.255.0
type: string
port:
default: '161'
description: UDP port used by the SNMP target
type:
- string
- 'null'
tag_list:
description: Set of notification tags for this target address; use spaces between multiple tags
type: string
target_address_name:
description: Name of the SNMP target address entry
examples:
- target_address_name
type: string
target_parameters:
description: Target parameter profile referenced by this target address
type: string
type: object
tunnel_config_node_hosts:
description: Remote gateway host addresses for a tunnel node
items:
description: IP address of the remote host
type: string
type: array
gw_routing_policy_term_action_add_target_vrfs:
description: For SSR, target VRFs used by a hub when leaking VRF routes to spokes
items:
type: string
type: array
routing_policy_term_matching_as_path:
description: BGP AS path values used as routing-policy match criteria
items:
$ref: '#/components/schemas/bgp_as'
type: array
dhcpd_config_property:
additionalProperties: false
description: DHCP server or relay configuration for one network
properties:
dns_servers:
$ref: '#/components/schemas/dhcpd_config_dns_servers'
description: If `type`==`local` or `type6`==`local`, DNS servers advertised to DHCP clients
dns_suffix:
$ref: '#/components/schemas/dhcpd_config_dns_suffix'
description: If `type`==`local` or `type6`==`local`, DNS search suffixes advertised to DHCP clients
fixed_bindings:
$ref: '#/components/schemas/dhcpd_config_fixed_bindings'
description: If `type`==`local` or `type6`==`local`, fixe
# --- truncated at 32 KB (320 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist/refs/heads/main/openapi/mist-orgs-device-profiles-api-openapi.yml