Juniper Mist AI Orgs Inventory API

The Org Inventory allows administrators to view and manage all devices registered (claimed) to the Organization.

OpenAPI Specification

mist-ai-orgs-inventory-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: tmunzer@juniper.net
    name: Thomas Munzer
  description: '> Version: **2604.1.1**

    >

    > Date: **May 13, 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 Orgs Inventory API
  version: 2604.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: []
- basicAuth: []
- basicAuth: []
  csrfToken: []
tags:
- description: The Org Inventory allows administrators to view and manage all devices registered (claimed) to the Organization.
  name: Orgs Inventory
paths:
  /api/v1/orgs/{org_id}/inventory:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: "Get Org Inventory\n\n### VC (Virtual-Chassis) Management \n\nStarting with the April release, Virtual Chassis devices in Mist will now use\na cloud-assigned virtual MAC address as the device ID, instead of the physical\nMAC address of the FPC0 member.\n\n\n**Retrieving the device ID or Site ID of a Virtual Chassis:**\n\n1. Use this API call with the query parameters `vc=true` and `mac` set to the MAC address of the VC member.\n\n2. In the response, check the `vc_mac` and `mac` fields:\n\n    - If `vc_mac` is empty or not present, the device is not part of a Virtual Chassis.\n    The `device_id` and `site_id` will be available in the device information.\n\n    - If `vc_mac` differs from the `mac` field, the device is part of a Virtual Chassis\n    but is not the device used to generate the Virtual Chassis ID. Use the `vc_mac` value with the [Get Org Inventory](/#operations/getOrgInventory)\n    API call to retrieve the `device_id` and `site_id`.\n\n    - If `vc_mac` matches the `mac` field, the device is the device used to generate the Virtual Chassis ID and he `device_id` and `site_id` will be available\n    in the device information.  \n    This is the case if the device is the Virtual Chassis \"virtual device\" (MAC starting with `020003`) or if the device is the Virtual Chassis FPC0 and the Virtual Chassis is still using the FPC0 MAC address to generate the device ID.\n"
      operationId: getOrgInventory
      parameters:
      - description: Device serial
        in: query
        name: serial
        schema:
          examples:
          - FXLH2015150025
          type: string
      - description: Device model
        in: query
        name: model
        schema:
          examples:
          - AP43
          type: string
      - in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type'
      - description: MAC address
        in: query
        name: mac
        schema:
          examples:
          - 5c5b350e0001
          type: string
      - description: Site id if assigned, null if not assigned
        in: query
        name: site_id
        schema:
          examples:
          - 4ac1dcf4-9d8b-7211-65c4-057819f0862b
          format: uuid
          type: string
      - description: Virtual Chassis MAC Address
        in: query
        name: vc_mac
        schema:
          examples:
          - 5c5b350e0001
          type: string
      - description: To display Virtual Chassis members
        in: query
        name: vc
        schema:
          default: false
          examples:
          - false
          type: boolean
      - description: To display Unassigned devices
        in: query
        name: unassigned
        schema:
          default: true
          examples:
          - true
          type: boolean
      - description: Filter on inventory last modified time, in epoch
        in: query
        name: modified_after
        schema:
          examples:
          - 1703003296
          type: integer
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          $ref: '#/components/responses/OrgInventory'
        '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: getOrgInventory
      tags:
      - Orgs Inventory
    post:
      description: Add Device to Org Inventory with the device claim codes
      operationId: addOrgInventory
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                - 6JG8E-PTFV2-A9Z2N
                - DVH4V-SNMSZ-PDXBR
            schema:
              $ref: '#/components/schemas/claim_codes'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OrgInventoryAdd'
        '400':
          $ref: '#/components/responses/OrgInventoryAdd'
        '401':
          $ref: '#/components/responses/HTTP401'
        '403':
          $ref: '#/components/responses/HTTP403'
        '404':
          $ref: '#/components/responses/HTTP404'
        '429':
          $ref: '#/components/responses/HTTP429'
      summary: addOrgInventory
      tags:
      - Orgs Inventory
    put:
      description: Update Org Inventory
      operationId: updateOrgInventoryAssignment
      requestBody:
        content:
          application/json:
            examples:
              assign:
                value:
                  disable_auto_config: false
                  macs:
                  - 5c5b350e0001
                  no_reassign: false
                  op: assign
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
              delete:
                value:
                  macs:
                  - 5c5b350e0001
                  op: delete
                  serials:
                  - FXLH2015150025
                  - FXLH2015150026
            schema:
              $ref: '#/components/schemas/inventory_update'
      responses:
        '200':
          $ref: '#/components/responses/OrgInventoryChanges'
        '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: updateOrgInventoryAssignment
      tags:
      - Orgs Inventory
  /api/v1/orgs/{org_id}/inventory/count:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Count by Distinct Attributes of in the Org Inventory
      operationId: countOrgInventory
      parameters:
      - in: query
        name: distinct
        schema:
          $ref: '#/components/schemas/inventory_count_distinct'
      - in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_default_ap'
      - description: Site ID
        in: query
        name: site_id
        schema:
          type: string
      - description: Device model
        in: query
        name: model
        schema:
          type: string
      - description: Software version
        in: query
        name: version
        schema:
          type: string
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/device_status_filter'
      - $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: countOrgInventory
      tags:
      - Orgs Inventory
  /api/v1/orgs/{org_id}/inventory/create_ha_cluster:
    parameters:
    - $ref: '#/components/parameters/org_id'
    post:
      description: Create HA Cluster from unassigned Gateways
      operationId: createOrgGatewayHaCluster
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  disable_auto_config: true
                  mist_configured: true
                  nodes:
                  - mac: aff827549235
                  - mac: 8396cd006c8c
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
            schema:
              $ref: '#/components/schemas/ha_cluster_config'
      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: createOrgGatewayHaCluster
      tags:
      - Orgs Inventory
  /api/v1/orgs/{org_id}/inventory/delete_ha_cluster:
    parameters:
    - $ref: '#/components/parameters/org_id'
    post:
      description: 'Delete HA Cluster


        After HA cluster deleted, both of the nodes will be unassigned.'
      operationId: deleteOrgGatewayHaCluster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ha_cluster_delete'
      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: deleteOrgGatewayHaCluster
      tags:
      - Orgs Inventory
  /api/v1/orgs/{org_id}/inventory/reevaluate_auto_assignment:
    parameters:
    - $ref: '#/components/parameters/org_id'
    post:
      description: Reevaluate Auto Assignment
      operationId: reevaluateOrgAutoAssignment
      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: reevaluateOrgAutoAssignment
      tags:
      - Orgs Inventory
  /api/v1/orgs/{org_id}/inventory/replace:
    parameters:
    - $ref: '#/components/parameters/org_id'
    post:
      description: 'It’s a common request we get from the customers. When a AP HW has problem and need a replacement, they would want to copy the existing attributes (Device Config) of this old AP to the new one. It can be done by providing the MAC of a device that’s currently in the inventory but not assigned. The Device replaced will become unassigned.


        This API also supports replacement of Mist Edges. This API copies device agnostic attributes from old Mist edge to new one.

        Mist manufactured Mist Edges will be reset to factory settings but will still be in Inventory.Brownfield or VM’s will be

        deleted from Inventory


        **Note:** For Gateway devices only like-for-like replacements (can only replace a SRX320 with a SRX320 and not some other model) are allowed.'
      operationId: replaceOrgDevices
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  discard: []
                  inventory_mac: 5c5b35000301
                  mac: 5c5b35000101
                  site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
            schema:
              $ref: '#/components/schemas/replace_device'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/OrgInventoryChanges'
        '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: replaceOrgDevices
      tags:
      - Orgs Inventory
  /api/v1/orgs/{org_id}/inventory/search:
    parameters:
    - $ref: '#/components/parameters/org_id'
    get:
      description: Search in the Org Inventory
      operationId: searchOrgInventory
      parameters:
      - in: query
        name: type
        schema:
          $ref: '#/components/schemas/device_type_default_ap'
      - $ref: '#/components/parameters/partial_filter_mac'
      - $ref: '#/components/parameters/partial_filter_model'
      - $ref: '#/components/parameters/partial_filter_name'
      - description: Site id if assigned, null if not assigned
        in: query
        name: site_id
        schema:
          examples:
          - 4ac1dcf4-9d8b-7211-65c4-057819f0862b
          format: uuid
          type: string
      - $ref: '#/components/parameters/partial_filter_serial'
      - description: true / false
        in: query
        name: master
        schema:
          examples:
          - 'true'
          type: string
      - $ref: '#/components/parameters/partial_filter_sku'
      - $ref: '#/components/parameters/partial_filter_version'
      - description: 'Device status. enum: `connected`, `disconnected`'
        in: query
        name: status
        schema:
          $ref: '#/components/schemas/device_status_filter'
      - description: Wildcards for name, mac, serial
        in: query
        name: text
        schema:
          type: string
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/search_after'
      responses:
        '200':
          $ref: '#/components/responses/OrgInventorySearch'
        '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: searchOrgInventory
      tags:
      - Orgs Inventory
