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 Gateway Templates 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: 'Gateway Template is applied to a site for gateway(s) in a site.
When Templates are not used, Site Setting holds settings for multiple device types and they can differ to set device_type specific configs, use this whatever is defined under `gateway` will overwrite/shadow the one at root-level'
name: Orgs Gateway Templates
paths:
/api/v1/orgs/{org_id}/gatewaytemplates:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: List organization gateway templates, which provide reusable WAN gateway configuration that can be applied to gateways at sites.
operationId: listOrgGatewayTemplates
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
responses:
'200':
$ref: '#/components/responses/GatewaytemplatesArray'
'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: listOrgGatewayTemplates
tags:
- Orgs Gateway Templates
post:
description: 'Create an organization gateway template with reusable WAN gateway networks, ports, routing, and service-policy configuration.
Gateway templates can be applied to multiple sites within the organization to provide consistent gateway configuration across sites.
To assign a gateway template to a site, use the [Update Site](/#operations/updateSiteInfo) endpoint and specify the gateway template ID in the `gatewaytemplate_id` field of the request body.'
operationId: createOrgGatewayTemplate
requestBody:
content:
application/json:
examples:
Example:
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: standalone
schema:
$ref: '#/components/schemas/gateway_template'
description: Gateway Template
responses:
'200':
$ref: '#/components/responses/Gatewaytemplate'
'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: createOrgGatewayTemplate
tags:
- Orgs Gateway Templates
/api/v1/orgs/{org_id}/gatewaytemplates/{gatewaytemplate_id}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/gatewaytemplate_id'
delete:
description: Delete an organization gateway template and remove that reusable gateway configuration object from the organization.
operationId: deleteOrgGatewayTemplate
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: deleteOrgGatewayTemplate
tags:
- Orgs Gateway Templates
get:
description: Retrieve the configuration stored in a specific organization gateway template.
operationId: getOrgGatewayTemplate
responses:
'200':
$ref: '#/components/responses/Gatewaytemplate'
'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: getOrgGatewayTemplate
tags:
- Orgs Gateway Templates
put:
description: Update the configuration stored in an organization gateway template.
operationId: updateOrgGatewayTemplate
requestBody:
content:
application/json:
examples:
Example:
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: standalone
schema:
$ref: '#/components/schemas/gateway_template'
description: Gateway Template
responses:
'200':
$ref: '#/components/responses/Gatewaytemplate'
'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: updateOrgGatewayTemplate
tags:
- Orgs Gateway Templates
components:
schemas:
network_source_nat:
additionalProperties: false
description: If `routed`==`false` (usually at Spoke), but some hosts needs to be reachable from Hub
properties:
external_ip:
description: External source NAT IP or subnet used when spoke hosts must be reachable from the hub
examples:
- 172.16.0.8/30
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
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
network_tenant:
additionalProperties: false
description: Tenant address entry for a network
properties:
addresses:
$ref: '#/components/schemas/network_tenant_addresses'
description: IP addresses or subnets assigned to this tenant in the network
type: object
gateway_port_reth_nodes:
description: SSR only - supporting vlan-based redundancy (matching the size of `networks`)
examples:
- - node0
- node1
items:
type: string
type: array
network_routed_for_networks:
description: For a Network (usually LAN), it can be routable to other networks (e.g. OSPF)
items:
examples:
- pos
type: string
type: array
service_policy_skyatp_dns_dga_detection_profile:
description: 'enum: `default`, `standard`, `strict`'
enum:
- default
- standard
- strict
type: string
bgp_config_neighbors:
additionalProperties: false
description: Per-neighbor BGP session settings
properties:
disabled:
default: false
description: If true, the BGP session to this neighbor will be administratively disabled/shutdown
type: boolean
export_policy:
description: Export policy applied only to this BGP neighbor
type: string
hold_time:
default: 90
description: BGP hold time for this neighbor, in seconds
maximum: 65535
minimum: 0
type: integer
import_policy:
description: Import policy applied only to this BGP neighbor
type: string
multihop_ttl:
description: Assuming BGP neighbor is directly connected
maximum: 255
minimum: 0
type: integer
neighbor_as:
$ref: '#/components/schemas/bgp_as'
description: Autonomous System (AS) number of this BGP neighbor
tunnel_via:
$ref: '#/components/schemas/tunnel_via'
description: If `via`==`tunnel`, primary or secondary tunnel associated with this BGP neighbor
required:
- neighbor_as
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
gateway_mgmt_admin_sshkeys:
description: For SSR only, as direct root access is not allowed
examples:
- - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA...Wxa6p6UW0ZbcP john@host
items:
type: string
type: array
tunnel_config_enc_algo:
default: aes256
description: 'enum: `3des`, `aes128`, `aes256`, `aes_gcm128`, `aes_gcm256`'
enum:
- 3des
- aes128
- aes256
- aes_gcm128
- aes_gcm256
type:
- string
- 'null'
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_option_type:
description: 'enum: `boolean`, `hex`, `int16`, `int32`, `ip`, `string`, `uint16`, `uint32`'
enum:
- boolean
- hex
- int16
- int32
- ip
- string
- uint16
- uint32
type: string
dhcpd_config_type:
default: local
description: 'enum: `local` (DHCP Server), `none`, `relay` (DHCP Relay)'
enum:
- local
- none
- relay
type: string
gw_routing_policy_term_action_add_community:
description: BGP communities added to routes matched by a gateway routing policy term
items:
examples:
- '3900190'
type: string
type: array
app_probing_custom_app_protocol:
default: http
description: 'Probe protocol for a custom application. enum: `http`, `icmp`'
enum:
- http
- icmp
type: string
gw_routing_policy_term:
additionalProperties: false
description: Gateway routing policy term with match criteria and actions
properties:
actions:
$ref: '#/components/schemas/gw_routing_policy_term_action'
description: Policy actions applied when this routing policy term matches
matching:
$ref: '#/components/schemas/gw_routing_policy_term_matching'
description: Route match criteria that must be satisfied before actions are applied
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
gateway_wan_probe_override_probe_profile:
default: broadband
description: 'WAN probe profile used for health checks on this port. enum: `broadband`, `lte`'
enum:
- broadband
- lte
type: string
tunnel_config_auth_algo:
description: 'enum: `md5`, `sha1`, `sha2`'
enum:
- md5
- sha1
- sha2
type: string
gateway_wan_type:
default: dhcp
description: 'enum: `dhcp`, `pppoe`, `static`'
enum:
- dhcp
- pppoe
- static
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
tunnel_config_auto_provision_node:
description: Auto-provisioned tunnel endpoint settings
properties:
probe_ips:
$ref: '#/components/schemas/strings'
description: Probe IP addresses used to monitor auto-provisioned tunnel reachability
wan_names:
$ref: '#/components/schemas/tunnel_config_auto_provision_node_wan_names'
description: WAN interface names used by the auto-provisioned tunnel endpoint
network_multicast_group:
additionalProperties: false
description: Multicast group rendezvous point mapping
properties:
rp_ip:
description: RP (rendezvous point) IP address
type: string
type: object
bgp_config_via:
default: lan
description: 'enum: `lan`, `tunnel`, `vpn`, `wan`'
enum:
- lan
- tunnel
- vpn
- wan
type: string
tunnel_config_probe:
additionalProperties: false
description: Tunnel health probe settings
properties:
interval:
description: How often to trigger the probe
type: integer
threshold:
description: Number of consecutive misses before declaring the tunnel down
type: integer
timeout:
description: Time within which to complete the connectivity check
type: integer
type:
$ref: '#/components/schemas/tunnel_config_probe_type'
description: Protocol used by the custom IPsec tunnel health probe
type: object
protect_re_allowed_service:
description: 'Services allowed through protect-RE filters. enum: `icmp`, `ssh`'
enum:
- icmp
- ssh
type: string
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
gateway_port_usage:
description: 'port usage name. enum: `ha_control`, `ha_data`, `lan`, `wan`'
enum:
- ha_control
- ha_data
- lan
- wan
type: string
gateway_port_config_ip_config:
additionalProperties: false
description: Junos IP configuration for a gateway port interface
properties:
dns:
$ref: '#/components/schemas/gateway_ip_config_dns_servers'
description: Resolver server IP addresses used by this interface, except on out-of-band interfaces such as vme, em0, or fxp0
dns_suffix:
$ref: '#/components/schemas/gateway_ip_config_dns_suffix'
description: DNS search suffixes used by this interface, except on out-of-band interfaces such as vme, em0, or fxp0
gateway:
description: Except for out-of_band interface (vme/em0/fxp0). Interface Default Gateway IP address (i.e. "192.168.1.1") or a Variable (i.e. "{{myvar}}")
examples:
- 192.168.1.1
type: string
gateway6:
description: Except for out-of_band interface (vme/em0/fxp0). Interface Default Gateway IPv6 Address (i.e. "2001:db8::1") or a Variable (i.e. "{{myvar}}")
examples:
- 2001:db8::1
type: string
ip:
description: Interface IP address (i.e. "192.168.1.8") or a Variable (i.e. "{{myvar}}")
examples:
- 192.168.1.8
format: ipv4
type: string
ip6:
description: Interface IPv6 Address (i.e. "2001:db8::123") or a Variable (i.e. "{{myvar}}")
examples:
- 2001:db8::123
format: ipv6
type: string
netmask:
description: Used only if `subnet` is not specified in `networks`. Interface Netmask (i.e. "/24") or a Variable (i.e. "{{myvar}}")
examples:
- /24
type: string
netmask6:
description: Used only if `subnet` is not specified in `networks`. Interface IPv6 Netmask (i.e. "/64") or a Variable (i.e. "{{myvar}}")
examples:
- /64
type: string
network:
description: Optional, the network to be used for mgmt
type: string
poser_password:
description: Password used for PPPoE when `type`==`pppoe`
format: password
type: string
pppoe_auth:
$ref: '#/components/schemas/gateway_wan_ppoe_auth'
description: Authentication protocol used for PPPoE when `type`==`pppoe`
pppoe_username:
description: Username used for PPPoE when `type`==`pppoe`
type: string
type:
$ref: '#/components/schemas/gateway_wan_type'
description: IPv4 assignment mode for this gateway port interface
type6:
$ref: '#/components/schemas/gateway_wan_type6'
description: IPv6 assignment mode for this gateway port interface
type: object
gateway_vrf_instance:
additionalProperties: false
description: Gateway VRF instance and its member networks
examples:
- networks:
- CORP_NET
- MGMT_NET
properties:
networks:
$ref: '#/components/schemas/strings'
description: Network names included in this gateway VRF instance
type: object
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
gateway_path_preferences_path:
additionalProperties: false
description: Candidate path within a gateway path preference
properties:
cost:
description: Relative cost assigned to this path for gateway path selection
type: integer
disabled:
description: For SSR Only. `true`, if this specific path is undesired
type: boolean
gateway_ip:
description: Only if `type`==`local`, if a different gateway is desired
type: string
internet_access:
description: Only if `type`==`vpn`, if this vpn path can be used for internet
type: boolean
name:
description: "Required when \n * `type`==`vpn`: the name of the VPN Path to use \n * `type`==`wan`: the name of the WAN interface to use"
type: string
networks:
$ref: '#/components/schemas/gateway_path_preferences_path_networks'
description: List of network names used when `type`==`local`
target_ips:
$ref: '#/components/schemas/gateway_path_preferences_path_target_ips'
description: List of destination IP addresses to replace when `type`==`local`
type:
$ref: '#/components/schemas/gateway_path_type'
description: Gateway path source type, such as local network, WAN interface, VPN path, or tunnel
wan_name:
description: Optional if `type`==`vpn`; WAN interface name associated with the VPN path
examples:
- wan0
type: string
required:
- type
type: object
app_probing:
additionalProperties: false
description: Application reachability probing settings for gateway management
properties:
apps:
$ref: '#/components/schemas/app_probing_apps'
description: Predefined application keys to probe
custom_apps:
$ref: '#/components/schemas/app_probing_custom_apps'
description: User-defined application probe definitions
enabled:
description: Whether gateway application probing is enabled
type: boolean
type: object
service_policy_ssl_proxy:
additionalProperties: false
description: SRX SSL proxy inspection settings for a service policy
properties:
ciphers_category:
$ref: '#/components/schemas/ssl_proxy_ciphers_category'
description: Allowed cipher strength category for SSL proxy inspection
enabled:
default: false
description: Whether SSL proxy inspection is enabled for the service policy
type: boolean
type: object
gateway_path_preferences_path_target_ips:
description: Destination IP addresses to replace when `type`==`local`
items:
type: string
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`, fixed client bindings for local DHCP service
gateway:
description: If `type`==`local` - optional, `ip` will be used if not provided
examples:
- 192.168.70.1
type: string
ip6_end:
description: If `type6`==`local`, ending IPv6 address for the DHCP lease pool
examples:
- 2607:f8b0:4005:808::ff
type: string
ip6_start:
description: If `type6`==`local`, starting IPv6 address for the DHCP lease pool
examples:
- 2607:f8b0:4005:808::2
type: string
ip_end:
description: If `type`==`local`, ending IPv4 address for the DHCP lease pool
examples:
- 192.168.70.200
type: string
ip_start:
description: If `type`==`local`, starting IPv4 address for the DHCP lease pool
examples:
- 192.168.70.100
type: string
lease_time:
default: 86400
description: In seconds, lease time has to be between 3600 [1hr] - 604800 [1 week], default is 86400 [1 day]
maximum: 604800
minimum: 3600
type: integer
options:
$ref: '#/components/schemas/dhcpd_config_o
# --- truncated at 32 KB (145 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist/refs/heads/main/openapi/mist-orgs-gateway-templates-api-openapi.yml