Juniper Mist API

Cloud-based AI-driven networking API for wireless, wired, and SD-WAN management.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

juniper-networks-mist-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Juniper Networks Juniper Mist Cloud API
  description: >-
    RESTful API for the Juniper Mist AI-driven cloud platform. Mist provides
    centralized management of wireless access points, wired switches, and
    SD-WAN gateways through a single cloud dashboard. The API enables
    programmatic access to organization, site, device, and client management
    as well as monitoring, analytics, and configuration automation. Mist uses
    AI and machine learning to optimize wireless performance, detect anomalies,
    and provide proactive insights. The API follows REST conventions with
    JSON request and response bodies.
  version: '1.0'
  contact:
    name: Juniper Mist Developer Support
    url: https://www.juniper.net/documentation/product/us/en/mist/
  license:
    name: Proprietary
    url: https://www.juniper.net/us/en/legal-notices.html
  termsOfService: https://www.juniper.net/us/en/legal-notices.html
servers:
  - url: https://api.mist.com/api/v1
    description: Mist Global Cloud API (US region)
  - url: https://api.eu.mist.com/api/v1
    description: Mist EU Cloud API (EU region)
  - url: https://api.gc1.mist.com/api/v1
    description: Mist GovCloud API (US Government)
security:
  - apiToken: []
  - csrfToken: []
tags:
  - name: Alarms
    description: Alarm monitoring, acknowledgment, and notification configuration.
  - name: Authentication
    description: Login, logout, two-factor authentication, and API token management.
  - name: Clients
    description: Wireless and wired client session monitoring and statistics.
  - name: Devices
    description: Access points, switches, and gateway device management.
  - name: Insights
    description: AI-driven network insights, anomaly detection, and Marvis recommendations.
  - name: Inventory
    description: Device claiming, unclaiming, and inventory management.
  - name: Maps
    description: Floor plan and map management for site RF planning.
  - name: Organizations
    description: Organization-level settings, licenses, and inventory management.
  - name: Sites
    description: Site creation, configuration, and management within organizations.
  - name: WLANs
    description: Wireless LAN configuration including SSIDs, security, and VLAN assignment.
