Juniper Mist API

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

Documentation

Specifications

Other Resources

🔗
Swagger
https://api.mist.com/api/v1/docs
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-clients.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-devices.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-insights.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-inventory.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-maps.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-organizations.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-rf-templates.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-self.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-site-groups.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-sites.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-wan-edges.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-wlans.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/juniper/refs/heads/main/capabilities/mist-webhooks.yaml

OpenAPI Specification

juniper-mist-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Juniper Networks Juniper Mist API
  description: >-
    Juniper Mist is a cloud-native, AI-driven networking platform that provides
    APIs for managing wireless, wired, and SD-WAN infrastructure. The Mist API
    enables full lifecycle management of sites, devices, WLANs, clients,
    and analytics through a RESTful interface. It supports organization-level
    and site-level management with token-based and OAuth2 authentication.
  version: 1.0.0
  contact:
    name: Juniper Mist Support
    url: https://www.juniper.net/us/en/products/mist-ai.html
    email: [email protected]
  license:
    name: Proprietary
    url: https://www.juniper.net/us/en/legal-notices.html
  termsOfService: https://www.juniper.net/us/en/legal-notices.html
externalDocs:
  description: Juniper Mist API Documentation
  url: https://doc.mist-lab.fr/
servers:
  - url: https://api.mist.com/api/v1
    description: Global Cloud (US)
  - url: https://api.eu.mist.com/api/v1
    description: EU Cloud
  - url: https://api.gc1.mist.com/api/v1
    description: GovCloud
security:
  - apiToken: []
  - csrfToken: []
tags:
  - name: Clients
    description: Client session and statistics tracking
  - name: Devices
    description: Device provisioning and management
  - name: Insights
    description: AI-driven analytics and insights
  - name: Inventory
    description: Device inventory management
  - name: Maps
    description: Floorplan and map management
  - name: Organizations
    description: Organization-level management
  - name: RF Templates
    description: Radio frequency templates
  - name: Self
    description: Operations for the authenticated user account
  - name: Site Groups
    description: Logical grouping of sites
  - name: Sites
    description: Site-level management
  - name: WAN Edges
    description: SD-WAN edge device management
  - name: Webhooks
    description: Webhook configuration for event notifications
  - name: WLANs
    description: Wireless LAN configuration
