openapi: 3.1.0
info:
contact:
email: tmunzer@juniper.net
name: Thomas Munzer
description: '> Version: **2604.1.1**
>
> Date: **May 13, 2026**
NOTE:
Some important API changes will be introduced. Please make sure to read the
announcements
---
## Additional Documentation
* [Mist Automation Guide](https://www.juniper.net/documentation/us/en/software/mist/automation-integration/index.html)
* [Mist Location SDK](https://www.juniper.net/documentation/us/en/software/mist/location-services/topics/concept/mist-how-get-mist-sdk.html)
* [Mist Product Updates](https://www.juniper.net/documentation/us/en/software/mist/product-updates/)
## Helpful Resources
* [API Sandbox and Exercises](https://api-class.mist.com/)
* [Postman Collection, Runners and Webhook Samples](https://www.postman.com/juniper-mist/workspace/mist-systems-s-public-workspace)
* [Python Script Examples](https://github.com/tmunzer/mist_library)
* [API Demo Apps](https://apps.mist-lab.fr/)
* [Juniper Blog](https://blogs.juniper.net/)
## Mist Web Browser Extension:
* Google Chrome, Microsoft Edge and other Chromium-based browser: [Chrome Web Store](https://chromewebstore.google.com/detail/mist-extension/ejhpdcljeamillfhdihkkmoakanpbplh)
* Firefox: [Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/mist-extension/)
---'
license:
name: MIT
url: https://raw.githubusercontent.com/tmunzer/Mist-OAS3.0/main/LICENSE
title: Mist Admins Sites Maps 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: 'A Site Map is a visual representation of the layout and structure of a location, such as a building or campus.
It includes accurate information about the placement, positions, heights, and orientations of Juniper Mist Access Points (APs) and other devices in the deployment.
The floorplan is an essential component of location services as it enables the location engine to generate accurate location estimates for client devices, assets, and users at the site.'
name: Sites Maps
paths:
/api/v1/sites/{site_id}/maps:
parameters:
- $ref: '#/components/parameters/site_id'
get:
description: Get List of Site Maps
operationId: listSiteMaps
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
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: listSiteMaps
tags:
- Sites Maps
post:
description: Create Site Map
operationId: createSiteMap
requestBody:
content:
application/json:
examples:
Example:
value:
group_idx: 0
group_name: string
height: 0
height_m: 0
latlng_br:
lat: string
lng: string
latlng_tl:
lat: string
lng: string
locked: true
name: string
occupancy_limit: 0
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
width_m: 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: createSiteMap
tags:
- Sites Maps
/api/v1/sites/{site_id}/maps/auto_geofences:
parameters:
- $ref: '#/components/parameters/site_id'
post:
description: The auto geofence service is a map parsing service that uses map image data to identify the exterior of buildings in the map image also known as "geofences". This API processes all maps for a given SiteId. The maps must have an image to parse for the auto geofence service. Repeated POST requests to this endpoint while the auto geofence service is processing the map will be rejected.
operationId: startSiteMapsAutoGeofence
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: startSiteMapsAutoGeofence
tags:
- Sites Maps
/api/v1/sites/{site_id}/maps/import:
parameters:
- $ref: '#/components/parameters/site_id'
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 matching inventory to specific site, place ap if name or mac matches.
# Note
This endpoint (at the site level), the AP must be already assigned to the site to be placed on the floorplan. If you want to place APs from the Org inventory, it is required to use the endpoint at the Org level [importOrgMaps](#operation/importOrgMaps)
# CSV File Format
```csv
Vendor AP name,Mist AP Mac
US Office AP-2,5c:5b:35:00:00:02
US Office AP-3,5c5b35000002
```'
operationId: importSiteMaps
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: importSiteMaps
tags:
- Sites Maps
/api/v1/sites/{site_id}/maps/{map_id}:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/map_id'
delete:
description: Delete Site Map
operationId: deleteSiteMap
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: deleteSiteMap
tags:
- Sites Maps
get:
description: Get Site Map Details
operationId: getSiteMap
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: getSiteMap
tags:
- Sites Maps
put:
description: Update Site Map
operationId: updateSiteMap
requestBody:
content:
application/json:
examples:
Example:
value:
height: 0
height_m: 0
latlng_br:
lat: string
lng: string
latlng_tl:
lat: string
lng: string
locked: true
name: string
occupancy_limit: 0
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
width_m: 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: updateSiteMap
tags:
- Sites Maps
/api/v1/sites/{site_id}/maps/{map_id}/auto_geofences:
parameters:
- $ref: '#/components/parameters/map_id'
- $ref: '#/components/parameters/site_id'
post:
description: The auto geofence service is a map parsing service that uses map image data to identify the exterior of buildings in the map image also known as "geofences". This API processes a single given MapId. This map must have an image to parse for the auto geofence service. Repeated POST requests to this endpoint while the auto geofence service is processing the map will be rejected.
operationId: startSiteMapAutoGeofence
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: startSiteMapAutoGeofence
tags:
- Sites Maps
/api/v1/sites/{site_id}/maps/{map_id}/image:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/map_id'
delete:
description: Delete Site Map Image
operationId: deleteSiteMapImage
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: deleteSiteMapImage
tags:
- Sites Maps
post:
description: Add image map is a multipart POST which has an file (Image) and an optional json parameter
operationId: addSiteMapImage
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/image_import'
description: Request Body
responses:
'200':
$ref: '#/components/responses/OK'
'400':
$ref: '#/components/responses/HTTP400'
'401':
$ref: '#/components/responses/HTTP401'
'403':
$ref: '#/components/responses/HTTP403'
'404':
$ref: '#/components/responses/HTTP404'
'429':
$ref: '#/components/responses/HTTP429'
summary: addSiteMapImage
tags:
- Sites Maps
/api/v1/sites/{site_id}/maps/{map_id}/replace:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/map_id'
post:
description: 'Replace Map Image
This works like an PUT where the image will be replaced. If transform is provided, all the locations of the objects on the map (AP, Zone, Vbeacon, Beacon) will be transformed as well (relative to the new Map)'
operationId: replaceSiteMapImage
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/map_site_replace_file'
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: replaceSiteMapImage
tags:
- Sites Maps
/api/v1/sites/{site_id}/maps/{map_id}/set_map:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/map_id'
post:
description: "This API can be used to assign a list of AP Macs associated with site_id to the specified map_id. Note that map_id must be associated with corresponding site_id. This API obeys the following rules \n1. if AP is unassigned to any Map, it gets associated with map_id \n2. Any moved APs are returned in the response \n3. If the AP is considered a locked AP, no action will be taken"
operationId: bulkAssignSiteApsToMap
requestBody:
content:
application/json:
examples:
Example:
value:
macs:
- 5c5b35000001
- 5c5b35584a6f
schema:
$ref: '#/components/schemas/mac_addresses'
responses:
'200':
$ref: '#/components/responses/SetDevicesMap'
'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: bulkAssignSiteApsToMap
tags:
- Sites Maps
/api/v1/sites/{site_id}/maps/{map_id}/wayfinding/import:
parameters:
- $ref: '#/components/parameters/site_id'
- $ref: '#/components/parameters/map_id'
post:
description: This imports the vendor map meta data into the Map JSON. This is required by the SDK and App in order to access/render the vendor Map properly.
operationId: importSiteWayfindings
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/wayfinding_import_json'
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: importSiteWayfindings
tags:
- Sites Maps
components:
schemas:
response_set_devices_map_moved:
items:
examples:
- 5c5b35000001
type: string
type: array
map_import_json:
additionalProperties: false
properties:
import_all_floorplans:
default: false
type: boolean
import_height:
default: true
type: boolean
import_orientation:
default: true
type: boolean
vendor_name:
$ref: '#/components/schemas/map_import_json_vendor_name'
required:
- vendor_name
type: object
map_site_import_file:
additionalProperties: false
properties:
auto_deviceprofile_assignment:
description: Whether to auto assign device to deviceprofile by name
examples:
- true
type: boolean
csv:
contentMediaType: application/octet-stream
description: CSV file for ap name mapping, optional
type: string
file:
contentMediaType: application/octet-stream
description: Ekahau or ibwave file
type: string
json:
$ref: '#/components/schemas/map_import_json'
type: object
response_map_import_summary:
additionalProperties: false
properties:
num_ap_assigned:
type: integer
num_inv_assigned:
type: integer
num_map_assigned:
type: integer
required:
- num_ap_assigned
- num_map_assigned
- num_inv_assigned
type: object
map_wall_path_nodes:
items:
$ref: '#/components/schemas/map_node'
minItems: 0
type: array
map_geofence_vertices:
description: List of vertices defining the geofence
items:
$ref: '#/components/schemas/map_geofence_vertice'
type: array
map_geofences:
description: List of geofences for the map
items:
$ref: '#/components/schemas/map_geofence'
type: array
map_wall_path:
additionalProperties: false
description: JSON blob for wall definition (same format as wayfinding_path)
properties:
coordinate:
examples:
- actual
type: string
nodes:
$ref: '#/components/schemas/map_wall_path_nodes'
type: object
map_sitesurvey_path_items:
additionalProperties: false
properties:
coordinate:
examples:
- actual
type: string
id:
$ref: '#/components/schemas/id'
name:
examples:
- Default
type: string
nodes:
$ref: '#/components/schemas/map_sitesurvey_path_items_nodes'
type: object
latlng_br:
additionalProperties: false
description: When type=google, latitude / longitude of the bottom-right corner
properties:
lat:
type: string
lng:
type: string
type: object
map_sitesurvey_path_items_nodes:
items:
$ref: '#/components/schemas/map_node'
minItems: 0
type: array
map_site_replace_file_json:
additionalProperties: false
properties:
transform:
$ref: '#/components/schemas/map_site_replace_file_json_transform'
type: object
latlng_tl:
additionalProperties: false
description: When type=google, latitude / longitude of the top-left corner
properties:
lat:
type: string
lng:
type: string
type: object
response_http401:
additionalProperties: false
properties:
detail:
examples:
- Authentication credentials were not provided.
type: string
type: object
map_import_json_vendor_name:
description: 'enum: `ekahau`, `ibwave`'
enum:
- ekahau
- ibwave
examples:
- ekahau
type: string
map_micello_vendor_name:
default: micello
description: 'The vendor ‘micello’. enum: `micello`'
enum:
- micello
type: string
map_node_position:
additionalProperties: false
properties:
x:
examples:
- 746
format: double
type: number
y:
examples:
- 104
format: double
type: number
required:
- x
- y
type: object
response_map_import_ap_action:
description: 'enum: `assigned-named-placed`, `assigned-placed`, `ignored`, `named-placed`, `placed`'
enum:
- assigned-named-placed
- assigned-placed
- ignored
- named-placed
- placed
type: string
map_jibestream_vendor_name:
default: jibestream
description: 'The vendor ‘jibestream’. enum: `jibestream`'
enum:
- jibestream
type: string
map_wayfinding_micello:
additionalProperties: false
properties:
account_key:
examples:
- adasdf
type: string
default_level_id:
examples:
- 5
type: integer
map_id:
examples:
- c660f81dd250c
type: string
type: object
map_geofence_vertice:
additionalProperties: false
properties:
X:
description: X coordinate
examples:
- 700
type: number
Y:
description: Y coordinate
examples:
- 100
type: number
type: object
map_view:
description: 'if `type`==`google`. enum: `hybrid`, `roadmap`, `satellite`, `terrain`'
enum:
- hybrid
- roadmap
- satellite
- terrain
type:
- string
- 'null'
created_time:
description: When the object has been created, in epoch
format: double
readOnly: true
type: number
mac_addresses_macs:
examples:
- - 683b679ac024
items:
type: string
minItems: 1
type: array
uniqueItems: true
map_wayfinding:
additionalProperties: false
description: Properties related to wayfinding
properties:
micello:
$ref: '#/components/schemas/map_wayfinding_micello'
snap_to_path:
type: boolean
type: object
image_import:
additionalProperties: false
properties:
file:
contentMediaType: application/octet-stream
description: Binary file
type: string
json:
type: string
required:
- file
type: object
map_micello:
additionalProperties: false
properties:
account_key:
description: Account key that has access to the map
examples:
- null
type: string
default_level_id:
description: Micello floor/level id
examples:
- 5
type: integer
map_id:
description: Micello map id
examples:
- 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
format: uuid
type: string
vendor_name:
$ref: '#/components/schemas/map_micello_vendor_name'
required:
- vendor_name
- account_key
- map_id
- default_level_id
type: object
map_sitesurvey_path:
description: Sitesurvey_path
items:
$ref: '#/components/schemas/map_sitesurvey_path_items'
minItems: 0
type: array
mac_addresses:
properties:
macs:
$ref: '#/components/schemas/mac_addresses_macs'
required:
- macs
type: object
maps:
items:
$ref: '#/components/schemas/map'
type: array
response_map_import:
additionalProperties: false
properties:
aps:
$ref: '#/components/schemas/response_map_import_aps'
floorplans:
$ref: '#/components/schemas/response_map_import_floorplans'
for_site:
readOnly: true
type: boolean
site_id:
$ref: '#/components/schemas/site_id'
summary:
$ref: '#/components/schemas/response_map_import_summary'
required:
- site_id
- aps
- floorplans
- summary
type: object
map_wayfinding_path_nodes:
items:
$ref: '#/components/schemas/map_node'
minItems: 0
type: array
response_map_import_ap:
additionalProperties: false
properties:
action:
$ref: '#/components/schemas/response_map_import_ap_action'
floorplan_id:
format: uuid
type: string
height:
format: double
type: number
mac:
type: string
map_id:
format: uuid
type: string
orientation:
type: integer
reason:
type: string
required:
- mac
- action
- map_id
- floorplan_id
- orientation
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
map_geofence:
additionalProperties: false
properties:
name:
description: Name of the geofence
examples:
- example
type: string
vertices:
$ref: '#/components/schemas/map_geofence_vertices'
type: object
map_node:
additionalProperties: false
description: Nodes on maps
properties:
edges:
additionalProperties:
type: string
examples:
- N1: '1'
type: object
name:
examples:
- N1
type: string
position:
$ref: '#/components/schemas/map_node_position'
required:
- name
type: object
org_id:
examples:
- a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
format: uuid
readOnly: true
type: string
response_set_devices_map:
additionalProperties: false
properties:
locked:
$ref: '#/components/schemas/response_set_devices_map_locked'
moved:
$ref: '#/components/schemas/response_set_devices_map_moved'
type: object
id:
description: Unique ID of the object instance in the Mist Organization
examples:
- 53f10664-3ce8-4c27-b382-0ef66432349f
format: uuid
readOnly: true
type: string
response_set_devices_map_locked:
items:
examples:
- 5c5b35584a6f
type: string
type: array
map_type:
default: image
description: 'enum: `google`, `image`'
enum:
- google
- image
examples:
- image
type: string
response_http403:
additionalProperties: false
properties:
detail:
examples:
- You do not have permission to perform this action.
type: string
type: object
wayfinding_import_json:
oneOf:
- $ref: '#/components/schemas/map_jibestream'
- $ref: '#/components/schemas/map_micello'
map_jibestream:
additionalProperties: false
properties:
client_id:
description: Client id
examples:
- 199d6770-0f6f-407a-9bd5-fc33c7840194
format: uuid
type: string
client_secret:
description: Client secret
examples:
- /9Nog3yDzcYj0bY91XJZQLCt+m9DXaIVhx+Ghk3ddd
format: password
type: string
customer_id:
description: Jibestream customer record id
examples:
- 123
type: integer
endpoint_url:
description: Map contents endpoint host
examples:
- https://api.jibestream.com
type: string
map_id:
description: Jibestream map id
examples:
- b069b358-4c97-5319-1f8c-7c5ca64d6ab1
format: uuid
type: string
mmpp:
description: Millimeter per pixel
examples:
- 223
type: integer
ppm:
description: Pixel per meter, same as the map JSON value.
examples:
- 4
type: number
vendor_name:
$ref: '#/components/schemas/map_jibestream_vendor_name'
venue_id:
description: Venue or organization id
examples:
- 123
type: integer
required:
- vendor_name
- venue_id
- map_id
- ppm
- client_id
- client_secret
- customer_id
- endpoint_url
- mmpp
type: object
response_map_import_floorplans:
items:
$ref: '#/components/schemas/response_map_import_floorplan'
type: array
uniqueItems: true
map_wayfinding_path:
additionalProperties: false
description: JSON blob for wayfinding (using Dijkstra’s algorithm)
properties:
coordinate:
examples:
- actual
type: string
nodes:
$ref: '#/components/schemas/map_wayfinding_path_nodes'
type: object
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_map_import_aps:
items:
$ref: '#/components/schemas/response_map_import_ap'
type: array
uniqueItems: true
response_http400:
additionalProperties: false
properties:
detail:
examples:
- 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
type: string
type: object
map_site_replace_file:
additionalProperties: false
properties:
file:
contentMediaType: application/octet-stream
type: string
json:
$ref: '#/components/schemas/map_site_replace_file_json'
required:
- file
type: object
response_map_import_floorplan:
additionalProperties: false
properties:
action:
type: string
id:
$ref: '#/components/schemas/id'
map_id:
format: uuid
type: string
name:
type: string
reason:
type: string
required:
- id
- name
- action
- map_id
type: object
map:
description: Map
properties:
created_time:
$ref: '#/components/schemas/created_time'
flags:
additionalProperties:
type: integer
description: Name/val pair objects for location engine to use
examples:
- assetHoldTime: 5
storeTime: 10
readOnly: true
type: object
for_site:
readOnly: true
type: boolean
geofences:
$ref: '#/components/schemas/map_geofences'
group_idx:
description: maps grouping, typically used for floor, optional
examples:
- 1
type: integer
group_name:
description: maps grouping, optional
examples:
- East Wing
type: string
height:
description: When type=image, height of the image map
examples:
- 1500
type: integer
height_m:
format: double
type: number
id:
$ref: '#/components/schemas/id'
latlng_br:
$ref: '#/components/schemas/latlng_br'
latlng_tl:
$ref: '#/components/schemas/latlng_tl'
locked:
default: false
description: Whether this map is considered locked down
type: boolean
modified_time:
$ref: '#/components/schemas/modified_time'
name:
description: The name of the map
examples:
- Mist Office
type: string
occupancy_limit:
type: integer
org_id:
$ref: '#/components/schemas/org_id'
orientation:
default: 0
description: Orientation of the map, 0 means up is north, 90 means up is west
examples:
- 30
maximum: 359
minimum: 0
type: integer
origin_x:
description: User-annotated X origin, pixels
examples:
- 35
type: integer
origin_y:
description: User-annotated Y origin, pixels
examples:
- 60
type: integer
ppm:
description: When type=image, pixels per meter
examples:
- 40.94
type: number
site_id:
$ref: '#/components/schemas/site_id'
sitesurvey_path:
$ref: '#/components/schemas/map_sitesurvey_path'
thumbnail_url:
description: When type=image, the url for the thumbnail image / preview
examples:
- https://url/to/image.png
readOnly: true
type: string
type:
$ref: '#/components/schemas/map_type'
url:
description: When type=image, the url
examples:
- https://url/to/image.png
readOnly: true
type: string
view:
$ref: '#/components/schemas/map_view'
wall_path:
$ref: '#/components/schemas/map_wall_path'
wayfinding:
$ref: '#/components/schemas/map_wayfinding'
wayfinding_path:
$ref: '#/components/schemas/map_wayfinding_path'
width:
description: When type=image, width of the image map
examples:
- 1250
type: integer
width_m:
format: double
type: number
type: object
modified_time:
description: When the object has been modified for the last time, in epoch
format: double
readOnly: true
type: number
map_site_replace_file_json_transform:
additionalProperties: false
description: If `transform` is provided, all the locations of the objects on the map (AP, Zone, Vbeacon, Beacon) will be transformed as well (relative to the new Map)
properties:
rotation:
default: 0
description: Whether to rotate the replacing image, in degrees
type: number
scale:
default: 1
description: Whether to scale the replacing image
examples:
- 0.98
type: number
x:
default: 0
description: Where the (0, 0) of the new image is relative to the original map
examples:
- 3.16
format: double
type: number
y:
default: 0
description: Where the (0, 0) of the new image is relative to the original map
examples:
- 12
format: double
type: number
type: object
responses:
SetDevicesMap:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/SetDevicesMapExample'
schema:
$ref: '#/components/schemas/response_set_devices_map'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/SetDevicesMapExample'
schema:
$ref: '#/components/schemas/response_set_devices_map'
description: OK
MapsArray:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/MapsArrayExample'
schema:
$ref: '#/components/schemas/maps'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/MapsArrayExample'
schema:
$ref: '#/components/schemas/maps'
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
OK:
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
MapImport:
content:
application/json:
examples:
Assigned And Placed:
$ref: '#/components/examples/MapImportAssignedAndPlaced'
Assigned Named And Placed:
$ref: '#/components/examples/MapImportAssignedNamedAndPlaced'
Placed:
$ref: '#/components/examples/MapImportPlaced'
schema:
$ref: '#/components/schemas/response_map_import'
application/vnd.api+json:
examples:
Assigned And Placed:
$ref: '#/components/examples/MapImportAssignedAndPlaced'
Assigned Named And Placed:
$ref: '#/components/examples/MapImportAssignedNamedAndPlaced'
Placed:
$ref: '#/components/examples/MapImportPlaced'
schema:
$ref: '#/components/schemas/response_map_import'
description: OK
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
Map:
content:
application/json:
schema:
$ref: '#/components/schemas/map'
application/vnd.api+json:
schema:
$ref: '#/components/schemas/map'
description: OK
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
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
examples:
HTTP403Example:
value:
detail: You do not have permission to perform this action.
MapImportAssignedNamedAndPlaced:
value:
aps:
- action: assigned-named-placed
floorplan_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
mac: 5c5b35000001
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
orientation: 45
floorplans:
- action: imported
id: cbdb7f0b-3be0-4872-88f9-58790b509c23
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
name: map1
site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
summary:
num_ap_assigned: 1
num_inv_assigned: 1
num_map_assigned: 1
SetDevicesMapExample:
value:
locked:
- 5c5b35584a6f
moved:
- 5c5b35000001
HTTP429Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
MapImportPlaced:
value:
aps:
- action: placed
floorplan_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
height: 3
mac: 5c5b35000001
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
orientation: 45
floorplans:
- action: imported
id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
name: map1
site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
summary:
num_ap_assigned: 1
num_inv_assigned: 1
num_map_assigned: 1
HTTP400Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
MapsArrayExample:
value:
- created_time: 0
flags: {}
group_idx: 1
group_name: East Wing
height: 0
height_m: 0
id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
latlng_br:
lat: string
lng: string
latlng_tl:
lat: string
lng: string
locked: true
modified_time: 0
name: string
occupancy_limit: 0
org_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
orientation: 0
origin_x: 0
origin_y: 0
ppm: 0
site_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
sitesurvey_path:
- coordinate: string
id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
name: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
thumbnail_url: string
type: image
url: string
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
map_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
snap_to_path: true
wayfinding_path:
coordinate: string
nodes:
- edges:
N2: string
name: string
position:
x: 0
y: 0
width: 0
width_m: 0
HTTP401Example:
value:
detail: Authentication credentials were not provided.
MapImportAssignedAndPlaced:
value:
aps:
- action: assigned-placed
floorplan_id: 6f4bf402-45f9-2a56-6c8b-7f83d3bc98e9
height: 3
mac: 5c5b35000001
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
orientation: 45
floorplans:
- action: imported
id: cbdb7f0b-3be0-4872-88f9-58790b509c23
map_id: 845a23bf-bed9-e43c-4c86-6fa474be7ae5
name: map1
site_id: 4ac1dcf4-9d8b-7211-65c4-057819f0862b
summary:
num_ap_assigned: 1
num_inv_assigned: 1
num_map_assigned: 1
parameters:
map_id:
in: path
name: map_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
page:
in: query
name: page
schema:
default: 1
minimum: 1
type: integer
site_id:
in: path
name: site_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
limit:
in: query
name: limit
schema:
default: 100
minimum: 0
type: integer
securitySchemes:
apiToken:
description: "Like many other API providers, it’s also possible to generate API Tokens to be used (in HTTP Header) for authentication. An API token ties to a Admin with equal or less privileges.\n\n**Format**:\n API Token value format is `Token {apitoken}`\n\n**Notes**:\n* an API token generated for a specific admin has the same privilege as the user\n* an API token will be automatically removed if not used for > 90 days\n* SSO admins cannot generate these API tokens. Refer Org level API tokens which can have privileges of a specific Org/Site for more information."
in: header
name: Authorization
type: apiKey
basicAuth:
description: While our current UI uses Session / Cookie-based authentication, it’s also possible to do Basic Auth.
scheme: basic
type: http
csrfToken:
description: "This protects the website against [Cross Site Request Forgery](https://en.wikipedia.org/wiki/Cross-site_request_forgery), all the POST / PUT / DELETE APIs needs to have CSRF token in the AJAX Request header when using Login/Password authentication (with or without MFA)\n\n\nThe CSRF Token is sent back by Mist in the Cookies from the Login Response API Call:\n`cookies[csrftoken]` \n\nThe CSRF Token must be added in the HTTP Request Headers:\n```\nX-CSRFToken: vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx\n```"
in: header
name: X-CSRFToken
type: apiKey