Juniper Mist AI website screenshot

Juniper Mist AI

Juniper Mist AI is the AI-driven enterprise networking platform that powers Juniper Networks' AI-Native Networking portfolio. Acquired by Juniper Networks in 2019, Mist pioneered cloud-native, microservices Wi-Fi and extended its AIOps approach across Wired Assurance (EX/QFX switches), WAN Assurance (SSR/SRX gateways), and Access Assurance (cloud NAC). The platform is anchored by Marvis — a conversational virtual network assistant — and the Mist Cloud API, an OpenAPI 3.1 surface of 736 paths and 2832 schemas served across 13 regional clouds (Global, EMEA, APAC, Federal). Real-time event flow ships over WebSocket subscriptions and outbound Webhooks; infrastructure-as-code is supported by an official Terraform provider; and indoor location is delivered through Virtual BLE with native iOS and Android SDKs.

3 APIs 25 Features
AIAIOpsArtificial IntelligenceNetworkingWi-FiWireless LANWANSD-WANWiredLANAccess PointsSwitchesRoutersMarvisNACAccess AssuranceLocation ServicesBluetooth LEIndoor LocationCloud NetworkingMicroservicesEnterprise NetworkingAI Native Networking

APIs

Juniper Mist Cloud API

The Juniper Mist Cloud API is a comprehensive REST API exposing the entire Mist AI-driven enterprise networking platform — MSPs, Organizations, Sites, Access Points, Switches, S...

Juniper Mist WebSocket Streaming API

Mist exposes a WebSocket channel for real-time event subscriptions including device events, location updates, presence, RSSI, stats, and Marvis events. Clients authenticate with...

Juniper Mist Webhooks API

Mist Webhooks deliver outbound HTTP POST notifications for events at the Organization or Site scope. Supported topics include audits, alarms, device events, client join/disconne...

Collections

Mist API

OPEN

Features

AI-driven Wi-Fi Assurance with user-experience SLEs (Service Level Expectations) and proactive root-cause analysis
AI-driven Wired Assurance for EX-series and QFX switches with port-level telemetry and SLEs
AI-driven WAN Assurance for SSR and SRX-series Session Smart Routers with application-aware SLA monitoring
Marvis Virtual Network Assistant — conversational AIOps with natural language queries and Marvis Actions
Mist Access Assurance — cloud-delivered NAC with granular identity fingerprinting and zero-trust policy
Premium Analytics — long-term retention dashboards across wireless, wired, and WAN with custom reports
Mist Edge — on-premises tunnel terminator for L2/L3 roaming, RadSec proxy, and PoC handoff
Indoor Location Services — Virtual Bluetooth LE (vBLE), zones, asset tracking, way-finding via mobile SDKs
Microservices cloud-native architecture across 13 regional clouds (Global x5, EMEA x4, APAC x3, Federal)
REST API with 736 paths and 2832 schemas covering the full configuration and telemetry surface
WebSocket channels for real-time event streaming — device events, location, presence, RSSI, Marvis
Outbound Webhooks with per-topic configuration (alarms, audits, device events, clients, zone enter/exit, occupancy)
Per-Organization and per-User API tokens with optional 2FA and SSO (SAML 2.0, OAuth2)
MSP (Managed Service Provider) tier for multi-org administration with logos, branding, and per-org licensing
Org Groups for grouping organizations under common policies
Org and Site templates — AP templates, RF templates, switch templates, gateway templates, alarm templates
PSK Portals — pre-shared key self-service and admin lifecycle management
PCAP cloud capture and AI-driven dynamic packet capture
Marvis Actions for automated remediation recommendations
Native integrations with Microsoft Intune, Jamf, Apple SSO, Google Workspace, Okta, Azure AD, ServiceNow
Terraform provider (Juniper/mist) and reusable Terraform modules for IaC-driven network operations
Mobile SDKs (iOS and Android) for indoor wayfinding and vBLE-based location applications
Postman collection and OpenAPI 3.1 specification published in github.com/mistsys/mist_openapi
Audit logs and webhook-based event streams for SIEM/SOAR integration
Sky ATP (Secintel) profiles for Org and Site threat-intelligence enforcement

