Mist Sites Devices API

Mist provides many ways (device_type specific template, site template, device profile, per-device) to configure devices for different kind of scenarios. The precedence goes from most specific to least specific Device > Device Profile > RFTemplate (for AP only) > DeviceType-specific Template > Site Template > Site Setting

OpenAPI Specification

mist-sites-devices-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: '> Version: **2606.1.1**

    >

    > Date: **July 10, 2026**

    <div class="notification"> NOTE:<br>Some important API changes will be introduced. Please make sure to read the <a href="https://www.juniper.net/documentation/us/en/software/mist/api/http/guides/important-api-changes">announcements</a> </div>


    ---

    ## Additional Documentation

    * [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)

    * [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)

    * [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)


    ## Helpful Resources

    * [API Sandbox and Exercises](https://api-class.mist.com/)

    * [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)

    * [Python Script Examples](https://github.com/tmunzer/mist_library)

    * [API Demo Apps](https://apps.mist-lab.fr/)

    * [Juniper Blog](https://blogs.juniper.net/)


    ## Mist Web Browser Extension:

    * Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)

    * Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)


    ---'
  license:
    name: MIT
    url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
  title: Mist Admins Sites Devices API
  version: 2606.1.1
  x-logo:
    altText: Juniper-MistAI
    backgroundColor: '#FFFFFF'
    url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
  url: https://api.mist.com
- description: Mist Global 02
  url: https://api.gc1.mist.com
- description: Mist Global 03
  url: https://api.ac2.mist.com
- description: Mist Global 04
  url: https://api.gc2.mist.com
- description: Mist Global 05
  url: https://api.gc4.mist.com
- description: Mist EMEA 01
  url: https://api.eu.mist.com
- description: Mist EMEA 02
  url: https://api.gc3.mist.com
- description: Mist EMEA 03
  url: https://api.ac6.mist.com
- description: Mist EMEA 04
  url: https://api.gc6.mist.com
- description: Mist APAC 01
  url: https://api.ac5.mist.com
- description: Mist APAC 02
  url: https://api.gc5.mist.com
- description: Mist APAC 03
  url: https://api.gc7.mist.com
security:
- apiToken: []
- csrfToken: []
tags:
- description: 'Mist provides many ways (device_type specific template, site template, device profile, per-device) to configure devices for different kind of scenarios.


    The precedence goes from most specific to least specific


    Device > Device Profile > RFTemplate (for AP only) > DeviceType-specific Template > Site Template > Site Setting'
  name: Sites Devices
paths:
  /api/v1/sites/{site_id}/devices:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: List devices in a site. Use [List Org Devices](/#operations/listOrgDevices) to retrieve devices across the organization, or [Search Org Devices](/#operations/searchOrgDevices) when filters are needed.
      operationId: listSiteDevices
      parameters:
      - description: Filter results by type
        in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_with_all'
      - $ref: '#/components/parameters/name'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/DevicesArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: listSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/config_history/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Counts the number of entries in device config history for distinct field with given filters
      operationId: countSiteDeviceConfigHistory
      parameters:
      - description: Field used to group this count response
        in: query
        name: distinct
        schema:
          type: string
      - description: Filter results by MAC address
        in: query
        name: mac
        schema:
          type: string
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteDeviceConfigHistory
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/config_history/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Search for entries in device config history
      operationId: searchSiteDeviceConfigHistory
      parameters:
      - description: 'Filter results by type. enum: `ap`, `gateway`, `switch`'
        in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_default_ap'
      - description: Filter results by MAC address
        in: query
        name: mac
        schema:
          type: string
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/ConfigsHistorySearch'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteDeviceConfigHistory
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Count devices for a site, optionally grouped by the `distinct` field and filtered by device inventory attributes and time range. Use [Count Org Devices](/#operations/countOrgDevices) to count devices across the organization.
      operationId: countSiteDevices
      parameters:
      - description: 'Field used to group this count response. enum: `hostname`, `lldp_mgmt_addr`, `lldp_port_id`, `lldp_system_desc`, `lldp_system_name`, `map_id`, `model`, `mxedge_id`, `mxtunnel_status`, `version`'
        in: query
        name: distinct
        schema:
          $ref: '#/components/schemas/site_devices_count_distinct'
      - description: Filter results by hostname
        in: query
        name: hostname
        schema:
          type: string
      - description: Filter results by device model
        in: query
        name: model
        schema:
          type: string
      - description: Filter results by MAC address
        in: query
        name: mac
        schema:
          type: string
      - description: Filter results by software version
        in: query
        name: version
        schema:
          type: string
      - description: Filter AP results by Mist Tunnel status
        in: query
        name: mxtunnel_status
        schema:
          type: string
      - description: Filter results by Mist Edge identifier
        in: query
        name: mxedge_id
        schema:
          type: string
      - description: Filter AP results by LLDP system name
        in: query
        name: lldp_system_name
        schema:
          type: string
      - description: Filter AP results by LLDP system description
        in: query
        name: lldp_system_desc
        schema:
          type: string
      - description: Filter AP results by LLDP port identifier
        in: query
        name: lldp_port_id
        schema:
          type: string
      - description: Filter AP results by LLDP management IP address
        in: query
        name: lldp_mgmt_addr
        schema:
          type: string
      - description: Filter results by map identifier
        in: query
        name: map_id
        schema:
          type: string
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/events/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Count device events for a site, optionally grouped by the `distinct` field and filtered by event attributes and time range. Use [Count Org Device Events](/#operations/countOrgDeviceEvents) to count device events across the organization.
      operationId: countSiteDeviceEvents
      parameters:
      - description: 'Field used to group this count response. enum: `mac`, `model`, `type`, `type_code`'
        in: query
        name: distinct
        schema:
          $ref: '#/components/schemas/site_device_events_count_distinct'
      - description: Filter results by device model
        in: query
        name: model
        schema:
          type: string
      - $ref: '#/components/parameters/device_event_type'
      - description: Filter results by event type code
        in: query
        name: type_code
        schema:
          type: string
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteDeviceEvents
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/events/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Search device events for a site with filters for MAC address, model, event type, message text, and time range. Use [Search Org Device Events](/#operations/searchOrgDeviceEvents) to search device events across the organization.
      operationId: searchSiteDeviceEvents
      parameters:
      - description: Filter results by MAC address
        in: query
        name: mac
        schema:
          type: string
      - description: Filter results by device model
        in: query
        name: model
        schema:
          type: string
      - description: Filter results by event message text
        in: query
        name: text
        schema:
          examples:
          - Device connected
          type: string
      - $ref: '#/components/parameters/device_event_type'
      - description: Return last/recent event for passed in field
        example: port_id
        in: query
        name: last_by
        schema:
          type: string
      - description: Keyword to include events from additional indices (e.g. ext_tunnel for prisma events)
        in: query
        name: includes
        schema:
          examples:
          - ext_tunnel
          type: string
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/EventsDevices'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteDeviceEvents
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/export:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: To download the exported device information
      operationId: exportSiteDevices
      responses:
        '200':
          $ref: '#/components/responses/File'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: exportSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/gbp_tag:
    parameters:
    - $ref: '#/components/parameters/site_id'
    post:
      description: Set GBP Tag for multiple devices
      operationId: setSiteDevicesGbpTag
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/devices_gbp_tag'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: setSiteDevicesGbpTag
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/import:
    parameters:
    - $ref: '#/components/parameters/site_id'
    post:
      description: 'Import Information for Multiple Devices


        CSV format:

        ```csv

        mac,name,map_id,x,y,height,orientation,labels,band_24.power,band_24.bandwidth,band_24.channel,band_24.disabled,band_5.power,band_5.bandwidth,band_5.channel,band_5.disabled,band_6.power,band_6.bandwidth,band_6.channel,band_6.disabled

        5c5b53010101,"AP 1",845a23bf-bed9-e43c-4c86-6fa474be7ae5,30,10,2.3,45,"guest, campus, vip",1,20,0,false,0,40,0,false,17,80,0,false

        ```'
      operationId: importSiteDevices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ap_import_json'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/binary_stream'
      responses:
        '200':
          $ref: '#/components/responses/DevicesArray'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: importSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/last_config/count:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Counts the number of entries in device config history for distinct field with given filters
      operationId: countSiteDeviceLastConfig
      parameters:
      - description: 'Field used to group this count response. enum: `mac`, `name`, `site_id`, `version`'
        in: query
        name: distinct
        schema:
          $ref: '#/components/schemas/site_device_last_config_count_distinct'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/Count'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: countSiteDeviceLastConfig
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/last_config/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Search last known device configuration records for a site with filters for device type, MAC address, name, software version, certificate expiry, and time range. Use [Search Org Device Last Configs](/#operations/searchOrgDeviceLastConfigs) to search last known device configuration records across the organization.
      operationId: searchSiteDeviceLastConfigs
      parameters:
      - description: 'Duration for expiring cert queries (format: 2d/3h/172800 seconds)'
        in: query
        name: cert_expiry_duration
        schema:
          examples:
          - 2d
          type: string
      - description: 'Filter results by device type. enum: `ap`, `gateway`, `switch`, `mxedge`'
        in: query
        name: device_type
        schema:
          $ref: '#/components/schemas/last_config_device_type'
      - description: Filter results by MAC address
        in: query
        name: mac
        schema:
          type: string
      - description: Filter results by software version
        in: query
        name: version
        schema:
          type: string
      - description: Filter results by name
        in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/ConfigsHistorySearch'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteDeviceLastConfigs
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/search:
    parameters:
    - $ref: '#/components/parameters/site_id'
    get:
      description: Search devices in a site with filters for device type, identifiers, model, software version, radio settings, LLDP details, and other inventory attributes. Use [Search Org Devices](/#operations/searchOrgDevices) to search devices across the organization.
      operationId: searchSiteDevices
      parameters:
      - description: When `type`==`ap`, Channel of band_24
        in: query
        name: band_24_channel
        schema:
          type: integer
      - description: When `type`==`ap`, Channel of band_5
        in: query
        name: band_5_channel
        schema:
          type: integer
      - description: When `type`==`ap`, Channel of band_6
        in: query
        name: band_6_channel
        schema:
          type: integer
      - description: When `type`==`ap`, Bandwidth of band_24
        in: query
        name: band_24_bandwidth
        schema:
          type: integer
      - description: When `type`==`ap`, Bandwidth of band_5
        in: query
        name: band_5_bandwidth
        schema:
          type: integer
      - description: When `type`==`ap`, Bandwidth of band_6
        in: query
        name: band_6_bandwidth
        schema:
          type: integer
      - description: When `type`==`ap`, Power of band_24
        in: query
        name: band_24_power
        schema:
          type: integer
      - description: When `type`==`ap`, Power of band_5
        in: query
        name: band_5_power
        schema:
          type: integer
      - description: When `type`==`ap`, Power of band_6
        in: query
        name: band_6_power
        schema:
          type: integer
      - description: When `type`==`gateway`, true / false
        in: query
        name: clustered
        schema:
          type: boolean
      - description: When `type`==`ap`, Port speed of eth0
        in: query
        name: eth0_port_speed
        schema:
          examples:
          - 100
          - 1000
          type: integer
      - description: When `type`==`switch`, EVPN topology id
        in: query
        name: evpntopo_id
        schema:
          format: uuid
          type: string
      - $ref: '#/components/parameters/partial_filter_ext_ip'
      - $ref: '#/components/parameters/partial_filter_hostname_device'
      - $ref: '#/components/parameters/partial_filter_ip_device'
      - description: When `type`==`switch` or `type`==`gateway`, last configuration status
        in: query
        name: last_config_status
        schema:
          examples:
          - success
          type: string
      - description: Last hostname of the device.
        in: query
        name: last_hostname
        schema:
          type: string
      - description: When `type`==`ap`, LLDP management IP address
        in: query
        name: lldp_mgmt_addr
        schema:
          type: string
      - $ref: '#/components/parameters/partial_filter_lldp_port_id'
      - $ref: '#/components/parameters/partial_filter_lldp_system_desc'
      - $ref: '#/components/parameters/partial_filter_lldp_system_name'
      - $ref: '#/components/parameters/partial_filter_mac_device'
      - $ref: '#/components/parameters/partial_filter_model'
      - description: When `type`==`ap`, Mist Edge id, if AP is connecting to a Mist Edge
        in: query
        name: mxedge_id
        schema:
          format: uuid
          type: string
      - description: When `type`==`ap`, Comma separated list of Mist Edge id, if AP is connecting to a Mist Edge
        in: query
        name: mxedge_ids
        schema:
          type: string
      - description: 'When `type`==`ap`, Mist Tunnel status used to filter results. enum: `down`, `up`'
        in: query
        name: mxtunnel_status
        schema:
          $ref: '#/components/schemas/search_site_devices_mxtunnel_status'
      - description: 'When `type`==`gateway`. enum: `node0`, `node1`'
        in: query
        name: node
        schema:
          $ref: '#/components/schemas/ha_cluster_node_enum'
      - description: When `type`==`gateway`, node0 MAC address
        in: query
        name: node0_mac
        schema:
          type: string
      - description: When `type`==`gateway`, node1 MAC address
        in: query
        name: node1_mac
        schema:
          type: string
      - description: When `type`==`ap`, whether the AP is power constrained
        in: query
        name: power_constrained
        schema:
          type: boolean
      - description: "When `type`==`switch` or `type`==`gateway`, Key-value pairs where the key\nis the RADIUS server address and the value contains authentication statistics:\n  * <server_address> (string): IP address of the RADIUS server as the key\n  * `auth_accepts` (long): Number of accepted authentication requests\n  * `auth_rejects` (long): Number of rejected authentication requests\n  * `auth_timeouts` (long): Number of authentication timeouts\n  * `auth_server_status` (string): Status of the server. Possible values: `up`, `down`, `unreachable`"
        in: query
        name: radius_stats
        schema:
          type: string
      - description: Whether to return device stats
        in: query
        name: stats
        schema:
          default: false
          type: boolean
      - description: When `type`==`gateway` (SSR only), version of 128T agent
        in: query
        name: t128agent_version
        schema:
          type: string
      - $ref: '#/components/parameters/device_type'
      - description: Filter results by software version
        in: query
        name: version
        schema:
          type: string
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/duration'
      - description: 'Field used to sort results; a leading `-` indicates descending order. enum: `mac`, `model`, `sku`, `timestamp`'
        in: query
        name: sort
        schema:
          $ref: '#/components/schemas/search_site_devices_sort'
      - description: 'Field used to sort results in descending order. enum: `mac`, `model`, `sku`, `timestamp`'
        in: query
        name: desc_sort
        schema:
          $ref: '#/components/schemas/search_site_devices_desc_sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/DevicesSearch'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: searchSiteDevices
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/{device_id}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/device_id'
    get:
      description: Get Device Configuration
      operationId: getSiteDevice
      responses:
        '200':
          $ref: '#/components/responses/Device'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: getSiteDevice
      tags:
      - Sites Devices
    put:
      description: Update Device Configuration
      operationId: updateSiteDevice
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mist_device'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Device'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: updateSiteDevice
      tags:
      - Sites Devices
  /api/v1/sites/{site_id}/devices/{device_id}/image/{image_number}:
    parameters:
    - $ref: '#/components/parameters/site_id'
    - $ref: '#/components/parameters/device_id'
    - in: path
      name: image_number
      required: true
      schema:
        type: integer
    delete:
      description: Delete image from a device
      operationId: deleteSiteDeviceImage
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: deleteSiteDeviceImage
      tags:
      - Sites Devices
    post:
      description: Attach up to 3 images to a device
      operationId: addSiteDeviceImage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/image_import'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/HTTP400'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: addSiteDeviceImage
      tags:
      - Sites Devices
components:
  schemas:
    acl_tag_spec:
      additionalProperties: false
      description: Layer 4 protocol and destination-port match constraint for an ACL tag
      properties:
        port_range:
          default: '0'
          description: Matched dst port, "0" means any
          type: string
        protocol:
          default: any
          description: '`tcp` / `udp` / `icmp` / `icmp6` / `gre` / `any` / `:protocol_number`, `protocol_number` is between 1-254, default is `any` `protocol_number` is between 1-254'
          type: string
      type: object
    routing_policy_term_action_prepend_as_path:
      description: When used as export policy, optional. By default, the local AS will be prepended, to change it. Can be a Variable (e.g. `{{as_path}}`)
      items:
        examples:
        - 65000 400
        type: string
      type: array
    switch_port_local_usage_duplex:
      default: auto
      description: 'link connection mode. enum: `auto`, `full`, `half`'
      enum:
      - auto
      - full
      - half
      type: string
    response_config_history_search_results:
      description: Device config history entries returned by a search response
      items:
        $ref: '#/components/schemas/response_config_history_search_item'
      type: array
      uniqueItems: true
    ap_usb_type:
      description: 'usb config type. enum: `hanshow`, `imagotag`, `solum`'
      enum:
      - hanshow
      - imagotag
      - solum
      examples:
      - imagotag
      type: string
    switch_virtual_chassis_member_vc_role:
      description: 'Both vc_role master and backup will be matched to routing-engine role in Junos preprovisioned VC config. enum: `backup`, `linecard`, `master`'
      enum:
      - backup
      - linecard
      - master
      type: string
    timestamp:
      description: Epoch timestamp, in seconds
      format: double
      readOnly: true
      type: number
    switch_networks:
      additionalProperties:
        $ref: '#/components/schemas/switch_network'
      description: Property key is network name
      type: object
    id:
      description: Unique ID of the object instance in the Mist Organization
      examples:
      - 53f10664-3ce8-4c27-b382-0ef66432349f
      format: uuid
      readOnly: true
      type: string
    vrf_extra_routes6:
      additionalProperties:
        $ref: '#/components/schemas/vrf_extra_route6'
      description: Property key is the destination CIDR (e.g. "2a02:1234:420a:10c9::/64")
      examples:
      - 2a02:1234:420a:10c9::/64:
          via: 2a02:1234:200a::100
      type: object
    service_policy_skyatp_http_inspection:
      additionalProperties: false
      description: Sky ATP HTTP inspection settings
      properties:
        enabled:
          description: Whether Sky ATP HTTP inspection is enabled
          type: boolean
        profile:
          $ref: '#/components/schemas/service_policy_skyatp_http_inspection_profile'
          description: Sky ATP HTTP inspection profile to apply
      type: object
    dhcpd_config_type:
      default: local
      description: 'enum: `local` (DHCP Server), `none`, `relay` (DHCP Relay)'
      enum:
      - local
      - none
      

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