Juniper Mist AI Orgs Inventory API

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

Operations 9

GET /api/v1/orgs/{org_id}/inventory getOrgInventory #
POST /api/v1/orgs/{org_id}/inventory addOrgInventory #
PUT /api/v1/orgs/{org_id}/inventory updateOrgInventoryAssignment #
GET /api/v1/orgs/{org_id}/inventory/count countOrgInventory #
POST /api/v1/orgs/{org_id}/inventory/create_ha_cluster createOrgGatewayHaCluster #
POST /api/v1/orgs/{org_id}/inventory/delete_ha_cluster deleteOrgGatewayHaCluster #
POST /api/v1/orgs/{org_id}/inventory/reevaluate_auto_assignment reevaluateOrgAutoAssignment #
POST /api/v1/orgs/{org_id}/inventory/replace replaceOrgDevices #
GET /api/v1/orgs/{org_id}/inventory/search searchOrgInventory #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mist-ai-orgs-inventory-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mist-ai-orgs-inventory-api-openapi.yml Raw ↑
openapi: 3.2.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 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:
  responses:
    OrgInventoryAdd:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/OrgInventoryAddExample'
          schema:
            $ref: '#/components/schemas/response_inventory'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/OrgInventoryAddExample'
          schema:
            $ref: '#/components/schemas/response_inventory'
      description: OK - if any of entries are valid or there’s no errors
    OrgInventoryChanges:
      content:
        application/json:
          examples:
            Assign:
              $ref: '#/components/examples/OrgInventoryChangesAssign'
            Delete:
              $ref: '#/components/examples/OrgInventoryChangesDelete'
            Error:
              $ref: '#/components/examples/OrgInventoryChangesError'
          schema:
            $ref: '#/components/schemas/response_org_inventory_change'
        application/vnd.api+json:
          examples:
            Assign:
              $ref: '#/components/examples/OrgInventoryChangesAssign'
            Delete:
              $ref: '#/components/examples/OrgInventoryChangesDelete'
            Error:
              $ref: '#/components/examples/OrgInventoryChangesError'
          schema:
            $ref: '#/components/schemas/response_org_inventory_change'
      description: OK
    HTTP403:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP403Example'
          schema:
            $ref: '#/components/schemas/response_http403'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP403Example'
          schema:
            $ref: '#/components/schemas/response_http403'
      description: Permission Denied
    Count:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/CountExample'
          schema:
            $ref: '#/components/schemas/response_count'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/CountExample'
          schema:
            $ref: '#/components/schemas/response_count'
      description: Result of Count
    OrgInventorySearch:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/OrgInventorySearchExample'
          schema:
            $ref: '#/components/schemas/inventory_search'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/OrgInventorySearchExample'
          schema:
            $ref: '#/components/schemas/inventory_search'
      description: OK
    OrgInventory:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/OrgInventoryExample'
          schema:
            $ref: '#/components/schemas/inventory_list'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/OrgInventoryExample'
          schema:
            $ref: '#/components/schemas/inventory_list'
      description: OK
    HTTP401:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP401Example'
          schema:
            $ref: '#/components/schemas/response_http401'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP401Example'
          schema:
            $ref: '#/components/schemas/response_http401'
      description: Unauthorized
    HTTP400:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP400Example'
          schema:
            $ref: '#/components/schemas/response_http400'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP400Example'
          schema:
            $ref: '#/components/schemas/response_http400'
      description: Bad Syntax
    HTTP404:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/response_http404'
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/response_http404'
      description: Not found. The API endpoint doesn’t exist or resource doesn’ t exist
    HTTP429:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP429Example'
          schema:
            $ref: '#/components/schemas/response_http429'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/HTTP429Example'
          schema:
            $ref: '#/components/schemas/response_http429'
      description: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
    OK:
      description: OK
  parameters:
    page:
      in: query
      name: page
      schema:
        default: 1
        minimum: 1
        type: integer
    partial_filter_serial:
      description: Device serial number. Partial match allowed with wildcard * (e.g. `*123*` will match `AB123CD`, `12345`, `XY123`)
      in: query
      name: serial
      schema:
        examples:
        - AB123CD
        - '*123*'
        type: string
    partial_filter_mac:
      description: MAC address. Partial match allowed with wildcard * (e.g. `*5b35*` will match `5c5b350e0001` and `5c5b35000301`).
      in: query
      name: mac
      schema:
        examples:
        - 5c5b350e0001
        - '*5b35*'
        type: string
    partial_filter_model:
      description: Partial / full Device model. Use `prefix*` for prefix search or `*substring*` for contains search (e.g. `AP4*` and `*P4*` match `AP43`). Suffix-only wildcards (e.g. `*43`) are not supported
      in: query
      name: model
      schema:
        examples:
        - AP43
        - AP4*
        - '*P4*'
        type: string
    partial_filter_name:
      description: Device name. Always a partial match (e.g. `london` will match `london-1`, `london-2`, `my-london-device`...)
      in: query
      name: name
      schema:
        examples:
        - london
        type: string
    sort:
      description: On which field the list should be sorted, -prefix represents DESC order
      in: query
      name: sort
      schema:
        default: timestamp
        examples:
        - -site_id
        type: string
    org_id:
      in: path
      name: org_id
      required: true
      schema:
        examples:
        - 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
    partial_filter_sku:
      description: Device SKU. Partial match allowed with wildcard * (e.g. `*2300*` will match `EX2300-F-12P`)
      in: query
      name: sku
      schema:
        examples:
        - EX2300-F-12P
        - '*2300*'
        type: string
    search_after:
      description: Pagination cursor for retrieving subsequent pages of results. This value is automatically populated by Mist in the `next` URL from the previous response and should not be manually constructed.
      in: query
      name: search_after
      schema:
        type: string
    partial_filter_version:
      description: Device version. Partial match allowed with wildcard * (e.g. `2R3` will match `21.2R3-S3.5`)
      in: query
      name: version
      schema:
        examples:
        - 21.2R3-S3.5
        - '*2R3*'
        type: string
    limit:
      in: query
      name: limit
      schema:
        default: 100
        minimum: 0
        type: integer
  schemas:
    org_id:
      examples:
      - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
      format: uuid
      readOnly: true
      type: string
    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
    count_results:
      items:
        $ref: '#/components/schemas/count_result'
      type: array
      uniqueItems: true
    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_error:
      items:
        examples:
        - PO1025335ohoh
        type: string
      type: array
    inventory_search_results:
      items:
        $ref: '#/components/schemas/inventory_search_result'
      type: array
    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_inventory_added:
      items:
        examples:
        - 6JG8E-PTFV2-A9Z2N
        type: string
      type: array
    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
    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 jsi, we will move the cloud connection of the VC to jsi-terminator and keep all VC device/inventories intact for pain-free upgrading back to mist.\n  * `assign`: Assign inventory to a site\n  * `unassign`: Unassign inventory from a site\n  * `delete`: Delete multiple inventory from org. If the device is already assigned to a site, it will be unassigned"
      enum:
      - assign
      - delete
      - downgrade_to_jsi
      - unassign
      - upgrade_to_mist
      type: string
    response_inventory_inventory_added:
      items:
        $ref: '#/components/schemas/response_inventory_inventory_added_items'
      minItems: 1
      type: array
      uniqueItems: true
    tunterm_port_config_upstream_port_vlan_id:
      description: Native VLAN id for upstream ports
      oneOf:
      - type: string
      - maximum: 4094
        minimum: 1
        type: integer
    replace_device_discard:
      description: Attributes that you don’t want to copy
      items:
        type: string
      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_http403:
      additionalProperties: false
      properties:
        detail:
          examples:
          - You do not have permission to perform this action.
          type: string
      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
    ha_cluster_delete:
      properties:
        mac:
          description: Node0 mac address
          examples:
          - aff827549235
          type: string
      type: object
    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
    device_type:
      description: 'enum: `ap`, `gateway`, `switch`'
      enum:
      - ap
      - gateway
      - switch
      type: string
    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
    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
    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'
    created_time:
      description: When the object has been created, in epoch
      format: double
      readOnly: true
      type: number
    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) 

# --- 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