components:
  schemas:
    tunterm_port_config_upstream_ports:
      description: List of ports to be used for upstream purpose (to LAN)
      examples:
      - - '0'
        - '1'
      items:
        type: string
      type: array
    claim_codes:
      description: List of Claim Codes
      examples:
      - - 6JG8E-PTFV2-A9Z2N
        - DVH4V-SNMSZ-PDXBR
      items:
        description: Claim code
        type: string
      type: array
      uniqueItems: true
    strings:
      items:
        type: string
      type: array
      uniqueItems: true
    inventory_search_result:
      additionalProperties: false
      properties:
        mac:
          examples:
          - f01c2df166e0
          type: string
        master:
          examples:
          - true
          type: boolean
        members:
          $ref: '#/components/schemas/inventory_search_result_members'
        model:
          examples:
          - EX4300-48P
          type: string
        name:
          examples:
          - mist-wa-ex4300-VC
          type: string
        org_id:
          $ref: '#/components/schemas/org_id'
        serial:
          examples:
          - PD3714460200
          type: string
        site_id:
          $ref: '#/components/schemas/site_id'
        sku:
          examples:
          - EX4300-48P
          type: string
        status:
          examples:
          - disconnected
          type: string
        type:
          $ref: '#/components/schemas/device_type_default_ap'
        vc_mac:
          examples:
          - f01c2df166e0
          type: string
        version:
          examples:
          - 21.4R3.5
          type: string
      type: object
    response_inventory:
      additionalProperties: false
      properties:
        added:
          $ref: '#/components/schemas/response_inventory_added'
        duplicated:
          $ref: '#/components/schemas/response_inventory_duplicated'
        error:
          $ref: '#/components/schemas/response_inventory_error'
        inventory_added:
          $ref: '#/components/schemas/response_inventory_inventory_added'
        inventory_duplicated:
          $ref: '#/components/schemas/response_inventory_inventory_duplicated'
        reason:
          $ref: '#/components/schemas/strings'
      type: object
    response_inventory_inventory_added:
      items:
        $ref: '#/components/schemas/response_inventory_inventory_added_items'
      minItems: 1
      type: array
      uniqueItems: true
    inventory:
      additionalProperties: false
      properties:
        adopted:
          description: Only if `type`==`switch` or `type`==`gateway`, whether the switch/gateway is adopted
          type: boolean
        chassis_mac:
          description: For Virtual Chassis only, the MAC Address of the FPC0
          type: string
        chassis_serial:
          description: For Virtual Chassis only, the Serial Number of the FPC0
          type: string
        connected:
          description: Whether the device is connected
          type: boolean
        created_time:
          $ref: '#/components/schemas/created_time'
        deviceprofile_id:
          description: Deviceprofile id if assigned, null if not assigned
          type:
          - string
          - 'null'
        hostname:
          description: Hostname reported by the device
          type: string
        hw_rev:
          description: Device hardware revision number
          type: string
        id:
          $ref: '#/components/schemas/id'
        jsi:
          type: boolean
        mac:
          description: Device MAC address
          type: string
        magic:
          description: Device claim code
          type: string
        model:
          description: Device model
          type: string
        modified_time:
          $ref: '#/components/schemas/modified_time'
        name:
          description: Device name if configured
          type: string
        org_id:
          $ref: '#/components/schemas/org_id'
        serial:
          description: Device serial
          type: string
        site_id:
          $ref: '#/components/schemas/site_id'
        sku:
          description: Device stock keeping unit
          type: string
        type:
          $ref: '#/components/schemas/device_type_default_ap'
        vc_mac:
          description: If `type`==`switch` and device part of a Virtual Chassis, MAC Address of the Virtual Chassis. if `type`==`gateway` and device part of a Cluster, MAC Address of the Cluster
          type: string
      type: object
    response_inventory_inventory_duplicated_items:
      additionalProperties: false
      properties:
        mac:
          examples:
          - 5c5b35000012
          type: string
        magic:
          examples:
          - DVH4VSNMSZPDXBR
          type: string
        model:
          examples:
          - AP41
          type: string
        serial:
          examples:
          - FXLH2015150027
          type: string
        type:
          examples:
          - ap
          type: string
      required:
      - mac
      - magic
      - model
      - serial
      - type
      type: object
    tunterm_port_config:
      additionalProperties: false
      description: Ethernet port configurations
      properties:
        downstream_ports:
          $ref: '#/components/schemas/tunterm_port_config_downstream_ports'
        separate_upstream_downstream:
          default: false
          description: Whether to separate upstream / downstream ports. default is false where all ports will be used.
          type: boolean
        upstream_port_vlan_id:
          $ref: '#/components/schemas/tunterm_port_config_upstream_port_vlan_id'
        upstream_ports:
          $ref: '#/components/schemas/tunterm_port_config_upstream_ports'
      type: object
    response_inventory_error:
      items:
        examples:
        - PO1025335ohoh
        type: string
      type: array
    ha_cluster_config_nodes:
      items:
        $ref: '#/components/schemas/ha_cluster_config_node'
      type: array
    inventory_search:
      additionalProperties: false
      properties:
        end:
          type: integer
        limit:
          examples:
          - 1000
          type: integer
        next:
          type: string
        results:
          $ref: '#/components/schemas/inventory_search_results'
        start:
          type: integer
        total:
          examples:
          - 1
          type: integer
      type: object
    inventory_update:
      properties:
        disable_auto_config:
          default: false
          deprecated: true
          description: If `op`==`assign`, this disables the default behavior of a cloud-ready switch/gateway being managed/configured by Mist. Setting this to `true` means you want to disable the default behavior and do not want the device to be Mist-managed.
          type: boolean
        macs:
          $ref: '#/components/schemas/inventory_update_macs'
        managed:
          default: false
          deprecated: true
          description: If `op`==`assign`. An adopted switch/gateway will not be managed/configured by Mist by default. Setting this parameter to `true` enables the adopted switch/gateway to be managed/configured by Mist.
          type: boolean
        mist_configured:
          description: whether the device can be configured by Mist or not. This deprecates `managed` (for adopted device) and `disable_auto_config` for claimed device)
          type: boolean
        no_reassign:
          default: false
          description: If `op`==`assign`, if true, treat site assignment against an already assigned AP as error
          type: boolean
        op:
          $ref: '#/components/schemas/inventory_update_operation'
        serials:
          $ref: '#/components/schemas/inventory_update_serials'
        site_id:
          description: If `op`==`assign`, target site id
          format: uuid
          type: string
      required:
      - op
      type: object
    inventory_search_results:
      items:
        $ref: '#/components/schemas/inventory_search_result'
      type: array
    device_type:
      description: 'enum: `ap`, `gateway`, `switch`'
      enum:
      - ap
      - gateway
      - switch
      type: string
    response_http401:
      additionalProperties: false
      properties:
        detail:
          examples:
          - Authentication credentials were not provided.
          type: string
      type: object
    ha_cluster_delete:
      properties:
        mac:
          description: Node0 mac address
          examples:
          - aff827549235
          type: string
      type: object
    response_count:
      additionalProperties: false
      properties:
        distinct:
          type: string
        end:
          type: integer
        limit:
          type: integer
        results:
          $ref: '#/components/schemas/count_results'
        start:
          type: integer
        total:
          type: integer
      required:
      - distinct
      - end
      - limit
      - results
      - start
      - total
      type: object
    replace_device_discard:
      description: Attributes that you don’t want to copy
      items:
        type: string
      type: array
    inventory_update_serials:
      description: If `op`==`delete`, list of serial numbers, e.g. ["FXLH2015150025"]
      items:
        type: string
      type: array
    ha_cluster_config:
      properties:
        disable_auto_config:
          deprecated: true
          description: This disables the default behavior of a cloud-ready switch/gateway being managed/configured by Mist. Setting this to `true` means you want to disable the default behavior and do not want the device to be Mist-managed.
          type: boolean
        managed:
          deprecated: true
          description: An adopted switch/gateway will not be managed/configured by Mist by default. Setting this parameter to `true` enables the adopted switch/gateway to be managed/configured by Mist.
          type: boolean
        mist_configured:
          description: whether the device can be configured by Mist or not. This deprecates `managed` (for adopted device) and `disable_auto_config` for claimed device)
          type: boolean
        nodes:
          $ref: '#/components/schemas/ha_cluster_config_nodes'
        site_id:
          examples:
          - 43e9c864-a7e4-4310-8031-d9817d2c5a43
          format: uuid
          type: string
      type: object
    created_time:
      description: When the object has been created, in epoch
      format: double
      readOnly: true
      type: number
    replace_device:
      properties:
        discard:
          $ref: '#/components/schemas/replace_device_discard'
        inventory_mac:
          description: MAC Address of the inventory that will be replacing the old one. It has to be claimed and unassigned
          examples:
          - 5c5b35000301
          type: string
        mac:
          description: MAC Address of the device to replace
          examples:
          - 5c5b35000101
          type: string
        site_id:
          description: Site_id of the device to be replaced
          examples:
          - 4ac1dcf4-9d8b-7211-65c4-057819f0862b
          type: string
        tunterm_port_config:
          $ref: '#/components/schemas/tunterm_port_config'
    ha_cluster_config_node:
      additionalProperties: false
      maxProperties: 2
      properties:
        mac:
          description: Node mac, should be unassigned
          examples:
          - aff827549235
          type: string
      type: object
    count_result:
      additionalProperties:
        type: string
      properties:
        count:
          type: integer
      required:
      - count
      type: object
    device_status_filter:
      description: 'Filter devices based on their status. enum: `connected`, `disconnected`'
      enum:
      - connected
      - disconnected
      type: string
    inventory_count_distinct:
      default: model
      description: 'enum: `model`, `status`, `site_id`, `sku`, `version`'
      enum:
      - model
      - status
      - site_id
      - sku
      - version
      type: string
    response_inventory_duplicated:
      items:
        examples:
        - DVH4V-SNMSZ-PDXBR
        type: string
      type: array
    inventory_list:
      items:
        $ref: '#/components/schemas/inventory'
      type: array
    inventory_search_result_members:
      items:
        $ref: '#/components/schemas/inventory_search_result_member'
      type: array
    inventory_search_result_member:
      additionalProperties: false
      properties:
        mac:
          examples:
          - f01c2df166e0
          type: string
        model:
          examples:
          - EX4300-48P
          type: string
        serial:
          examples:
          - PD3714460200
          type: string
      type: object
    response_http429:
      additionalProperties: false
      properties:
        detail:
          examples:
          - Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
          type: string
      type: object
    tunterm_port_config_downstream_ports:
      description: List of ports to be used for downstream (to AP) purpose
      examples:
      - - '2'
        - '3'
      items:
        type: string
      type: array
    org_id:
      examples:
      - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
      format: uuid
      readOnly: true
      type: string
    id:
      description: Unique ID of the object instance in the Mist Organization
      examples:
      - 53f10664-3ce8-4c27-b382-0ef66432349f
      format: uuid
      readOnly: true
      type: string
    inventory_update_macs:
      description: If `op`==`assign`, `op`==`unassign`, `op`==`upgrade_to_mist`or `op`==`downgrade_to_jsi` , list of MAC, e.g. ["5c5b350e0001"]
      items:
        type: string
      type: array
    response_org_inventory_change:
      additionalProperties: false
      properties:
        error:
          $ref: '#/components/schemas/strings'
        op:
          $ref: '#/components/schemas/response_org_inventory_change_op'
        reason:
          $ref: '#/components/schemas/strings'
        success:
          $ref: '#/components/schemas/strings'
      required:
      - error
      - op
      - success
      - reason
      type: object
    response_http403:
      additionalProperties: false
      properties:
        detail:
          examples:
          - You do not have permission to perform this action.
          type: string
      type: object
    response_inventory_inventory_added_items:
      additionalProperties: false
      properties:
        mac:
          examples:
          - 5c5b35000018
          type: string
        magic:
          examples:
          - 6JG8EPTFV2A9Z2N
          type: string
        model:
          examples:
          - AP41
          type: string
        serial:
          examples:
          - FXLH2015150025
          type: string
        type:
          examples:
          - ap
          type: string
      required:
      - mac
      - magic
      - model
      - serial
      - type
      type: object
    count_results:
      items:
        $ref: '#/components/schemas/count_result'
      type: array
      uniqueItems: true
    site_id:
      examples:
      - 441a1214-6928-442a-8e92-e1d34b8ec6a6
      format: uuid
      readOnly: true
      type: string
    response_http404:
      additionalProperties: false
      properties:
        id:
          type: string
      type: object
    response_inventory_added:
      items:
        examples:
        - 6JG8E-PTFV2-A9Z2N
        type: string
      type: array
    inventory_update_operation:
      description: "enum:\n  * `upgrade_to_mist`: Upgrade to mist-managed\n  * `downgrade_to_jsi`: Downgrade to basic monitoring. When downgrading a VC member to js

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