Resources

🌐
Portal
Portal
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🟢
StatusPage
StatusPage
💬
Support
Support
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🎓
Training
Training
🔗
Forums
Forums
👥
GitHubOrganization
GitHubOrganization
👥
GitHubOrganization
GitHubOrganization
👥
GitHubOrganization
GitHubOrganization
💻
SourceCode
SourceCode
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
📰
Blog
Blog
🔗
LinkedIn
LinkedIn
🔗
Twitter
Twitter
👥
YouTube
YouTube
📄
ChangeLog
ChangeLog
🔗
Documentation
Documentation

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Mist API
  version: 2604.1.1
request:
  auth:
    type: apikey
    key: Authorization
    value: '{{Authorization}}'
    placement: header
items:
- info:
    name: Constants Events
    type: folder
  items:
  - info:
      name: listAlarmDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/alarm_defs
    docs: 'Get List of brief definitions of all the supported alarm types. The example field contains an example payload as
      you would receive in the alarm webhook output.

      HA cluster node names will be specified in the `node` field, if applicable.'
  - info:
      name: listClientEventsDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/client_events
    docs: Get List of List of available Client Events
  - info:
      name: listDeviceEventsDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/device_events
    docs: Get list of available Device Events
  - info:
      name: listMxEdgeEventsDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/mxedge_events
    docs: Get List of available MX Edge Events
  - info:
      name: listNacEventsDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/nac_events
    docs: Get List of List of available NAC Client Events
  - info:
      name: listOtherDeviceEventsDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/otherdevice_events
    docs: Supported Events Type
  - info:
      name: listSystemEventsDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/system_events
    docs: Get List of List of available System Events
