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 Installer 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: "In a typical enterprise, a separate group of people, Installers, are responsible for install new devices. May it be a new installation (e.g. new stores), a replacement installation (e.g. replacing Cisco APs with Mist APs), or addition (e.g. adding new APs for better coverage). Instead of granting them Admin/Write privilege, it's more desirable to grant them minimum privileges to do the initial provisioning so they cannot read sensible information (e.g. PSK of a WLAN), or change configs of running APs.\nAt a high level, Installer APs try to achieve the following:\n1. identifying a device by MAC (that\\u2019\\ \ns what they see)\n2. they can only touch configurations of the devices they\\u2019\\\nre installing\n3. allow the following configurations: \n * name * site assignment \n * device profile assignment \n * map and location (x/y) assignment \n * claim (if not already in the inventory) \n * replace existing device with the device being installed\n\n**Grace Period**\n\nGrace period provides a dynamic way to limit what devices / sites installer can work on. Generally installers work on recent deployments - bringing up new sites, add newly claimed devices to new / existing sites. They make mistakes, too, and may need to further tweak some of the parameters. Default grace period is 7 days and can be set from 1 day to 365 days."
name: Installer
paths:
/api/v1/installer/orgs/{org_id}/alarmtemplates:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of alarm templates
operationId: listInstallerAlarmTemplates
responses:
'200':
$ref: '#/components/responses/InstallerAlarmtemplates'
'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: listInstallerAlarmTemplates
tags:
- Installer
/api/v1/installer/orgs/{org_id}/deviceprofiles:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of Device Profiles
operationId: listInstallerDeviceProfiles
parameters:
- in: query
name: type
schema:
$ref: '#/components/schemas/device_type_default_ap'
responses:
'200':
$ref: '#/components/responses/InstallerDeviceProfiles'
'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: listInstallerDeviceProfiles
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of recently claimed devices
operationId: listInstallerListOfRecentlyClaimedDevices
parameters:
- description: Device Model
in: query
name: model
schema:
examples:
- AP43
type: string
- description: Site Name
in: query
name: site_name
schema:
examples:
- SJ1
type: string
- description: Site ID
in: query
name: site_id
schema:
examples:
- 72771e6a-6f5e-4de4-a5b9-1266c4197811
format: uuid
type: string
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
responses:
'200':
$ref: '#/components/responses/InstallerDevicesArray'
'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: listInstallerListOfRecentlyClaimedDevices
tags:
- Installer
post:
description: This mirrors `POST /api/v1/orgs/{org_id}/inventory` (see Inventory API)
operationId: claimInstallerDevices
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: claimInstallerDevices
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{device_mac}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/device_mac'
delete:
description: Unassign recently claimed devices
operationId: unassignInstallerRecentlyClaimedDevice
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: unassignInstallerRecentlyClaimedDevice
tags:
- Installer
put:
description: "Provision or Replace a device \n\nIf replacing_mac is in the request payload, other attributes are ignored, we attempt to replace existing device (with mac replacing_mac) with the inventory device being configured. The replacement device must be in the inventory but not assigned, and the replacing_mac device must be assigned to a site, and satisfy grace period requirements. The Device replaced will become unassigned."
operationId: provisionInstallerDevices
requestBody:
content:
application/json:
examples:
Example:
value:
deviceprofile_name: SJ1
height: 2.7
name: SJ1-AP1
orientation: 90
site_id: 72771e6a-6f5e-4de4-a5b9-1266c4197811
site_name: SJ1
x: 150
y: 300
schema:
$ref: '#/components/schemas/installer_provision_device'
description: Request Body
responses:
'200':
$ref: '#/components/responses/OK'
'400':
$ref: '#/components/responses/OrgInventoryUnassignFailed'
'401':
$ref: '#/components/responses/HTTP401'
'403':
$ref: '#/components/responses/HTTP403'
'404':
$ref: '#/components/responses/OrgInventoryUnassignNotFound'
'429':
$ref: '#/components/responses/HTTP429'
summary: provisionInstallerDevices
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{device_mac}/locate:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/device_mac'
post:
description: Locate a Device by blinking it’s LED, it’s a persisted state that has to be stopped by calling Stop Locating API
operationId: startInstallerLocateDevice
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: startInstallerLocateDevice
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{device_mac}/unlocate:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/device_mac'
post:
description: Stop it
operationId: stopInstallerLocateDevice
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: stopInstallerLocateDevice
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{device_mac}/{image_name}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/image_name'
- $ref: '#/components/parameters/device_mac'
delete:
description: Delete image
operationId: deleteInstallerDeviceImage
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: deleteInstallerDeviceImage
tags:
- Installer
post:
description: Add image
operationId: addInstallerDeviceImage
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/map_site_import_file'
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: addInstallerDeviceImage
tags:
- Installer
/api/v1/installer/orgs/{org_id}/devices/{fpc0_mac}/vc:
parameters:
- $ref: '#/components/parameters/org_id'
- description: FPC0 MAC Address
in: path
name: fpc0_mac
required: true
schema:
examples:
- aff827549235
type: string
get:
description: 'Get VC Status
The API returns a combined view of the VC status which includes topology and stats'
operationId: getInstallerDeviceVirtualChassis
responses:
'200':
$ref: '#/components/responses/VirtualChassis'
'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: getInstallerDeviceVirtualChassis
tags:
- Installer
post:
description: 'For models (e.g. EX3400 and up) having dedicated VC ports, it is easier to form a VC by just connecting cables with the dedicated VC ports. Cloud will detect the new VC and update the inventory.
In case that the user would like to choose the dedicated switch as a VC master or for EX2300-C-12P and EX2300-C-12T which doesn''t have dedicated VC ports, below are procedures to automate the VC creation:
1. Power on the switch that is chosen as the VC master first. And then powering on the other member switches.
2. Claim or adopt all these switches under the same organization’s Inventory
3. Assign these switches into the same Site
4. Invoke vc command on the switch chosen to be the VC master. For EX2300-C-12P, VC ports will be created automatically.
5. Connect the cables to the VC ports for these switches
6. Wait for the VC to be formed. The Org’s inventory will be updated for the new VC.'
operationId: createInstallerVirtualChassis
requestBody:
content:
application/json:
examples:
create-a-VC-with-three-members:
value:
members:
- mac: aff827549235
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: master
- mac: 8396cd006c8c
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: backup
- mac: 8396cd00888c
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: linecard
create-a-pre-provisioned-VC-with-three-members:
value:
members:
- mac: aff827549235
member_id: 0
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: master
- mac: 8396cd006c8c
member_id: 1
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: linecard
- mac: 8396cd00888c
member_id: 2
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: backup
preprovisioned: true
schema:
$ref: '#/components/schemas/virtual_chassis_config'
description: Request Body
responses:
'200':
$ref: '#/components/responses/VirtualChassis'
'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: createInstallerVirtualChassis
tags:
- Installer
put:
description: "The VC creation and adding member switch API will update the device’ s virtual chassis config which is applied after VC is formed to create JUNOS pre-provisioned virtual chassis configuration.\n\n## Change to use preprovisioned VC\nTo switch the VC to use preprovisioned VC, enable preprovisioned in virtual_chassis config. Both vc_role master and backup will be matched to routing-engine role in Junos preprovisioned VC config.\n\nIn this config, fpc0 has to be the same as the mac of device_id. Use renumber if you want to replace fpc0 which involves device_id change.\n\nNotice: to configure preprovisioned VC, every member of the VC must be in the inventory.\n\n## Add new members\nFor models (e.g. EX4300 and up) having dedicated VC ports, it is easier to add new member switches into a VC by just connecting cables with the dedicated VC ports. Cloud will detect the new members and update the inventory.\n\nFor EX2300 VC, adding new members requires to follow the procedures below:\n1. Powering on the new member switches and ensuring cables are not connected to any VC ports.\n2. Claim or adopt all new member switches under the VC’s organization Inventory\n3. Assign all new member switches to the same Site as the VC\n4. Invoke vc command to add switches to the VC.\n5. Connect the cables to the VC ports for these switches\n6. After a while, the Org’s Inventory shows this new switches has been added into the VC.\n\n## Removing member switch\nTo remove a member switch from the VC, following the procedures below:\n\n1. Ensuring the VC is connected to the cloud first\n2. Unplug the cable from the VC port of the switch\n3. Waiting for the VC state (vc_state) of this switch is changed to not-present\n4. Invoke update_vc with remove to remove this switch from the VC\n5. The Org’s Inventory shows the switch is removed.\n\nPlease notice that member ID 0 (fpc0) cannot be removed. When a VC has two switches left, unplugging the cable may result in the situation that fpc0 becomes a line card (LC). When this situation is happening, please re-plug in the cable, wait for both switches becoming present (show virtual-chassis) and then removing the cable again.\n\n## Renumber a member switch\nWhen a member switch doesn't' work properly and needed to be replaced, the renumber API could be used. The following two types of renumber are supported:\n\n1. Replace a non-fpc0 member switch\n2. Replace fpc0. When fpc0 is replaced, PAPI device config and JUNOS config will be both updated.\n\nFor renumber to work, the following procedures are needed: \n1. Ensuring the VC is connected to the cloud and the state of the member switch to be replaced must be non present. \n2. Adding the new member switch to the VC \n3. Waiting for the VC state (vc_state) of this VC to be updated to API server \n4. Invoke vc with renumber to replace the new member switch from fpc X to\n\n## Perprovision VC members\nBy specifying \"preprovision\" op, you can convert the current VC to pre-provisioned mode, update VC members as well as specify vc_ports when adding new members for device models without dedicated vc ports. Use renumber for fpc0 replacement which involves device_id change.\n\nNote: \n1. vc_ports is used for adding new members and not needed if * the device model has dedicated vc ports, or * no new member is added \n2. New VC members to be added should exist in the same Site as the VC\n\nUpdate Device’s VC config can achieve similar purpose by directly modifying current virtual_chassis config. However, it cannot fulfill requests to enabling vc_ports on new members that are yet to belong to current VC."
operationId: updateInstallerVirtualChassisMember
requestBody:
content:
application/json:
examples:
adding-two-new-switches-as-line-cards-into-the-VC:
value:
members:
- mac: aff827549235
member_id: 2
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: linecard
- mac: 8396cd00777c
member_id: 3
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: linecard
op: add
convert-to-pre-provisioned-VC:
value:
member: 0
members:
- mac: string
member_id: 0
vc_ports:
- xe-0/1/0
- xe-0/1/1
vc_role: master
new-member: 0
op: add
removing-two-switches-from-VC:
value:
members:
- member: 2
- member: 3
op: remove
renumber-member-ID-3-to-member-ID-2:
value:
member: 3
new-member: 2
op: renumber
schema:
$ref: '#/components/schemas/virtual_chassis_update'
description: Request Body
responses:
'200':
$ref: '#/components/responses/VirtualChassis'
'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: updateInstallerVirtualChassisMember
tags:
- Installer
/api/v1/installer/orgs/{org_id}/rftemplates:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of RF Templates
operationId: listInstallerRfTemplatesNames
responses:
'200':
$ref: '#/components/responses/InstallerRftemplatesArray'
'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: listInstallerRfTemplatesNames
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sitegroups:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of Site Groups
operationId: listInstallerSiteGroups
responses:
'200':
$ref: '#/components/responses/InstallerSitegroupsArray'
'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: listInstallerSiteGroups
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: Get List of Sites
operationId: listInstallerSites
responses:
'200':
$ref: '#/components/responses/InstallerSitesArray'
'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: listInstallerSites
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites/{site_name}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/site_name'
put:
description: Often the Installers are asked to assign Devices to Sites. The Sites can either be pre-created or created/modified by the Installer. If this is an update, the same grace period also applies.
operationId: createOrUpdateInstallerSites
requestBody:
content:
application/json:
examples:
Example:
value:
address: 1601 S. Deanza Blvd., Cupertino, CA, 95014
country_code: US
latlng:
lat: 37.295833
lng: -122.032946
name: string
rftemplate_name: rftemplate1
sitegroup_names:
- sg1
- sg2
timezone: America/Los_Angeles
schema:
$ref: '#/components/schemas/installer_site'
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: createOrUpdateInstallerSites
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites/{site_name}/maps:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/site_name'
get:
description: Get List of Maps
operationId: listInstallerMaps
responses:
'200':
$ref: '#/components/responses/MapsArray'
'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: listInstallerMaps
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites/{site_name}/maps/import:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/site_name'
post:
description: Import data from files is a multipart POST which has an file, an optional json, and an optional csv, to create floorplan, assign & place ap if name or mac matches
operationId: importInstallerMap
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/map_site_import_file'
responses:
'200':
$ref: '#/components/responses/MapImport'
'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: importInstallerMap
tags:
- Installer
/api/v1/installer/orgs/{org_id}/sites/{site_name}/maps/{map_id}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/site_name'
- $ref: '#/components/parameters/map_id'
delete:
description: Delete Map
operationId: deleteInstallerMap
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: deleteInstallerMap
tags:
- Installer
post:
description: Create a MAP
operationId: createInstallerMap
requestBody:
content:
application/json:
examples:
Example:
value:
height: 0
latlng_br:
lat: string
lng: string
latlng_tl:
lat: string
lng: string
locked: true
name: string
orientation: 0
origin_x: 0
origin_y: 0
ppm: 0
sitesurvey_path:
- coordinate: string
name: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
type: image
view: roadmap
wall_path:
coordinate: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
wayfinding:
micello:
account_key: string
default_level_id: 0
snap_to_path: true
wayfinding_path:
coordinate: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
width: 0
schema:
$ref: '#/components/schemas/map'
description: Request Body
responses:
'200':
$ref: '#/components/responses/Map'
'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: createInstallerMap
tags:
- Installer
put:
description: Update map
operationId: updateInstallerMap
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/map'
description: Request Body
responses:
'200':
$ref: '#/components/responses/Map'
'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: updateInstallerMap
tags:
- Installer
/api/v1/installer/sites/{site_name}/optimize:
parameters:
- $ref: '#/components/parameters/site_name'
get:
description: After installation is considered complete (APs are placed on maps, all powered up), you can trigger an optimize operation where RRM will kick in (and maybe other things in the future) before it’s automatically scheduled.
operationId: optimizeInstallerRrm
responses:
'200':
$ref: '#/components/responses/OK'
'400':
$ref: '#/components/responses/HTTP400'
'401':
$ref: '#/components/responses/HTTP401'
'403':
$ref: '#/components/re
# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist-ai/refs/heads/main/openapi/mist-ai-installer-api-openapi.yml