Mist Utilities Common API
API Calls to use Devices Troubleshooting tools. Some API Calls can be used with any type of devices (Access Points, Switches and Gateways), and some others may be limited to some types of devices (e.g. "Junos Only")
API Calls to use Devices Troubleshooting tools. Some API Calls can be used with any type of devices (Access Points, Switches and Gateways), and some others may be limited to some types of devices (e.g. "Junos Only")
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 Utilities Common 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: 'API Calls to use Devices Troubleshooting tools.
Some API Calls can be used with any type of devices (Access Points, Switches and Gateways), and some others may be limited to some types of devices (e.g. "Junos Only")'
name: Utilities Common
paths:
/api/v1/sites/{site_id}/devices/restart:
parameters:
- $ref: '#/components/parameters/site_id'
post:
description: Note that only the devices that are connected will be restarted.
operationId: restartSiteMultipleDevices
requestBody:
content:
application/json:
examples:
Example:
value:
device_ids:
- 00000000-0000-0000-1000-5c5b35584a6f
- 00000000-0000-0000-1000-5c5b350ea3b3
Example2:
value:
device_ids:
- 421f6eca-6276-4893-bfeb-53cbbbba6f02
node: node0
schema:
$ref: '#/components/schemas/utils_devices_restart_multi'
description: Request Body
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: restartSiteMultipleDevices
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/arp:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "ARP can be performed on the Device. The output will be available through websocket. As there can be multiple commands issued against the same AP at the same time and the output all goes through the same websocket stream, session is introduced for demux.\n\n\n#### Subscribe to Device Command outputs\n`WS /api-ws/v1/stream`\n\n```json\n{\n \"subscribe\": \"/sites/{site_id}/devices/{device_id}/cmd\"\n}\n```\n##### Example output from ws stream\n```json\n{ \n \"event\": \"data\", \n \"channel\": \"/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd\", \n \"data\": { \n \"session\": \"session_id\", \n \"raw\": \n \"Output\": \"\\tMAC\\t\\tDEV\\tVLAN\\tRx Packets\\t\\t Rx Bytes\\t\\tTx Packets\\t\\t Tx Bytes\\tFlows\\tIdle sec\\n-----------------------------------------------------------------------------------------------------------------------\"\n } \n}\n```"
operationId: arpFromDevice
requestBody:
content:
application/json:
examples:
Example:
value:
node: node0
schema:
$ref: '#/components/schemas/ha_cluster_node'
responses:
'200':
$ref: '#/components/responses/WebsocketSession'
'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: arpFromDevice
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/bounce_port:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "Port Bounce can be performed from Switch/Gateway.\n\n **Note:** Ports starting with vme, ae, irb, and HA control ports (for SSR only) are not supported\n\nThe output will be available through websocket. As there can be multiple commands issued against the same AP at the same time and the output all goes through the same websocket stream, session is introduced for demux.\n\n#### Subscribe to Device Command outputs\n`WS /api-ws/v1/stream`\n\n```json\n{\n \"subscribe\": \"/sites/{site_id}/devices/{device_id}/cmd\"\n}\n```\n##### Example output from ws stream\n```json\n{\n \"event\": \"data\",\n \"channel\": \"/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd\",\n \"data\": {\n \"session\": \"session_id\",\n \"raw\": \"Port bounce complete.\"\n }\n}\n```"
operationId: bounceDevicePort
requestBody:
content:
application/json:
examples:
Example:
value:
ports:
- ge-0/0/0
- ge-0/0/1
schema:
$ref: '#/components/schemas/utils_bounce_port'
description: Request Body
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: bounceDevicePort
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/clear_mac_table:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "Clear MAC Table from the Device.\n\nThe output will be available through websocket. As there can be multiple commands issued against the same device at the same time and the output all goes through the same websocket stream, `session` is introduced for demux.\n\n#### Subscribe to Device Command outputs\n`WS /api-ws/v1/stream`\n\n```json\n{\n \"subscribe\": \"/sites/{site_id}/devices/{device_id}/cmd\"\n}\n```\n"
operationId: clearSiteDeviceMacTable
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/utils_mac_table'
description: All attributes are optional
responses:
'200':
$ref: '#/components/responses/WebsocketSession'
'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: clearSiteDeviceMacTable
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/clear_policy_hit_count:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: Clear application policy hit counts for the specified policy.
operationId: clearSiteDevicePolicyHitCount
requestBody:
content:
application/json:
examples:
Example:
value:
policy_name: http
schema:
$ref: '#/components/schemas/clear_policy_hit_count'
responses:
'200':
$ref: '#/components/responses/WebsocketSessionWithUrl'
'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: clearSiteDevicePolicyHitCount
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/config_cmd:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
get:
description: 'Get Config CLI Commands
For a brown-field switch deployment where we adopted the switch through Adoption Command, we do not wipe out / overwrite the existing config automatically. Instead, we generate CLI commands that we would have generated. The user can inspect, modify, and incorporate this into their existing config manually.
Once they feel comfortable about the config we generate, they can enable allow_mist_config where we will take full control of their config like a claimed switch'
operationId: getSiteDeviceConfigCmd
parameters:
- description: Make output cmds sorted (for better readability) or not.
in: query
name: sort
schema:
default: false
type: boolean
responses:
'200':
$ref: '#/components/responses/DeviceConfigCmd'
'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: getSiteDeviceConfigCmd
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/locate:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "### Access Points\nLocate an Access Point by blinking it's LED.\nIt is a persisted state that has to be stopped by calling Stop Locating API\n\n### Switches\nLocate a Switch by blinking all port LEDs. \nBy default, request is sent to `master` switch and LEDs will keep flashing for 5 minutes.\nIn case of virtual chassis (VC) the desired member mac has to be passed in the request payload. \nAt anypoint, only one VC member can be requested to flash the LED. \nTo stop LED flashing before the duration ends /unlocate API request can be made. \nIf /unlocate API is not called LED will continue to flash on device for the given duration. \nDefault duration is 5 minutes and 120 minutes is the maximum."
operationId: startSiteLocateDevice
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/locate_switch'
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: startSiteLocateDevice
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/monitor_traffic:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "Monitor traffic on switches and SRX.\n * JUNOS uses cmd \"monitor interface <port>\" to monitor traffic on particular <port>\n * JUNOS uses cmd \"monitor interface traffic\" to monitor traffic on all ports"
operationId: monitorSiteDeviceTraffic
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/utils_monitor_traffic'
responses:
'200':
$ref: '#/components/responses/WebsocketSessionWithUrl'
'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: monitorSiteDeviceTraffic
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/ping:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "Ping from AP, Switch and SSR\n\nPing can be performed from the Device. The output will be available through websocket. As there can be multiple commands issued against the same AP at the same time and the output all goes through the same websocket stream, session is introduced for demux.\n\n#### Subscribe to Device Command outputs\n`WS /api-ws/v1/stream`\n\n```json\n{\n \"subscribe\": \"/sites/{site_id}/devices/{device_id}/cmd\"\n}\n```\n##### Example output from ws stream\n```json\n{\n \"event\": \"data\",\n \"channel\": \"/sites/4ac1dcf4-9d8b-7211-65c4-057819f0862b/devices/00000000-0000-0000-1000-5c5b350e0060/cmd\",\n \"data\": {\n \"session\": \"session_id\",\n \"raw\": \"64 bytes from 23.211.0.110: seq=8 ttl=58 time=12.323 ms\\n\"\n }\n}\n```"
operationId: pingFromDevice
requestBody:
content:
application/json:
examples:
Example:
value:
count: 10
host: 1.1.1.1
schema:
$ref: '#/components/schemas/utils_ping'
description: Request Body
responses:
'200':
$ref: '#/components/responses/WebsocketSession'
'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: pingFromDevice
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/readopt:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: For the octerm devices, the device ID must come from fpc0. However, for a VC, the users may change the original fpc0 from CLI. To fix the issue, the readopt API could be used to trigger the readopt process so the device would get the correct device ID to connect the cloud.
operationId: readoptSiteOctermDevice
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: readoptSiteOctermDevice
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/release_dhcp_leases:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: Releases an active DHCP lease.
operationId: releaseSiteDeviceDhcpLease
requestBody:
content:
application/json:
examples:
Example:
value:
port_id: ge-0/0/1.10
schema:
$ref: '#/components/schemas/utils_release_dhcp_leases'
responses:
'200':
$ref: '#/components/responses/OK'
'400':
description: Parameter `port ` absent
'401':
$ref: '#/components/responses/HTTP401'
'403':
$ref: '#/components/responses/HTTP403'
'404':
$ref: '#/components/responses/HTTP404'
'429':
$ref: '#/components/responses/HTTP429'
summary: releaseSiteDeviceDhcpLease
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/reprovision:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: To force one device to reprovision itself again.
operationId: reprovisionSiteOctermDevice
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: readoptSiteOctermDevice
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/request_ztp_password:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: In the case where something happens during/after ZTP, the root-password is modified (required for ZTP to set up outbound-ssh) but the user-defined password config has not be configured. This API can be used to retrieve the temporary password.
operationId: getSiteDeviceZtpPassword
responses:
'200':
content:
application/json:
examples:
Example:
value:
root_password: ef8070ef8f924edb592e1819ed64b31172ab8de9d5cde75d3f46acd9506202ab9b1cbb97e381c5aa11037f17e5ed7b4b609461cd813d944670549d410ef82f2e
schema:
$ref: '#/components/schemas/root_password_string'
description: 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: getSiteDeviceZtpPassword
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/restart:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: Restart / Reboot a device
operationId: restartSiteDevice
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/utils_devices_restart'
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: restartSiteDevice
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/shell:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: Create Shell Session
operationId: createSiteDeviceShellSession
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/shell_node'
responses:
'200':
$ref: '#/components/responses/WebsocketSessionWithUrl'
'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: createSiteDeviceShellSession
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/show_bgp_summary:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "Get BGP Summary from SSR, SRX and Switch.\n\n\nThe output will be available through websocket. As there can be multiple commands issued against the same device at the same time and the output all goes through the same websocket stream, `session` is introduced for demux.\n\n#### Subscribe to Device Command outputs\n`WS /api-ws/v1/stream`\n\n```json\n{\n \"subscribe\": \"/sites/{site_id}/devices/{device_id}/cmd\"\n\n}\n```\n\n##### Example output from ws stream\n```\nTue 2024-04-23 16:36:06 UTC\nRetrieving bgp entries...\nBGP table version is 354, local router ID is 10.224.8.16, vrf id 0\nDefault local pref 100, local AS 65000\nStatus codes: s suppressed, d damped, h history, * valid, > best, = multipath,\n i internal, r RIB_failure, S Stale, R Removed\nNexthop codes: @NNN nexthop's vrf id, < announce-nh-self\nOrigin codes: i - IGP, e - EGP, ? - incomplete\nRPKI validation codes: V valid, I invalid, N Not found\n\n Network Next Hop Metric LocPrf Weight Path\n*> 161.161.161.0/24\n```\""
operationId: showSiteDeviceBgpSummary
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/utils_show_bgp_summary'
description: All attributes are optional
responses:
'200':
$ref: '#/components/responses/WebsocketSession'
'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: showSiteDeviceBgpSummary
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/show_dhcp_leases:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: Shows DHCP leases
operationId: showSiteDeviceDhcpLeases
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/utils_show_dhcp_leases'
responses:
'200':
$ref: '#/components/responses/WebsocketSession'
'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: showSiteDeviceDhcpLeases
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/show_dot1x:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "Get Dot1X Table from the Device.\n\nThe output will be available through websocket. As there can be multiple commands issued against the same device at the same time and the output all goes through the same websocket stream, `session` is introduced for demux.\n\n#### Subscribe to Device Command outputs\n`WS /api-ws/v1/stream`\n\n```json\n{\n \"subscribe\": \"/sites/{site_id}/devices/{device_id}/cmd\"\n}\n```\n"
operationId: showSiteDeviceDot1xTable
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/utils_show_dot1x'
description: All attributes are optional
responses:
'200':
$ref: '#/components/responses/WebsocketSession'
'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: showSiteDeviceDot1xTable
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/show_evpn_database:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: Get EVPN Database from the Device. The output will be available through websocket.
operationId: showSiteDeviceEvpnDatabase
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/utils_show_evpn_database'
description: All attributes are optional
responses:
'200':
$ref: '#/components/responses/WebsocketSession'
'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: showSiteDeviceEvpnDatabase
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/show_forwarding_table:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "Get forwarding table from the Device. The output will be available through websocket. As there can be multiple commands issued against the same device at the same time and the output all goes through the same websocket stream, `session` is introduced for demux.\n\n#### Subscribe to Device Command outputs\n`WS /api-ws/v1/stream`\n\n```json\n{\n \"subscribe\": \"/sites/{site_id}/devices/{device_id}/cmd\"\n}\n```\n\n##### Example output from ws stream\n```\nMon 2024-05-20 16:47:30 UTC Retrieving fib entries… Entry Count: 3268 Capacity: 22668 ==================== ====== ======= ================== ===== ====================== =========== =========== ====== IP Prefix Port Proto Tenant VRF Service Next Hops Vector Cost ==================== ====== ======= ================== ===== ====================== =========== =========== ====== 0.0.0.0/0 0 None Old_Mgmt - internet-wan_and_lte 1-2.0 broadband 1 1-4.0 lte 10 branch1-Kiosk - internet-wan_and_lte 1-2.0 broadband 1 1-4.0 lte 10 branch1-MGT - internet-wan_and_lte 1-2.0 broadband 1 1-4.0 lte 10 3.1.1.0/24 0 None Old_Mgmt - internet-wan_and_lte 1-2.0 broadband 1 1-4.0 lte 10 branch1-Kiosk - internet-wan_and_lte 1-2.0 broadband 1 1-4.0 lte 10 branch1-MGT - internet-wan_and_lte 1-2.0 broadband 1 1-4.0 lte 10\n\n```\n"
operationId: showSiteDeviceForwardingTable
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/utils_show_forwarding_table'
description: All attributes are optional
responses:
'200':
$ref: '#/components/responses/WebsocketSession'
'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: showSiteDeviceForwardingTable
tags:
- Utilities Common
/api/v1/sites/{site_id}/devices/{device_id}/show_mac_table:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/device_id'
post:
description: "Get MAC Table from the Device.\n\nThe output will be available through websocket. As there can be multiple commands issued against the same device at the same time and the output all goes through the same websocket stream, `session` is introduced for demux.\n\n\n\n#### Subscribe to Device Command outputs\n\n`WS /api-ws/v1/stream`\n\n```json\n{\n \"subscribe\": \"/sites/{site_id}/devices/{device_id}/cmd\"\n```\n\n\n#### Example output from ws stream\n\n```json \n{\n \"event\": \"data\",\n \"channel\": \"/sites/d6fb4f96-xxxx-xxxx-xxxx-a8d7b85087ac/devices/00000000-0000-0000-1000-209339xxxxxx/cmd\",\n \"data\": \"{\\\"event\\\": \\\"data\\\", \\\"channel\\\": \\\"/sites/d6fb4f96-xxxx-xxxx-xxxx-a8d7b85087ac/devices/209339xxxxxx/cmd\\\", \\\"data\\\": {\\\"session\\\": \\\"eec2b6e4-1e63-4f9f-9cf8-ef7f9632861e\\\", \\\"raw\\\": \\\"\\\\nMAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P - Persistent static, C - Control MAC\\\\n SE - statistics enabled, NM - non configured MAC, R - remote PE MAC, O - ovsdb MAC\\\\n GBP - group based policy, B - Blocked MAC)\\\\n\\\\n\\\\nE\\\"}}\"\n}\n{\n \"event\": \"data\",\n \"channel\": \"/sites/d6fb4f96-xxxx-xxxx-xxxx-a8d7b85087ac/devices/00000000-0000-0000-1000-209339xxxxxx/cmd\",\n \"data\": \"{\\\"event\\\": \\\"data\\\", \\\"channel\\\": \\\"/sites/d6fb4f96-xxxx-xxxx-xxxx-a8d7b85087ac/devices/209339xxxxxx/cmd\\\", \\\"data\\\": {\\\"session\\\": \\\"eec2b6e4-1e63-4f9f-9cf8-ef7f9632861e\\\", \\\"raw\\\": \\\"thernet switching table : 59 entries, 59 learned\\\\nRouting instance : default-switch\\\\n Vlan MAC MAC Age GBP Logical NH MAC RTR\\\\n name address flags \\\"}}\"\n}\n{\n \"event\": \"data\",\n \"channel\": \"/sites/d6fb4f96-xxxx-xxxx-xxxx-a8d7b85087ac/devices/00000000-0000-0000-1000-209339xxxxxx/cmd\",\n \"data\": \"{\\\"event\\\": \\\"data\\\", \\\"channel\\\": \\\"/sites/d6fb4f96-xxxx-xxxx-xxxx-a8d7b85087ac/devices/209339xxxxxx/cmd\\\", \\\"data\\\": {\\\"session\\\": \\\"eec2b6e4-1e63-4f9f-9cf8-ef7f9632861e\\\", \\\"raw\\\": \\\" Tag interface Index property ID\\\\n corp 00:50:56:87:4f:69 D - xe-0/1/3.0 0 0 \\\\n corp 00:50:56:87:ce:f5 D - x\\\"}}\"\n}\n{\n \"event\": \"data\",\n \"channel\": \"/sites/d6fb4f96-xxxx-xxxx-xxxx-a8d7b85087ac/devices/00000000-0000-0000-1000-209339xxxxxx/cmd\",\n \"data\": \"{\\\"event\\\": \\\"data\\\",
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist/refs/heads/main/openapi/mist-utilities-common-api-openapi.yml