Mist Sites Auto Map Assignment API
Auto Map Assignment allows devices to be automatically assigned to maps based on their location data. These API calls can be used to manage, apply, and clear auto map assignments for devices at the site level.
Auto Map Assignment allows devices to be automatically assigned to maps based on their location data. These API calls can be used to manage, apply, and clear auto map assignments for devices at the site level.
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 Sites Auto Map Assignment 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: Auto Map Assignment allows devices to be automatically assigned to maps based on their location data. These API calls can be used to manage, apply, and clear auto map assignments for devices at the site level.
name: Sites Auto Map Assignment
paths:
/api/v1/sites/{site_id}/apply_auto_map_assignment:
parameters:
- $ref: '#/components/parameters/site_id'
post:
description: Apply (accept) auto map assignment results for a site. Devices are associated with their assigned maps. Omit `map_ids` or provide an empty list to accept all pending assignments; provide specific `map_ids` for a partial accept.
operationId: applySiteAutoMapAssignment
requestBody:
content:
application/json:
examples:
Accept_All:
value: {}
Accept_Specific_Maps:
value:
map_ids:
- d3c42998-9012-4859-9743-6b9bee475309
- f7a21456-7891-4abc-def0-123456789abc
schema:
$ref: '#/components/schemas/auto_map_assignment_request'
description: Request Body
responses:
'200':
$ref: '#/components/responses/AutoMapAssignmentApply'
'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: applySiteAutoMapAssignment
tags:
- Sites Auto Map Assignment
/api/v1/sites/{site_id}/auto_map_assignment:
parameters:
- $ref: '#/components/parameters/site_id'
delete:
description: Cancel an in-progress auto map assignment operation for the site. Validates that auto map assignment is currently running, notifies all APs to fetch new configuration, and sends a cancel command to the orchestration service.
operationId: cancelSiteAutoMapAssignment
responses:
'200':
$ref: '#/components/responses/OK'
'400':
description: Auto map assignment not in progress
'401':
$ref: '#/components/responses/HTTP401'
'403':
$ref: '#/components/responses/HTTP403'
'404':
$ref: '#/components/responses/HTTP404'
'429':
$ref: '#/components/responses/HTTP429'
summary: cancelSiteAutoMapAssignment
tags:
- Sites Auto Map Assignment
get:
description: Get the current status of auto map assignment for the site.
operationId: getSiteAutoMapAssignmentStatus
responses:
'200':
$ref: '#/components/responses/AutoMapAssignmentInfo'
'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: getSiteAutoMapAssignmentStatus
tags:
- Sites Auto Map Assignment
post:
description: 'Start the auto map assignment process for a site. The service automatically assigns APs to maps based on BLE ranging data and requires at least 3 APs with compatible firmware and model support for BLE.
Repeated POST requests while a site assignment is still running will be rejected.'
operationId: startSiteAutoMapAssignment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/auto_map_assignment'
description: Request Body
responses:
'200':
$ref: '#/components/responses/AutoMapAssignment'
'400':
description: Auto map assignment already in progress
'401':
$ref: '#/components/responses/HTTP401'
'403':
$ref: '#/components/responses/HTTP403'
'404':
$ref: '#/components/responses/HTTP404'
'429':
$ref: '#/components/responses/HTTP429'
summary: startSiteAutoMapAssignment
tags:
- Sites Auto Map Assignment
/api/v1/sites/{site_id}/clear_auto_map_assignment:
parameters:
- $ref: '#/components/parameters/site_id'
post:
description: Clear (reject) auto map assignment results for a site without applying them. The cached assignment results are cleared. Omit `map_ids` or provide an empty list to reject all pending assignments; provide specific `map_ids` for a partial reject.
operationId: clearSiteAutoMapAssignment
requestBody:
content:
application/json:
examples:
Clear_All:
value: {}
Clear_Specific_Maps:
value:
map_ids:
- d3c42998-9012-4859-9743-6b9bee475309
- f7a21456-7891-4abc-def0-123456789abc
schema:
$ref: '#/components/schemas/auto_map_assignment_request'
description: Request Body
responses:
'200':
$ref: '#/components/responses/AutoMapAssignmentClear'
'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: clearSiteAutoMapAssignment
tags:
- Sites Auto Map Assignment
components:
schemas:
auto_map_assignment_request:
additionalProperties: false
description: Request body for accepting or clearing pending map assignments
properties:
map_ids:
description: Optional list of specific map IDs to apply/clear. If not provided or empty, all pending map assignments are accepted/rejected.
items:
format: uuid
type: string
type: array
type: object
response_auto_map_assignment_devices:
additionalProperties:
$ref: '#/components/schemas/response_auto_map_assignment_device'
description: Contains the validation status of each device. The property key is the device MAC address.
type: object
auto_map_assignment:
additionalProperties: false
description: Request options for validating or starting automatic AP map assignment
properties:
dryrun:
default: false
description: If `true`, validates the site's APs without starting the map assignment process. Returns device validity and estimated runtime.
type: boolean
force_collection:
default: false
description: If `true`, forces data collection via orchestration. If `false`, attempts to use existing BLE data first.
type: boolean
type: object
response_http429:
additionalProperties: false
description: Standard HTTP 429 rate limit error response
properties:
detail:
description: Human-readable explanation of the rate limit error
examples:
- Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
type: string
type: object
response_http401:
additionalProperties: false
description: Standard HTTP 401 authentication error response
properties:
detail:
description: Human-readable explanation of the authentication error
examples:
- Authentication credentials were not provided.
type: string
type: object
response_auto_map_assignment_device:
additionalProperties: false
description: Per-device validation result for auto map assignment
properties:
reason:
description: Provides the reason for the status if the AP is invalid
type: string
valid:
description: Indicates whether the device meets requirements for auto map assignment
type: boolean
type: object
response_http403:
additionalProperties: false
description: Standard HTTP 403 permission error response
properties:
detail:
description: Human-readable explanation of the permission error
examples:
- You do not have permission to perform this action.
type: string
type: object
response_http400:
additionalProperties: false
description: Standard HTTP 400 bad request error response
properties:
detail:
description: Human-readable explanation of the bad request error
examples:
- 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
type: string
type: object
response_auto_map_assignment:
additionalProperties: false
description: Auto map assignment start response
properties:
devices:
$ref: '#/components/schemas/response_auto_map_assignment_devices'
description: Per-device validation results for auto map assignment, keyed by device MAC address
estimated_runtime:
description: Estimated runtime for the process in seconds
type: integer
reason:
description: Provides the reason for the status
type: string
started:
description: Indicates whether the auto map assignment process has started
type: boolean
valid:
description: Indicates whether the auto map assignment request is valid
type: boolean
type: object
response_auto_map_assignment_info_status:
description: "The status of auto map assignment for a given site. enum:\n * `not_started`: Auto map assignment has not been requested\n * `in_progress`: Auto map assignment is currently processing\n * `completed`: The auto map assignment process has completed\n * `error`: There was an error in the auto map assignment process"
enum:
- not_started
- in_progress
- completed
- error
type: string
response_auto_map_assignment_clear:
additionalProperties: false
description: Result returned after clearing auto map assignment candidates
properties:
message:
description: Human-readable description of the operation result
type: string
rejected_maps:
description: List of map IDs that were successfully rejected
items:
format: uuid
type: string
type: array
required:
- message
- rejected_maps
type: object
response_auto_map_assignment_info:
additionalProperties: false
description: Auto map assignment status response
properties:
est_time_left:
description: Only when `status`==`in_progress`, estimated seconds remaining
type: number
start_time:
description: Unix timestamp when auto map assignment was started
type: number
status:
$ref: '#/components/schemas/response_auto_map_assignment_info_status'
description: Current auto map assignment processing state
stop_time:
description: Only when `status`==`completed`, Unix timestamp when auto map assignment stopped
type: number
time_updated:
description: Unix timestamp when status was last updated
type: number
required:
- status
type: object
response_auto_map_assignment_apply:
additionalProperties: false
description: Result returned after applying accepted auto map assignments
properties:
accepted_maps:
description: List of map IDs that were successfully accepted
items:
format: uuid
type: string
type: array
message:
description: Human-readable description of the operation result
type: string
required:
- accepted_maps
- message
type: object
response_http404:
additionalProperties: false
description: Standard HTTP 404 not found error response
properties:
id:
description: Missing resource identifier, when the API includes one
type: string
type: object
responses:
OK:
description: OK
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
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
AutoMapAssignment:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/AutoMapAssignmentExample'
schema:
$ref: '#/components/schemas/response_auto_map_assignment'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/AutoMapAssignmentExample'
schema:
$ref: '#/components/schemas/response_auto_map_assignment'
description: OK
AutoMapAssignmentInfo:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/AutoMapAssignmentInfoExample'
schema:
$ref: '#/components/schemas/response_auto_map_assignment_info'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/AutoMapAssignmentInfoExample'
schema:
$ref: '#/components/schemas/response_auto_map_assignment_info'
description: OK
AutoMapAssignmentClear:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/AutoMapAssignmentClearExample'
schema:
$ref: '#/components/schemas/response_auto_map_assignment_clear'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/AutoMapAssignmentClearExample'
schema:
$ref: '#/components/schemas/response_auto_map_assignment_clear'
description: OK
AutoMapAssignmentApply:
content:
application/json:
examples:
Example:
$ref: '#/components/examples/AutoMapAssignmentApplyExample'
schema:
$ref: '#/components/schemas/response_auto_map_assignment_apply'
application/vnd.api+json:
examples:
Example:
$ref: '#/components/examples/AutoMapAssignmentApplyExample'
schema:
$ref: '#/components/schemas/response_auto_map_assignment_apply'
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
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
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
examples:
AutoMapAssignmentApplyExample:
value:
accepted_maps:
- d3c42998-9012-4859-9743-6b9bee475309
- f7a21456-7891-4abc-def0-123456789abc
message: 'Accepted map assignments for map_ids: [''d3c42998-9012-4859-9743-6b9bee475309'', ''f7a21456-7891-4abc-def0-123456789abc'']'
AutoMapAssignmentInfoExample:
value:
est_time_left: 280.5
start_time: 1678900062
status: in_progress
time_updated: 1678900100
HTTP403Example:
value:
detail: You do not have permission to perform this action.
HTTP400Example:
value:
detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
AutoMapAssignmentExample:
value:
devices:
5c5b35000001:
reason: Device meets the minimum requirements for auto map assignment
valid: true
5c5b35000002:
reason: Device meets the minimum requirements for auto map assignment
valid: true
5c5b35000003:
reason: Device meets the minimum requirements for auto map assignment
valid: true
estimated_runtime: 300
reason: Started auto map assignment
started: true
valid: true
HTTP429Example:
value:
detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
AutoMapAssignmentClearExample:
value:
message: 'Rejected map assignments for map_ids: [''d3c42998-9012-4859-9743-6b9bee475309'', ''f7a21456-7891-4abc-def0-123456789abc'']'
rejected_maps:
- d3c42998-9012-4859-9743-6b9bee475309
- f7a21456-7891-4abc-def0-123456789abc
HTTP401Example:
value:
detail: Authentication credentials were not provided.
parameters:
site_id:
in: path
name: site_id
required: true
schema:
examples:
- 000000ab-00ab-00ab-00ab-0000000000ab
format: uuid
type: string
securitySchemes:
apiToken:
description: "Preferred authentication method for automation and integrations. Send the API token in the HTTP `Authorization` header.\n\n**Format**:\n `Authorization: Token {apitoken}`\n\n**Notes**:\n* An API token generated for a specific admin has the same privileges as that admin\n* An API token is automatically removed if it is not used for more than 90 days\n* SSO admins cannot generate admin API tokens. Use organization API tokens when scoped Org/Site privileges are needed."
in: header
name: Authorization
type: apiKey
csrfToken:
description: 'Session-based authentication for browser or login/password flows. After a successful [Login](/#operations/login) request, Mist returns a `csrftoken` cookie. Send that value in the `X-CSRFToken` header on later API requests that use the login session.
**Format**:
```
X-CSRFToken: vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx
```
For automation, API Token authentication is preferred.'
in: header
name: X-CSRFToken
type: apiKey