Mist Installer API
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. At a high level, Installer APs try to achieve the following: 1. identifying a device by MAC (that\u2019\ s what they see) 2. they can only touch configurations of the devices they\u2019\ re installing 3. allow the following configurations: * name * site assignment * device profile assignment * map and location (x/y) assignment * claim (if not already in the inventory) * replace existing device with the device being installed **Grace Period** Grace 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.
openapi: 3.1.0
info:
contact:
email: tmunzer@juniper.net
name: Thomas Munzer
description: '> Version: **2606.1.1**
>
> Date: **July 10, 2026**
<div class="notification"> NOTE:<br>Some important API changes will be introduced. Please make sure to read the <a href="https://www.juniper.net/documentation/us/en/software/mist/api/http/guides/important-api-changes">announcements</a> </div>
---
## Additional Documentation
* [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)
* [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)
* [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)
## Helpful Resources
* [API Sandbox and Exercises](https://api-class.mist.com/)
* [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)
* [Python Script Examples](https://github.com/tmunzer/mist_library)
* [API Demo Apps](https://apps.mist-lab.fr/)
* [Juniper Blog](https://blogs.juniper.net/)
## Mist Web Browser Extension:
* Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)
* Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)
---'
license:
name: MIT
url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
title: Mist Admins Installer API
version: 2606.1.1
x-logo:
altText: Juniper-MistAI
backgroundColor: '#FFFFFF'
url: https://www.mist.com/wp-content/uploads/logo.png
servers:
- description: Mist Global 01
url: https://api.mist.com
- description: Mist Global 02
url: https://api.gc1.mist.com
- description: Mist Global 03
url: https://api.ac2.mist.com
- description: Mist Global 04
url: https://api.gc2.mist.com
- description: Mist Global 05
url: https://api.gc4.mist.com
- description: Mist EMEA 01
url: https://api.eu.mist.com
- description: Mist EMEA 02
url: https://api.gc3.mist.com
- description: Mist EMEA 03
url: https://api.ac6.mist.com
- description: Mist EMEA 04
url: https://api.gc6.mist.com
- description: Mist APAC 01
url: https://api.ac5.mist.com
- description: Mist APAC 02
url: https://api.gc5.mist.com
- description: Mist APAC 03
url: https://api.gc7.mist.com
security:
- apiToken: []
- csrfToken: []
tags:
- description: "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: Return alarm templates available to installer workflows in the organization.
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: Return device profiles that installers can use when provisioning recently claimed devices, optionally filtered by device type.
operationId: listInstallerDeviceProfiles
parameters:
- description: 'Filter results by type. enum: `ap`, `gateway`, `switch`'
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: Return recently claimed devices visible to installer workflows, with optional filters for model, site name, or site identifier.
operationId: listInstallerListOfRecentlyClaimedDevices
parameters:
- description: Filter results by device model
in: query
name: model
schema:
examples:
- AP43
type: string
- description: Filter results by site name
in: query
name: site_name
schema:
examples:
- SJ1
type: string
- description: Filter results by site identifier
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: Claim devices into the organization inventory by activation code through the installer workflow.
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 a recently claimed device from its current site so it can be provisioned again through the installer workflow.
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 an installer-managed device. \n\nIf replacing_mac is in the request payload, other attributes are ignored, we attempt to replace existing device (with MAC address `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: Start locating an installer-managed device by blinking its LED. The locate state persists until [Stop Locating Installer Device](/#operations/stopInstallerLocateDevice) is called.
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 the locate LED state for an installer-managed device.
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: Remove a previously uploaded image associated with an installer-managed device, such as an installation photo or device placement 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: Upload an image associated with an installer-managed device using `multipart/form-data`.
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: 'Return Virtual Chassis status for an installer-managed switch, including topology and member statistics.
The response is a combined view of the Virtual Chassis state.'
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: Return RF template names available to installer workflows for site creation or updates.
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: Return site groups that installers can assign when creating or updating sites.
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: Return sites visible to installer workflows for device assignment and map operations.
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: Use `site_name` to create a site when it does not exist, or to update installer-editable fields on an existing site. Installers use these sites for device assignment, and grace-period rules also apply when updating an existing site.
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: Return maps for an installer-managed site, used for floorplan selection and AP placement during provisioning.
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 a site floorplan and optional placement data from multipart files. The request can include an image file, optional JSON, and optional CSV data to create the map and assign or place APs when names or MAC addresses match.
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: Remove a map or floorplan from an installer-managed site. This removes the map used for AP placement, but does not delete the site.
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: Define a map or floorplan for an installer-managed site, including metadata used for AP placement and site visualization.
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/HT
# --- truncated at 32 KB (112 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist/refs/heads/main/openapi/mist-installer-api-openapi.yml