- info:
    name: Constants Definitions
    type: folder
  items:
  - info:
      name: listApChannels
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/ap_channels
      params:
      - name: country_code
        value: ''
        type: query
        description: Country code, in two-character
    docs: Get List of List of Available channels per country code
  - info:
      name: listApLEslVersions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/ap_esl_versions
    docs: Get Available AP ESL Versions
  - info:
      name: listApLedDefinition
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/ap_led_status
    docs: Get List of AP LED definition
  - info:
      name: listAppCategoryDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/app_categories
    docs: Get List of definitions of all the supported Application Categories. The example field contains an example payload
      as you would receive in the alarm webhook output.
  - info:
      name: listAppSubCategoryDefinitions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/app_subcategories
    docs: Get List of definitions of all the supported Application sub-categories. The example field contains an example payload
      as you would receive in the alarm webhook output.
  - info:
      name: listApplications
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/applications
    docs: Get List of a list of applications that Juniper-Mist APs recognize
  - info:
      name: listCountryCodes
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/countries
      params:
      - name: extend
        value: ''
        type: query
        description: Will include more country codes if true
    docs: Get List of available Country Codes
  - info:
      name: listFingerprintTypes
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/fingerprint_types
    docs: 'Get List of supported fingerprint attribute values

      * family

      * model

      * mfg

      * os_type


      This information can be used in the [Mist NAC Rules]($h/Orgs%20NAC%20Rules/_overview) `matching` attribute.'
  - info:
      name: listGatewayApplications
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/gateway_applications
    docs: Get the full list of applications that we recognize
  - info:
      name: listInsightMetrics
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/insight_metrics
    docs: List Insight Metrics
  - info:
      name: listSiteLanguages
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/languages
    docs: Get List of Languages
  - info:
      name: listLicenseTypes
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/license_types
    docs: Get License Types
  - info:
      name: listMarvisClientVersions
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/marvisclient_versions
    docs: Get List of the available Marvis Client Versions.
  - info:
      name: listStates
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/states
      params:
      - name: country_code
        value: ''
        type: query
        description: Country code, in [two-character](/#operations/listCountryCodes)
    docs: Get List of ISO States based on country code
  - info:
      name: listTrafficTypes
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/traffic_types
    docs: Get List of identified traffic
  - info:
      name: listWebhookTopics
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/webhook_topics
    docs: Get List of the available Webhook Topics.
- info:
    name: Constants Models
    type: folder
  items:
  - info:
      name: getGatewayDefaultConfig
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/default_gateway_config
      params:
      - name: model
        value: ''
        type: query
        description: Model the default gateway config is intended (as the default LAN/WAN port can differ)
      - name: ha
        value: ''
        type: query
        description: Whether the config is intended for HA
    docs: Generate Default Gateway Config
  - info:
      name: listDeviceModels
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/device_models
    docs: Get list of AP device models for the Mist Site
  - info:
      name: listMxEdgeModels
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/mxedge_models
    docs: Get List of available Mx Edge models
  - info:
      name: listSupportedOtherDeviceModels
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/const/otherdevice_models
    docs: Supported OtherDevice Models
- info:
    name: Installer
    type: folder
  items:
  - info:
      name: listInstallerAlarmTemplates
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/alarmtemplates
      params:
      - name: org_id
        value: ''
        type: path
    docs: Get List of alarm templates
  - info:
      name: listInstallerDeviceProfiles
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/deviceprofiles
      params:
      - name: org_id
        value: ''
        type: path
      - name: type
        value: ''
        type: query
    docs: Get List of Device Profiles
  - info:
      name: listInstallerListOfRecentlyClaimedDevices
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices
      params:
      - name: org_id
        value: ''
        type: path
      - name: model
        value: ''
        type: query
        description: Device Model
      - name: site_name
        value: ''
        type: query
        description: Site Name
      - name: site_id
        value: ''
        type: query
        description: Site ID
      - name: limit
        value: ''
        type: query
      - name: page
        value: ''
        type: query
    docs: Get List of recently claimed devices
  - info:
      name: claimInstallerDevices
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices
      params:
      - name: org_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: This mirrors `POST /api/v1/orgs/{org_id}/inventory` (see Inventory API)
  - info:
      name: provisionInstallerDevices
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:device_mac
      params:
      - name: org_id
        value: ''
        type: path
      - name: device_mac
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: "Provision or Replace a device \n\nIf replacing_mac is in the request payload, other attributes are ignored, we\
      \ attempt to replace existing device (with mac replacing_mac) with the inventory device being configured. The replacement\
      \ device must be in the inventory but not assigned, and the replacing_mac device must be assigned to a site, and satisfy\
      \ grace period requirements. The Device replaced will become unassigned."
  - info:
      name: unassignInstallerRecentlyClaimedDevice
      type: http
    http:
      method: DELETE
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:device_mac
      params:
      - name: org_id
        value: ''
        type: path
      - name: device_mac
        value: ''
        type: path
    docs: Unassign recently claimed devices
  - info:
      name: startInstallerLocateDevice
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:device_mac/locate
      params:
      - name: org_id
        value: ''
        type: path
      - name: device_mac
        value: ''
        type: path
    docs: Locate a Device by blinking it’s LED, it’s a persisted state that has to be stopped by calling Stop Locating API
  - info:
      name: stopInstallerLocateDevice
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:device_mac/unlocate
      params:
      - name: org_id
        value: ''
        type: path
      - name: device_mac
        value: ''
        type: path
    docs: Stop it
  - info:
      name: addInstallerDeviceImage
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:device_mac/:image_name
      params:
      - name: org_id
        value: ''
        type: path
      - name: image_name
        value: ''
        type: path
      - name: device_mac
        value: ''
        type: path
      body:
        type: multipart-form
        data: []
    docs: Add image
  - info:
      name: deleteInstallerDeviceImage
      type: http
    http:
      method: DELETE
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:device_mac/:image_name
      params:
      - name: org_id
        value: ''
        type: path
      - name: image_name
        value: ''
        type: path
      - name: device_mac
        value: ''
        type: path
    docs: Delete image
  - info:
      name: getInstallerDeviceVirtualChassis
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:fpc0_mac/vc
      params:
      - name: org_id
        value: ''
        type: path
      - name: fpc0_mac
        value: ''
        type: path
        description: FPC0 MAC Address
    docs: 'Get VC Status


      The API returns a combined view of the VC status which includes topology and stats'
  - info:
      name: createInstallerVirtualChassis
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:fpc0_mac/vc
      params:
      - name: org_id
        value: ''
        type: path
      - name: fpc0_mac
        value: ''
        type: path
        description: FPC0 MAC Address
      body:
        type: json
        data: '{}'
    docs: 'For models (e.g. EX3400 and up) having dedicated VC ports, it is easier to form a VC by just connecting cables
      with the dedicated VC ports. Cloud will detect the new VC and update the inventory.


      In case that the user would like to choose the dedicated switch as a VC master or for EX2300-C-12P and EX2300-C-12T
      which doesn''t have dedicated VC ports, below are procedures to automate the VC creation:


      1. Power on the switch that is chosen as the VC master first. And then powering on the other membe'
  - info:
      name: updateInstallerVirtualChassisMember
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/devices/:fpc0_mac/vc
      params:
      - name: org_id
        value: ''
        type: path
      - name: fpc0_mac
        value: ''
        type: path
        description: FPC0 MAC Address
      body:
        type: json
        data: '{}'
    docs: 'The VC creation and adding member switch API will update the device’ s virtual chassis config which is applied
      after VC is formed to create JUNOS pre-provisioned virtual chassis configuration.


      ## Change to use preprovisioned VC

      To switch the VC to use preprovisioned VC, enable preprovisioned in virtual_chassis config. Both vc_role master and
      backup will be matched to routing-engine role in Junos preprovisioned VC config.


      In this config, fpc0 has to be the same as the mac of device_id. Use renu'
  - info:
      name: listInstallerRfTemplatesNames
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/rftemplates
      params:
      - name: org_id
        value: ''
        type: path
    docs: Get List of RF Templates
  - info:
      name: listInstallerSiteGroups
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/sitegroups
      params:
      - name: org_id
        value: ''
        type: path
    docs: Get List of Site Groups
  - info:
      name: listInstallerSites
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/sites
      params:
      - name: org_id
        value: ''
        type: path
    docs: Get List of Sites
  - info:
      name: createOrUpdateInstallerSites
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/sites/:site_name
      params:
      - name: org_id
        value: ''
        type: path
      - name: site_name
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Often the Installers are asked to assign Devices to Sites. The Sites can either be pre-created or created/modified
      by the Installer. If this is an update, the same grace period also applies.
  - info:
      name: listInstallerMaps
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/sites/:site_name/maps
      params:
      - name: org_id
        value: ''
        type: path
      - name: site_name
        value: ''
        type: path
    docs: Get List of Maps
  - info:
      name: importInstallerMap
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/sites/:site_name/maps/import
      params:
      - name: org_id
        value: ''
        type: path
      - name: site_name
        value: ''
        type: path
      body:
        type: multipart-form
        data: []
    docs: Import data from files is a multipart POST which has an file, an optional json, and an optional csv, to create floorplan,
      assign & place ap if name or mac matches
  - info:
      name: createInstallerMap
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/sites/:site_name/maps/:map_id
      params:
      - name: org_id
        value: ''
        type: path
      - name: site_name
        value: ''
        type: path
      - name: map_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Create a MAP
  - info:
      name: updateInstallerMap
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/sites/:site_name/maps/:map_id
      params:
      - name: org_id
        value: ''
        type: path
      - name: site_name
        value: ''
        type: path
      - name: map_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update map
  - info:
      name: deleteInstallerMap
      type: http
    http:
      method: DELETE
      url: https://api.mist.com/api/v1/installer/orgs/:org_id/sites/:site_name/maps/:map_id
      params:
      - name: org_id
        value: ''
        type: path
      - name: site_name
        value: ''
        type: path
      - name: map_id
        value: ''
        type: path
    docs: Delete Map
  - info:
      name: optimizeInstallerRrm
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/installer/sites/:site_name/optimize
      params:
      - name: site_name
        value: ''
        type: path
    docs: After installation is considered complete (APs are placed on maps, all powered up), you can trigger an optimize
      operation where RRM will kick in (and maybe other things in the future) before it’s automatically scheduled.
- info:
    name: Admins
    type: folder
  items:
  - info:
      name: verifyAdminInvite
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/invite/verify/:token
      params:
      - name: token
        value: ''
        type: path
    docs: '**Note**: another call to ```GET /api/v1/self``` is required to see the new set of privileges'
  - info:
      name: registerNewAdmin
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/register
      body:
        type: json
        data: '{}'
    docs: "Register a new admin and his/her org\nAn email will also be sent to the user with a link to `/verify/register?token={token}`\n\
      \n### reCAPTCHA\nGoogle reCAPTCHA is the choice to prevent bot registration\n\nIt needs this \n\n<script src='https://www.google.com/recaptcha/api.js'\
      \ &gt;&lt;/script&gt;\n\nand this &lt;div&gt; in the desired place\n```html\n<div class=\"g-recaptcha\" data_sitekey=\"\
      6LdAewsTAAAAAE25XKQhPEQ2FiMTft-WrZXQ5NUd\"></div>\n```\n\nUse GET /api/v1/register/recaptcha to read the current setting.\n"
  - info:
      name: getAdminRegistrationInfo
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/register/recaptcha
      params:
      - name: recaptcha_flavor
        value: ''
        type: query
    docs: Get Registration Information
  - info:
      name: verifyRegistration
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/register/verify/:token
      params:
      - name: token
        value: ''
        type: path
    docs: Verify registration
- info:
    name: Admins Login
    type: folder
  items:
  - info:
      name: login
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/login
      body:
        type: json
        data: '{}'
    docs: "Log in with email/password.\nWhen 2FA is enabled, there are two ways to login:\n1. login with two_factor token\
      \ (with Google Authenticator, etc) \n2. login with email/password, generate the token, and use /login/two_factor with\
      \ the token"
  - info:
      name: twoFactor
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/login/two_factor
      body:
        type: json
        data: '{}'
    docs: Send 2FA Code
- info:
    name: Admins Lookup
    type: folder
  items:
  - info:
      name: lookup
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/login/lookup
      body:
        type: json
        data: '{}'
    docs: Login Lookup
- info:
    name: Admins Login - OAuth2
    type: folder
  items:
  - info:
      name: getOauth2AuthorizationUrlForLogin
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/login/oauth/:provider
      params:
      - name: provider
        value: ''
        type: path
      - name: forward
        value: ''
        type: query
        description: Callback URL
    docs: Obtain Authorization URL for Login
  - info:
      name: loginOauth2
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/login/oauth/:provider
      params:
      - name: provider
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Login via OAuth2
  - info:
      name: unlinkOauth2Provider
      type: http
    http:
      method: DELETE
      url: https://api.mist.com/api/v1/login/oauth/:provider
      params:
      - name: provider
        value: ''
        type: path
    docs: Unlink OAuth2 Provider
- info:
    name: Admins Logout
    type: folder
  items:
  - info:
      name: logout
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/logout
    docs: Logout
- info:
    name: Orgs SDK Invites
    type: folder
  items:
  - info:
      name: activateSdkInvite
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/mobile/verify/:secret
      params:
      - name: secret
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Verify secret
  - info:
      name: listSdkInvites
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/orgs/:org_id/sdkinvites
      params:
      - name: org_id
        value: ''
        type: path
    docs: Get List of Org SDK Invites
  - info:
      name: createSdkInvite
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/orgs/:org_id/sdkinvites
      params:
      - name: org_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Create SDK Invite
  - info:
      name: getSdkInvite
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/orgs/:org_id/sdkinvites/:sdkinvite_id
      params:
      - name: org_id
        value: ''
        type: path
      - name: sdkinvite_id
        value: ''
        type: path
    docs: Get SDK Invite Details
  - info:
      name: updateSdkInvite
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/orgs/:org_id/sdkinvites/:sdkinvite_id
      params:
      - name: org_id
        value: ''
        type: path
      - name: sdkinvite_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update SDK Invite
  - info:
      name: revokeSdkInvite
      type: http
    http:
      method: DELETE
      url: https://api.mist.com/api/v1/orgs/:org_id/sdkinvites/:sdkinvite_id
      params:
      - name: org_id
        value: ''
        type: path
      - name: sdkinvite_id
        value: ''
        type: path
    docs: Revoke SDK Invite
  - info:
      name: sendSdkInviteEmail
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/orgs/:org_id/sdkinvites/:sdkinvite_id/email
      params:
      - name: org_id
        value: ''
        type: path
      - name: sdkinvite_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Send SDK Invite by Email
  - info:
      name: getSdkInviteQrCode
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/orgs/:org_id/sdkinvites/:sdkinvite_id/qrcode
      params:
      - name: org_id
        value: ''
        type: path
      - name: sdkinvite_id
        value: ''
        type: path
    docs: Revoke SDK Invite
  - info:
      name: sendSdkInviteSms
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/orgs/:org_id/sdkinvites/:sdkinvite_id/sms
      params:
      - name: org_id
        value: ''
        type: path
      - name: sdkinvite_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Send SDK Invite by SMS
- info:
    name: MSPs
    type: folder
  items:
  - info:
      name: createMsp
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/msps
      body:
        type: json
        data: '{}'
    docs: Create MSP account
  - info:
      name: getMspDetails
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/msps/:msp_id
      params:
      - name: msp_id
        value: ''
        type: path
    docs: Get MSP Detail
  - info:
      name: updateMsp
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/msps/:msp_id
      params:
      - name: msp_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update MSP
  - info:
      name: deleteMsp
      type: http
    http:
      method: DELETE
      url: https://api.mist.com/api/v1/msps/:msp_id
      params:
      - name: msp_id
        value: ''
        type: path
    docs: Deleting MSP removes the MSP and OrgGroup under the MSP as well as all privileges associated with them. It does
      not remove any Org or Admins
  - info:
      name: searchMspOrgGroup
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/msps/:msp_id/search
      params:
      - name: msp_id
        value: ''
        type: path
      - name: type
        value: orgs
        type: query
        description: Orgs
      - name: q
        value: ''
        type: query
        description: Search string
      - name: limit
        value: ''
        type: query
      - name: start
        value: ''
        type: query
        description: Start time (epoch timestamp in seconds, or relative string like "-1d", "-1w")
      - name: end
        value: ''
        type: query
        description: End time (epoch timestamp in seconds, or relative string like "-1d", "-2h", "now")
      - name: duration
        value: ''
        type: query
        description: Duration like 7d, 2w
      - name: sort
        value: ''
        type: query
        description: On which field the list should be sorted, -prefix represents DESC order
    docs: Search in MSP Orgs
- info:
    name: MSPs Admins
    type: folder
  items:
  - info:
      name: listMspAdmins
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/msps/:msp_id/admins
      params:
      - name: msp_id
        value: ''
        type: path
    docs: Get List of MSP Admins
  - info:
      name: getMspAdmin
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/msps/:msp_id/admins/:admin_id
      params:
      - name: msp_id
        value: ''
        type: path
      - name: admin_id
        value: ''
        type: path
    docs: Get MSP Admins
  - info:
      name: updateMspAdmin
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/msps/:msp_id/admins/:admin_id
      params:
      - name: msp_id
        value: ''
        type: path
      - name: admin_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update MSP Admin
  - info:
      name: revokeMspAdmin
      type: http
    http:
      method: DELETE
      url: https://api.mist.com/api/v1/msps/:msp_id/admins/:admin_id
      params:
      - name: msp_id
        value: ''
        type: path
      - name: admin_id
        value: ''
        type: path
    docs: This removes all privileges this admin has against the MSP. This goes deep all the way to the sites
  - info:
      name: inviteMspAdmin
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/msps/:msp_id/invites
      params:
      - name: msp_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Invite MSP Admin


      **Note**: An email will also be sent to the user with a link to https://manage.mist.com/verify/invite?token=:token'
  - info:
      name: updateMspAdminInvite
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/msps/:msp_id/invites/:invite_id
      params:
      - name: msp_id
        value: ''
        type: path
      - name: invite_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Update MSP admin invite
  - info:
      name: uninviteMspAdmin
      type: http
    http:
      method: DELETE
      url: https://api.mist.com/api/v1/msps/:msp_id/invites/:invite_id
      params:
      - name: msp_id
        value: ''
        type: path
      - name: invite_id
        value: ''
        type: path
    docs: Delete admin invite
- info:
    name: MSPs Licenses
    type: folder
  items:
  - info:
      name: claimMspLicense
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/msps/:msp_id/claim
      params:
      - name: msp_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Claim an Order by Activation Code
  - info:
      name: listMspLicenses
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/msps/:msp_id/licenses
      params:
      - name: msp_id
        value: ''
        type: path
    docs: Get List of Msp Licenses
  - info:
      name: moveOrDeleteMspLicenseToAnotherOrg
      type: http
    http:
      method: PUT
      url: https://api.mist.com/api/v1/msps/:msp_id/licenses
      params:
      - name: msp_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Move or Delete MSP Licenses
  - info:
      name: listMspOrgLicenses
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/msps/:msp_id/stats/licenses
      params:
      - name: msp_id
        value: ''
        type: path
    docs: Get List of MSP Licenses
- info:
    name: MSPs SLEs
    type: folder
  items:
  - info:
      name: getMspSle
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/msps/:msp_id/insights/:metric
      params:
      - name: msp_id
        value: ''
        type: path
      - name: metric
        value: ''
        type: path
        description: See [List Insight Metrics](/#operations/listInsightMetrics) for available metrics
      - name: sle
        value: ''
        type: query
        description: See [List Insight Metrics](/#operations/listInsightMetrics) for more details
      - name: duration
        value: ''
        type: query
        description: Duration like 7d, 2w
      - name: interval
        value: ''
        type: query
        description: Aggregation works by giving a time range plus interval (e.g. 1d, 1h, 10m) where aggregation function
          would be applied to.
      - name: start
        value: ''
        type: query
        description: Start time (epoch timestamp in seconds, or relative string like "-1d", "-1w")
      - name: end
        value: ''
        type: query
        description: End time (epoch timestamp in seconds, or relative string like "-1d", "-2h", "now")
    docs: Get MSP SLEs (all/worst Orgs ...)
- info:
    name: MSPs Inventory
    type: folder
  items:
  - info:
      name: getMspInventoryByMac
      type: http
    http:
      method: GET
      url: https://api.mist.com/api/v1/msps/:msp_id/inventory/:device_mac
      params:
      - name: msp_id
        value: ''
        type: path
      - name: device_mac
        value: ''
        type: path
    docs: Get Inventory By device MAC address
- info:
    name: MSPs Logo
    type: folder
  items:
  - info:
      name: postMspLogo
      type: http
    http:
      method: POST
      url: https://api.mist.com/api/v1/msps/:msp_id/logo
      params:
      - name: msp_id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Upload Logo (only for advanced msp tier)
  - info:
      name: deleteMspLogo
      type: http
    http

# --- truncated at 32 KB (648 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist-ai/refs/heads/main/apis.yml