paths:
  /self:
    get:
      operationId: getSelf
      summary: Juniper Networks Get current user info
      description: Returns information about the currently authenticated user.
      tags:
        - Self
      responses:
        '200':
          description: Current user information
          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 a list of API tokens for the authenticated user.
      tags:
        - Self
      responses:
        '200':
          description: List of API tokens
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiToken'
    post:
      operationId: createApiToken
      summary: Juniper Networks Create API token
      description: Creates a new API token for the authenticated user.
      tags:
        - Self
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the API token
                privileges:
                  type: array
                  items:
                    $ref: '#/components/schemas/Privilege'
      responses:
        '200':
          description: API token created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiToken'
        '400':
          $ref: '#/components/responses/BadRequest'
  /orgs:
    get:
      operationId: listOrganizations
      summary: Juniper Networks List organizations
      description: Returns a list of organizations accessible to the authenticated user.
      tags:
        - Organizations
      responses:
        '200':
          description: List of organizations
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Organization'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /orgs/{org_id}:
    get:
      operationId: getOrganization
      summary: Juniper Networks Get organization
      description: Returns details for a specific organization.
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/OrgId'
      responses:
        '200':
          description: Organization details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateOrganization
      summary: Juniper Networks Update organization
      description: Updates an existing 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'
  /orgs/{org_id}/stats:
    get:
      operationId: getOrgStats
      summary: Juniper Networks Get organization statistics
      description: Returns statistics for the organization including device counts and client counts.
      tags:
        - Organizations
      parameters:
        - $ref: '#/components/parameters/OrgId'
      responses:
        '200':
          description: Organization statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgStats'
  /orgs/{org_id}/sites:
    get:
      operationId: listOrgSites
      summary: Juniper Networks List sites in organization
      description: Returns a list of all sites belonging to the specified organization.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/OrgId'
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/LimitParam'
      responses:
        '200':
          description: List of sites
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Site'
    post:
      operationId: createSite
      summary: Juniper Networks Create a site
      description: Creates a new site within the specified organization.
      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'
  /orgs/{org_id}/inventory:
    get:
      operationId: getOrgInventory
      summary: Juniper Networks Get organization inventory
      description: Returns the device inventory for the organization.
      tags:
        - Inventory
      parameters:
        - $ref: '#/components/parameters/OrgId'
        - name: type
          in: query
          description: Filter by device type
          schema:
            type: string
            enum:
              - ap
              - switch
              - gateway
        - name: unassigned
          in: query
          description: Filter for unassigned devices only
          schema:
            type: boolean
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/LimitParam'
      responses:
        '200':
          description: Device inventory
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InventoryDevice'
    post:
      operationId: addDevicesToInventory
      summary: Juniper Networks Add devices to inventory
      description: Adds devices to the organization inventory by claim code or serial number.
      tags:
        - Inventory
      parameters:
        - $ref: '#/components/parameters/OrgId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - op
              properties:
                op:
                  type: string
                  enum:
                    - add
                    - assign
                    - unassign
                    - delete
                serials:
                  type: array
                  items:
                    type: string
                site_id:
                  type: string
                  format: uuid
      responses:
        '200':
          description: Inventory operation successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  added:
                    type: array
                    items:
                      type: string
                  duplicated:
                    type: array
                    items:
                      type: string
                  error:
                    type: array
                    items:
                      type: string
  /orgs/{org_id}/sitegroups:
    get:
      operationId: listSiteGroups
      summary: Juniper Networks List site groups
      description: Returns site groups for the organization.
      tags:
        - Site Groups
      parameters:
        - $ref: '#/components/parameters/OrgId'
      responses:
        '200':
          description: List of site groups
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SiteGroup'
    post:
      operationId: createSiteGroup
      summary: Juniper Networks Create a site group
      description: Creates a new site group within the organization.
      tags:
        - Site Groups
      parameters:
        - $ref: '#/components/parameters/OrgId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteGroup'
      responses:
        '200':
          description: Site group created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteGroup'
  /orgs/{org_id}/webhooks:
    get:
      operationId: listOrgWebhooks
      summary: Juniper Networks List organization webhooks
      description: Returns webhooks configured at the organization level.
      tags:
        - Webhooks
      parameters:
        - $ref: '#/components/parameters/OrgId'
      responses:
        '200':
          description: List of webhooks
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
    post:
      operationId: createOrgWebhook
      summary: Juniper Networks Create organization webhook
      description: Creates a new webhook at the organization level.
      tags:
        - Webhooks
      parameters:
        - $ref: '#/components/parameters/OrgId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Webhook'
      responses:
        '200':
          description: Webhook created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
  /sites/{site_id}:
    get:
      operationId: getSite
      summary: Juniper Networks Get site details
      description: Returns details for a specific site.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: Site details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateSite
      summary: Juniper Networks Update site
      description: Updates an existing 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'
    delete:
      operationId: deleteSite
      summary: Juniper Networks Delete site
      description: Deletes a site from the organization.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: Site deleted
        '404':
          $ref: '#/components/responses/NotFound'
  /sites/{site_id}/stats:
    get:
      operationId: getSiteStats
      summary: Juniper Networks Get site statistics
      description: Returns statistics for a specific site.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: Site statistics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteStats'
  /sites/{site_id}/devices:
    get:
      operationId: listSiteDevices
      summary: Juniper Networks List site devices
      description: Returns all devices assigned to the specified site.
      tags:
        - Devices
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - name: type
          in: query
          description: Filter by device type
          schema:
            type: string
            enum:
              - ap
              - switch
              - gateway
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/LimitParam'
      responses:
        '200':
          description: List of devices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Device'
  /sites/{site_id}/devices/{device_id}:
    get:
      operationId: getSiteDevice
      summary: Juniper Networks Get device details
      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 details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
    put:
      operationId: updateSiteDevice
      summary: Juniper Networks Update device
      description: Updates configuration for 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'
    delete:
      operationId: deleteSiteDevice
      summary: Juniper Networks Delete device
      description: Removes a device from the site.
      tags:
        - Devices
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - $ref: '#/components/parameters/DeviceId'
      responses:
        '200':
          description: Device deleted
  /sites/{site_id}/devices/stats:
    get:
      operationId: listSiteDeviceStats
      summary: Juniper Networks List site device statistics
      description: Returns statistics for all devices at a site.
      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: Device statistics
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeviceStats'
  /sites/{site_id}/wlans:
    get:
      operationId: listSiteWlans
      summary: Juniper Networks List WLANs
      description: Returns all WLANs configured at the specified site.
      tags:
        - WLANs
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: List of WLANs
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Wlan'
    post:
      operationId: createSiteWlan
      summary: Juniper Networks Create WLAN
      description: Creates a new WLAN at the specified site.
      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'
  /sites/{site_id}/wlans/{wlan_id}:
    get:
      operationId: getSiteWlan
      summary: Juniper Networks Get WLAN details
      description: Returns details for a specific WLAN.
      tags:
        - WLANs
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - $ref: '#/components/parameters/WlanId'
      responses:
        '200':
          description: WLAN details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wlan'
    put:
      operationId: updateSiteWlan
      summary: Juniper Networks Update WLAN
      description: Updates an existing WLAN configuration.
      tags:
        - WLANs
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - $ref: '#/components/parameters/WlanId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Wlan'
      responses:
        '200':
          description: WLAN updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wlan'
    delete:
      operationId: deleteSiteWlan
      summary: Juniper Networks Delete WLAN
      description: Deletes a WLAN from the site.
      tags:
        - WLANs
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - $ref: '#/components/parameters/WlanId'
      responses:
        '200':
          description: WLAN deleted
  /sites/{site_id}/stats/clients:
    get:
      operationId: listSiteClientStats
      summary: Juniper Networks List client statistics
      description: Returns wireless client statistics for the site.
      tags:
        - Clients
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/LimitParam'
      responses:
        '200':
          description: Client statistics
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientStats'
  /sites/{site_id}/insights/stats:
    get:
      operationId: getSiteInsights
      summary: Juniper Networks Get site AI insights
      description: >-
        Returns AI-driven insights and analytics for the site, including
        anomaly detection, Service Level Expectations (SLE), and recommendations.
      tags:
        - Insights
      parameters:
        - $ref: '#/components/parameters/SiteId'
        - name: metric
          in: query
          description: Specific insight metric to retrieve
          schema:
            type: string
            enum:
              - time-to-connect
              - throughput
              - coverage
              - capacity
              - roaming
      responses:
        '200':
          description: Site insights
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteInsights'
  /sites/{site_id}/maps:
    get:
      operationId: listSiteMaps
      summary: Juniper Networks List site maps
      description: Returns all maps (floorplans) configured for the site.
      tags:
        - Maps
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: List of maps
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Map'
    post:
      operationId: createSiteMap
      summary: Juniper Networks Create site map
      description: Creates a new map (floorplan) for the site.
      tags:
        - Maps
      parameters:
        - $ref: '#/components/parameters/SiteId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Map'
      responses:
        '200':
          description: Map created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Map'
  /sites/{site_id}/rftemplates:
    get:
      operationId: listSiteRfTemplates
      summary: Juniper Networks List RF templates
      description: Returns RF templates available at the site.
      tags:
        - RF Templates
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: List of RF templates
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RfTemplate'
  /orgs/{org_id}/wanedges:
    get:
      operationId: listOrgWanEdges
      summary: Juniper Networks List WAN edge devices
      description: Returns SD-WAN edge devices for the organization.
      tags:
        - WAN Edges
      parameters:
        - $ref: '#/components/parameters/OrgId'
      responses:
        '200':
          description: List of WAN edge devices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WanEdge'