paths:
  /self:
    get:
      operationId: getSelf
      summary: Juniper Networks Get current user information
      description: >-
        Returns the profile of the currently authenticated user, including
        organization and site-level privileges, email, and name.
      tags:
        - Authentication
      responses:
        '200':
          description: Current user profile returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Admin'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /self/apitokens:
    get:
      operationId: listApiTokens
      summary: Juniper Networks List API tokens
      description: >-
        Returns all API tokens created by the authenticated user. API tokens
        provide bearer token authentication as an alternative to session-based
        login and are scoped to the user's permissions.
      tags:
        - Authentication
      responses:
        '200':
          description: API tokens returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiToken'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createApiToken
      summary: Juniper Networks Create API token
      description: >-
        Creates a new API token for the authenticated user. The token inherits
        the user's organization and site privileges.
      tags:
        - Authentication
      responses:
        '200':
          description: API token created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiToken'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /orgs:
    get:
      operationId: listOrgs
      summary: Juniper Networks List organizations
      description: >-
        Returns all organizations the authenticated user has access to.
        Organizations are the top-level container for sites, devices, and
        configuration.
      tags:
        - Organizations
      responses:
        '200':
          description: Organizations returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Organization'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /orgs/{org_id}:
    get:
      operationId: getOrg
      summary: Juniper Networks Get organization
      description: Returns the details of a specific organization.
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/OrgId'
      responses:
        '200':
          description: Organization returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateOrg
      summary: Juniper Networks Update organization
      description: Updates the settings of an organization.
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/OrgId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Organization'
      responses:
        '200':
          description: Organization updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /orgs/{org_id}/sites:
    get:
      operationId: listOrgSites
      summary: Juniper Networks List organization sites
      description: >-
        Returns all sites belonging to an organization. Sites represent physical
        locations such as offices, campuses, or retail stores.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/OrgId'
      responses:
        '200':
          description: Sites returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Site'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createSite
      summary: Juniper Networks Create site
      description: >-
        Creates a new site within an organization. Sites are the primary
        grouping for devices and network configuration.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/OrgId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Site'
      responses:
        '200':
          description: Site created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /sites/{site_id}:
    get:
      operationId: getSite
      summary: Juniper Networks Get site
      description: Returns the details of a specific site.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: Site returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateSite
      summary: Juniper Networks Update site
      description: Updates the configuration of a site.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/SiteId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Site'
      responses:
        '200':
          description: Site updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteSite
      summary: Juniper Networks Delete site
      description: Deletes a site and all associated configuration.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: Site deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /sites/{site_id}/devices:
    get:
      operationId: listSiteDevices
      summary: Juniper Networks List site devices
      description: >-
        Returns all devices assigned to a site, including access points,
        switches, and gateways.
      tags:
        - Devices
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - name: type
          in: query
          description: Filter by device type.
          schema:
            type: string
            enum:
              - ap
              - switch
              - gateway
      responses:
        '200':
          description: Devices returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Device'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sites/{site_id}/devices/{device_id}:
    get:
      operationId: getSiteDevice
      summary: Juniper Networks Get device
      description: Returns details for a specific device at a site.
      tags:
        - Devices
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - $ref: '#/components/parameters/DeviceId'
      responses:
        '200':
          description: Device returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateSiteDevice
      summary: Juniper Networks Update device
      description: Updates the configuration of a specific device.
      tags:
        - Devices
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - $ref: '#/components/parameters/DeviceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Device'
      responses:
        '200':
          description: Device updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sites/{site_id}/wlans:
    get:
      operationId: listSiteWlans
      summary: Juniper Networks List site WLANs
      description: >-
        Returns all WLAN configurations for a site. Each WLAN defines an SSID
        with associated security, VLAN, and radio settings.
      tags:
        - WLANs
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: WLANs returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Wlan'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createSiteWlan
      summary: Juniper Networks Create WLAN
      description: >-
        Creates a new WLAN (SSID) at a site with specified security, VLAN,
        and radio configuration.
      tags:
        - WLANs
      parameters:
        - $ref: '#/components/parameters/SiteId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Wlan'
      responses:
        '200':
          description: WLAN created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wlan'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sites/{site_id}/stats/clients:
    get:
      operationId: listSiteClientStats
      summary: Juniper Networks List client statistics
      description: >-
        Returns statistics for wireless clients connected at a site, including
        signal strength, data usage, and connection quality metrics.
      tags:
        - Clients
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - name: start
          in: query
          description: Start time epoch in seconds.
          schema:
            type: integer
        - name: end
          in: query
          description: End time epoch in seconds.
          schema:
            type: integer
        - name: limit
          in: query
          description: Maximum number of results.
          schema:
            type: integer
            default: 100
      responses:
        '200':
          description: Client statistics returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientStat'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sites/{site_id}/insights/marvis:
    get:
      operationId: listMarvisActions
      summary: Juniper Networks List Marvis actions
      description: >-
        Returns AI-driven Marvis actions for a site. Marvis uses machine
        learning to identify network issues, anomalies, and optimization
        opportunities. Actions include recommended fixes for AP health,
        client connectivity, and capacity issues.
      tags:
        - Insights
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - name: start
          in: query
          description: Start time epoch in seconds.
          schema:
            type: integer
        - name: end
          in: query
          description: End time epoch in seconds.
          schema:
            type: integer
      responses:
        '200':
          description: Marvis actions returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarvisAction'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /orgs/{org_id}/inventory:
    get:
      operationId: listOrgInventory
      summary: Juniper Networks List organization inventory
      description: >-
        Returns all devices in the organization inventory, including claimed
        devices that may or may not be assigned to sites.
      tags:
        - Inventory
      parameters:
        - $ref: '#/components/parameters/OrgId'
        - name: serial
          in: query
          description: Filter by device serial number.
          schema:
            type: string
        - name: model
          in: query
          description: Filter by device model.
          schema:
            type: string
        - name: type
          in: query
          description: Filter by device type.
          schema:
            type: string
            enum:
              - ap
              - switch
              - gateway
      responses:
        '200':
          description: Inventory returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InventoryItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
    put:
      operationId: updateOrgInventory
      summary: Juniper Networks Update inventory assignment
      description: >-
        Assigns or unassigns devices from sites within the organization
        inventory. Used to move devices between sites or release them
        from site assignment.
      tags:
        - Inventory
      parameters:
        - $ref: '#/components/parameters/OrgId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                op:
                  type: string
                  enum:
                    - assign
                    - unassign
                  description: Operation to perform.
                site_id:
                  type: string
                  format: uuid
                  description: Target site ID for assignment.
                macs:
                  type: array
                  items:
                    type: string
                  description: List of device MAC addresses.
                serials:
                  type: array
                  items:
                    type: string
                  description: List of device serial numbers.
      responses:
        '200':
          description: Inventory updated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: array
                    items:
                      type: string
                  error:
                    type: array
                    items:
                      type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sites/{site_id}/maps:
    get:
      operationId: listSiteMaps
      summary: Juniper Networks List site maps
      description: >-
        Returns all floor plan maps for a site. Maps are used for indoor
        location, RF planning, and device placement visualization.
      tags:
        - Maps
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: Maps returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Map'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sites/{site_id}/alarms:
    get:
      operationId: listSiteAlarms
      summary: Juniper Networks List site alarms
      description: >-
        Returns active and recent alarms for a site. Alarms indicate
        device health issues, connectivity problems, and configuration
        anomalies detected by the Mist platform.
      tags:
        - Alarms
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - name: start
          in: query
          description: Start time epoch in seconds.
          schema:
            type: integer
        - name: end
          in: query
          description: End time epoch in seconds.
          schema:
            type: integer
        - name: type
          in: query
          description: Filter by alarm type.
          schema:
            type: string
      responses:
        '200':
          description: Alarms returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Alarm'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  securitySchemes:
    apiToken:
      type: http
      scheme: bearer
      description: >-
        API token authentication. Generate tokens via the Mist dashboard under
        Organization > Settings > API Token or via POST /self/apitokens.
        Pass the token in the Authorization header as Bearer {token}.
    csrfToken:
      type: apiKey
      in: header
      name: X-CSRFToken
      description: >-
        CSRF token for session-based authentication. Obtained from the login
        response and required for all mutating operations when using cookie
        authentication.
  parameters:
    OrgId:
      name: org_id
      in: path
      required: true
      description: Organization unique identifier.
      schema:
        type: string
        format: uuid
    SiteId:
      name: site_id
      in: path
      required: true
      description: Site unique identifier.
      schema:
        type: string
        format: uuid
    DeviceId:
      name: device_id
      in: path
      required: true
      description: Device unique identifier.
      schema:
        type: string
        format: uuid
  responses:
    BadRequest:
      description: Invalid request parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required or token invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Insufficient permissions for the requested operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        detail:
          type: string
          description: Human-readable error description.
    Admin:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Admin user unique identifier.
        name:
          type: string
          description: Admin display name.
        email:
          type: string
          format: email
          description: Admin email address.
        privileges:
          type: array
          description: List of organization and site-level privileges.
          items:
            type: object
            properties:
              scope:
                type: string
                enum:
                  - org
                  - site
              org_id:
                type: string
                format: uuid
              site_id:
                type: string
                format: uuid
              role:
                type: string
                enum:
                  - admin
                  - write
                  - read
                  - helpdesk
    ApiToken:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Token identifier.
        key:
          type: string
          description: API token value. Only returned on creation.
        created_time:
          type: number
          description: Creation timestamp in epoch seconds.
        last_used:
          type: number
          description: Last usage timestamp in epoch seconds.
    Organization:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Organization unique identifier.
        name:
          type: string
          description: Organization name.
        orggroup_ids:
          type: array
          items:
            type: string
            format: uuid
          description: Organization group membership IDs.
        session_expiry:
          type: integer
          description: Session timeout in minutes.
        msp_id:
          type: string
          format: uuid
          description: Managed service provider ID if applicable.
        created_time:
          type: number
          description: Creation timestamp in epoch seconds.
        modified_time:
          type: number
          description: Last modification timestamp in epoch seconds.
    Site:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Site unique identifier.
        org_id:
          type: string
          format: uuid
          description: Parent organization ID.
        name:
          type: string
          description: Site name.
        timezone:
          type: string
          description: Site timezone in IANA format (e.g., America/Los_Angeles).
        country_code:
          type: string
          description: ISO 3166-1 alpha-2 country code.
        address:
          type: string
          description: Physical address of the site.
        latlng:
          type: object
          properties:
            lat:
              type: number
              description: Latitude.
            lng:
              type: number
              description: Longitude.
        sitegroup_ids:
          type: array
          items:
            type: string
            format: uuid
          description: Site group membership IDs.
        rftemplate_id:
          type: string
          format: uuid
          description: RF template applied to the site.
        networktemplate_id:
          type: string
          format: uuid
          description: Network template applied to the site.
        created_time:
          type: number
          description: Creation timestamp in epoch seconds.
        modified_time:
          type: number
          description: Last modification timestamp in epoch seconds.
    Device:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Device unique identifier.
        org_id:
          type: string
          format: uuid
          description: Organization ID.
        site_id:
          type: string
          format: uuid
          description: Site ID the device is assigned to.
        name:
          type: string
          description: Device name.
        type:
          type: string
          enum:
            - ap
            - switch
            - gateway
          description: Device type.
        model:
          type: string
          description: Device hardware model (e.g., AP45, EX4100-48P, SRX320).
        serial:
          type: string
          description: Device serial number.
        mac:
          type: string
          description: Device MAC address.
        ip:
          type: string
          description: Device management IP address.
        version:
          type: string
          description: Current firmware version.
        map_id:
          type: string
          format: uuid
          description: Map where the device is placed.
        x:
          type: number
          description: X coordinate on the map in pixels.
        'y':
          type: number
          description: Y coordinate on the map in pixels.
    Wlan:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: WLAN unique identifier.
        ssid:
          type: string
          description: SSID name broadcast by access points.
        enabled:
          type: boolean
          description: Whether the WLAN is enabled.
        auth:
          type: object
          properties:
            type:
              type: string
              enum:
                - open
                - psk
                - eap
                - wep
              description: Authentication type.
            psk:
              type: string
              description: Pre-shared key for PSK authentication.
          description: Authentication configuration.
        band:
          type: string
          enum:
            - '2.4'
            - '5'
            - '6'
            - both
          description: Radio band for the WLAN.
        vlan_enabled:
          type: boolean
          description: Whether VLAN tagging is enabled.
        vlan_id:
          type: integer
          description: VLAN ID for client traffic.
        hide_ssid:
          type: boolean
          description: Whether to hide the SSID from broadcast.
        band_steer:
          type: boolean
          description: Whether band steering is enabled.
        client_limit_down:
          type: integer
          description: Per-client downstream rate limit in kbps.
        client_limit_up:
          type: integer
          description: Per-client upstream rate limit in kbps.
    ClientStat:
      type: object
      properties:
        mac:
          type: string
          description: Client MAC address.
        hostname:
          type: string
          description: Client hostname.
        ip:
          type: string
          description: Client IP address.
        ssid:
          type: string
          description: Connected SSID.
        ap_mac:
          type: string
          description: MAC address of the connected AP.
        rssi:
          type: number
          description: Received signal strength indicator in dBm.
        snr:
          type: number
          description: Signal-to-noise ratio in dB.
        band:
          type: string
          description: Connected radio band.
        channel:
          type: integer
          description: Connected radio channel.
        rx_bytes:
          type: integer
          description: Total received bytes.
        tx_bytes:
          type: integer
          description: Total transmitted bytes.
        rx_rate:
          type: number
          description: Receive data rate in Mbps.
        tx_rate:
          type: number
          description: Transmit data rate in Mbps.
    MarvisAction:
      type: object
      properties:
        type:
          type: string
          description: Action category (e.g., ap_health, client_connectivity, capacity).
        details:
          type: string
          description: Description of the detected issue and recommended action.
        site_id:
          type: string
          format: uuid
          description: Affected site ID.
        device_id:
          type: string
          format: uuid
          description: Affected device ID if applicable.
        severity:
          type: string
          enum:
            - critical
            - warning
            - info
          description: Severity level of the action.
        timestamp:
          type: number
          description: Detection timestamp in epoch seconds.
    InventoryItem:
      type: object
      properties:
        mac:
          type: string
          description: Device MAC address.
        serial:
          type: string
          description: Device serial number.
        model:
          type: string
          description: Device model.
        type:
          type: string
          enum:
            - ap
            - switch
            - gateway
          description: Device type.
        site_id:
          type: string
          format: uuid
          description: Assigned site ID, null if unassigned.
        org_id:
          type: string
          format: uuid
          description: Organization ID.
        claimed_time:
          type: number
          description: Time the device was claimed in epoch seconds.
    Map:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Map unique identifier.
        name:
          type: string
          description: Map or floor plan name.
        type:
          type: string
          enum:
            - image
            - google
          description: Map type.
        width:
          type: number
          description: Map width in meters.
        height:
          type: number
          description: Map height in meters.
        url:
          type: string
          description: URL to the uploaded floor plan image.
 

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