components:
  securitySchemes:
    apiToken:
      type: http
      scheme: bearer
      description: >-
        API token authentication. Obtain tokens from the Mist dashboard
        under Organization > Settings > API Token, or via the /self/apitokens
        endpoint. Pass as Authorization: Token <api-token>.
    csrfToken:
      type: apiKey
      in: header
      name: X-CSRFToken
      description: CSRF token for session-based 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
    WlanId:
      name: wlan_id
      in: path
      required: true
      description: WLAN unique identifier
      schema:
        type: string
        format: uuid
    PageParam:
      name: page
      in: query
      description: Page number for pagination
      schema:
        type: integer
        default: 1
    LimitParam:
      name: limit
      in: query
      description: Number of results per page
      schema:
        type: integer
        default: 100
        maximum: 1000
  responses:
    BadRequest:
      description: Bad request - invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - invalid or missing authentication
      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: Error message
    Admin:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        email:
          type: string
          format: email
        first_name:
          type: string
        last_name:
          type: string
        phone:
          type: string
        privileges:
          type: array
          items:
            $ref: '#/components/schemas/Privilege'
        tags:
          type: array
          items:
            type: string
        created_time:
          type: number
          description: Unix timestamp
        modified_time:
          type: number
          description: Unix timestamp
    ApiToken:
      type: object
      properties:
        id:
          type: string
          format: uuid
        key:
          type: string
          description: The API token value (only returned on creation)
        name:
          type: string
        privileges:
          type: array
          items:
            $ref: '#/components/schemas/Privilege'
        created_time:
          type: number
    Privilege:
      type: object
      properties:
        scope:
          type: string
          enum:
            - org
            - site
            - sitegroup
        role:
          type: string
          enum:
            - admin
            - write
            - read
            - helpdesk
        org_id:
          type: string
          format: uuid
        site_id:
          type: string
          format: uuid
        sitegroup_id:
          type: string
          format: uuid
    Organization:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        orggroup_ids:
          type: array
          items:
            type: string
            format: uuid
        session_expiry:
          type: integer
          description: Session expiry in minutes
        alarmtemplate_id:
          type: string
          format: uuid
        created_time:
          type: number
        modified_time:
          type: number
    OrgStats:
      type: object
      properties:
        num_sites:
          type: integer
        num_devices:
          type: integer
        num_devices_connected:
          type: integer
        num_devices_disconnected:
          type: integer
        num_clients:
          type: integer
    Site:
      type: object
      properties:
        id:
          type: string
          format: uuid
        org_id:
          type: string
          format: uuid
        name:
          type: string
        address:
          type: string
        timezone:
          type: string
          description: Timezone name (e.g., America/Los_Angeles)
        country_code:
          type: string
        latlng:
          type: object
          properties:
            lat:
              type: number
            lng:
              type: number
        sitegroup_ids:
          type: array
          items:
            type: string
            format: uuid
        rftemplate_id:
          type: string
          format: uuid
        created_time:
          type: number
        modified_time:
          type: number
    SiteStats:
      type: object
      properties:
        num_ap:
          type: integer
        num_ap_connected:
          type: integer
        num_switch:
          type: integer
        num_gateway:
          type: integer
        num_clients:
          type: integer
    SiteGroup:
      type: object
      properties:
        id:
          type: string
          format: uuid
        org_id:
          type: string
          format: uuid
        name:
          type: string
        site_ids:
          type: array
          items:
            type: string
            format: uuid
        created_time:
          type: number
        modified_time:
          type: number
    Device:
      type: object
      properties:
        id:
          type: string
          format: uuid
        org_id:
          type: string
          format: uuid
        site_id:
          type: string
          format: uuid
        name:
          type: string
        type:
          type: string
          enum:
            - ap
            - switch
            - gateway
        model:
          type: string
        serial:
          type: string
        mac:
          type: string
          description: MAC address of the device
        ip:
          type: string
          description: IP address of the device
        map_id:
          type: string
          format: uuid
        x:
          type: number
          description: X position on the map
        y:
          type: number
          description: Y position on the map
        height:
          type: number
          description: Height of the device placement
        notes:
          type: string
        created_time:
          type: number
        modified_time:
          type: number
    DeviceStats:
      type: object
      properties:
        id:
          type: string
          format: uuid
        mac:
          type: string
        model:
          type: string
        status:
          type: string
          enum:
            - connected
            - disconnected
            - upgrading
            - restarting
        uptime:
          type: integer
          description: Device uptime in seconds
        last_seen:
          type: number
        num_clients:
          type: integer
        tx_bytes:
          type: integer
        rx_bytes:
          type: integer
        tx_pkts:
          type: integer
        rx_pkts:
          type: integer
    InventoryDevice:
      type: object
      properties:
        mac:
          type: string
        serial:
          type: string
        model:
          type: string
        type:
          type: string
          enum:
            - ap
            - switch
            - gateway
        org_id:
          type: string
          format: uuid
        site_id:
          type: string
          format: uuid
        name:
          type: string
        connected:
          type: boolean
        created_time:
          type: number
        modified_time:
          type: number
    Wlan:
      type: object
      properties:
        id:
          type: string
          format: uuid
        org_id:
          type: string
          format: uuid
        site_id:
          type: string
          format: uuid
        ssid:
          type: string
          description: SSID name
        enabled:
          type: boolean
        hide_ssid:
          type: boolean
          description: Whether to hide the SSID from beacon frames
        band:
          type: string
          enum:
            - '24'
            - '5'
      

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