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 Alarms 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: Alarms are triggered based on certain events. Alarms could be configured using an [Orgs Alarm Template]($h/Orgs%20Alarm%20Templates/_overview). name: Sites Alarms paths: /api/v1/sites/{site_id}/alarms/ack: parameters: - $ref: '#/components/parameters/site_id' post: description: Ack multiple Site Alarms operationId: AckSiteMultipleAlarms requestBody: content: application/json: schema: $ref: '#/components/schemas/alarm_ack' 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: AckSiteMultipleAlarms tags: - Sites Alarms /api/v1/sites/{site_id}/alarms/ack_all: parameters: - $ref: '#/components/parameters/site_id' post: description: 'Ack all Site Alarms **N.B.**: Batch size for multiple alarm ack and unack has to be less or or equal to 1000.' operationId: ackSiteAllAlarms requestBody: content: application/json: schema: $ref: '#/components/schemas/note_string' 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: ackSiteAllAlarms tags: - Sites Alarms /api/v1/sites/{site_id}/alarms/count: parameters: - $ref: '#/components/parameters/site_id' get: description: Count by Distinct Attributes of Site Alarms operationId: countSiteAlarms parameters: - description: Group by and count the alarms by some distinct field in: query name: distinct schema: $ref: '#/components/schemas/alarm_count_distinct' - description: Name of the admins who have acked the alarms; accepts multiple values separated by comma in: query name: ack_admin_name schema: type: string - in: query name: acked schema: type: boolean - description: Key-name of the alarms; accepts multiple values separated by comma in: query name: type schema: type: string - description: Alarm severity; accepts multiple values separated by comma in: query name: severity schema: type: string - description: Alarm group name; accepts multiple values separated by comma in: query name: group schema: type: string - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/duration' - $ref: '#/components/parameters/limit' responses: '200': $ref: '#/components/responses/Count' '400': $ref: '#/components/responses/HTTP400' '401': $ref: '#/components/responses/HTTP401' '403': $ref: '#/components/responses/HTTP403' '404': $ref: '#/components/responses/HTTP404' '429': $ref: '#/components/responses/HTTP429' summary: countSiteAlarms tags: - Sites Alarms /api/v1/sites/{site_id}/alarms/search: parameters: - $ref: '#/components/parameters/site_id' get: description: Search Site Alarms operationId: searchSiteAlarms parameters: - $ref: '#/components/parameters/alarm_group' - $ref: '#/components/parameters/alarm_severity' - description: Type of the alarm. Accepts multiple values separated by comma. Use [List Alarm Definitions](/#operations/listAlarmDefinitions) to get the list of possible alarm types. in: query name: type schema: examples: - infra_dhcp_failure,missing_vlan type: string - description: Name of the admins who have acked the alarms; accepts multiple values separated by comma in: query name: ack_admin_name schema: type: string - in: query name: acked schema: type: boolean - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/duration' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/search_after' responses: '200': $ref: '#/components/responses/AlarmsSearch' '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: searchSiteAlarms tags: - Sites Alarms /api/v1/sites/{site_id}/alarms/unack: parameters: - $ref: '#/components/parameters/site_id' post: description: Unack multiple Site Alarms operationId: unackSiteMultipleAlarms requestBody: content: application/json: schema: $ref: '#/components/schemas/alarm_ack' 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: unackSiteMultipleAlarms tags: - Sites Alarms /api/v1/sites/{site_id}/alarms/unack_all: parameters: - $ref: '#/components/parameters/site_id' post: description: 'Unack all Site Alarms **N.B.**: Batch size for multiple alarm ack and unack has to be less or or equal to 1000.' operationId: unackSiteAllAlarms requestBody: content: application/json: examples: Example: value: note: maintenance window schema: $ref: '#/components/schemas/note_string' 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: unackSiteAllAlarms tags: - Sites Alarms /api/v1/sites/{site_id}/alarms/{alarm_id}/ack: parameters: - $ref: '#/components/parameters/site_id' - $ref: '#/components/parameters/alarm_id' post: description: Ack Site Alarm operationId: ackSiteAlarm requestBody: content: application/json: schema: $ref: '#/components/schemas/note_string' 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: ackSiteAlarm tags: - Sites Alarms /api/v1/sites/{site_id}/alarms/{alarm_id}/unack: parameters: - $ref: '#/components/parameters/site_id' - $ref: '#/components/parameters/alarm_id' post: description: Unack Site Alarm operationId: unackSiteAlarm requestBody: content: application/json: schema: $ref: '#/components/schemas/note_string' 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: unackSiteAlarm tags: - Sites Alarms /api/v1/sites/{site_id}/subscriptions: parameters: - $ref: '#/components/parameters/site_id' delete: description: Unsubscribe to Site Alarms operationId: UnsubscribeSiteAlarms 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: UnsubscribeSiteAlarms tags: - Sites Alarms post: description: Subscribe to Site Alarms operationId: SubscribeSiteAlarms 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: SubscribeSiteAlarms tags: - Sites Alarms components: schemas: 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_count: additionalProperties: false properties: distinct: type: string end: type: integer limit: type: integer results: $ref: '#/components/schemas/count_results' start: type: integer total: type: integer required: - distinct - end - limit - results - start - total type: object alarm_bssids: description: List of BSSIDs items: examples: - Corp SSID type: string type: array response_http403: additionalProperties: false properties: detail: examples: - You do not have permission to perform this action. type: string type: object alarm_ack: properties: alarm_ids: $ref: '#/components/schemas/alarm_ack_alarm_ids' note: description: Some text note describing the intent examples: - maintenance window type: string required: - alarm_ids type: object count_results: items: $ref: '#/components/schemas/count_result' type: array uniqueItems: true alarm_switches: description: 'additional information: List of MACs of the switches' examples: - - ffeeddccbbaa - ffeeddccbbab items: type: string type: array count_result: additionalProperties: type: string properties: count: type: integer required: - count 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 timestamp: description: Epoch (seconds) format: double readOnly: true type: number alarm_hostnames: description: 'additional information: List of Hostnames of the devices (AP/Switch/Gateway)' examples: - - MC_DavidL - MCM_AP_33_Nishant items: type: string type: array alarm_status: description: 'enum: `open`, `resolved`' enum: - open - resolved type: string response_http400: additionalProperties: false properties: detail: examples: - 'JSON parse error - Expecting value: line 5 column 8 (char 56)' type: string type: object note_string: properties: note: description: Some text note describing the intent examples: - maintenance window type: string type: object alarm_severity: description: 'Severity of the alarm. enum: `critical`, `info`, `warn`' enum: - critical - info - warn type: string 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 alarm_gateways: description: 'additional information: List of MACs of the gateways' examples: - - ffeeddccbbaa - ffeeddccbbab items: type: string type: array alarm_ssids: description: List of SSIDs items: type: string type: array alarm_group: description: 'Alarm group. enum: `infrastructure`, `marvis`, `security`' enum: - infrastructure - marvis - security type: string alarm_count_distinct: default: type description: 'enum: `acked`, `group`, `severity`, `type`' enum: - acked - group - severity - type type: string alarm: additionalProperties: false description: Additional information per alarm type properties: ack_admin_id: description: UUID of the admin who acked the alarm examples: - 456b7016-a916-a4b1-78dd-72b947c152b7 format: uuid readOnly: true type: string ack_admin_name: description: Name & Email ID of the admin who acked the alarm examples: - Joe type: string acked: description: Whether the alarm is acked or not examples: - true type: boolean acked_time: description: Epoch (seconds) when the alarm was acked examples: - 1711031352 readOnly: true type: integer aps: $ref: '#/components/schemas/alarm_aps' bssids: $ref: '#/components/schemas/alarm_bssids' count: description: Number of incident within an alarm window examples: - 2 readOnly: true type: integer gateways: $ref: '#/components/schemas/alarm_gateways' group: description: Group of the alarm examples: - security type: string hostnames: $ref: '#/components/schemas/alarm_hostnames' id: $ref: '#/components/schemas/id' last_seen: description: Epoch (seconds) of the last incident/alarm within an alarm window examples: - 1711031774 format: double readOnly: true type: number note: description: Text describing the alarm type: string org_id: $ref: '#/components/schemas/org_id' resolved_time: description: Epoch (seconds) of the resolved_time for the alarm type: integer severity: description: Severity of the alarm examples: - critical type: string site_id: $ref: '#/components/schemas/site_id' ssids: $ref: '#/components/schemas/alarm_ssids' status: $ref: '#/components/schemas/alarm_status' switches: $ref: '#/components/schemas/alarm_switches' timestamp: $ref: '#/components/schemas/timestamp' type: description: Key-name of the alarm type examples: - rogue_client readOnly: true type: string required: - id - timestamp - last_seen - type - group - severity - count type: object alarm_aps: description: 'additional information: List of MACs of the APs' examples: - - ffeeddccbbaa - ffeeddccbbab items: type: string type: array alarm_search_result: additionalProperties: false properties: component: description: Component of the alarm type: string end: examples: - 1711035686 type: integer limit: examples: - 10 type: integer next: examples: - /api/v1/orgs/b3b9f5e6-67b1-4112-9b4c-6824c565eaeb/alarms/search?end=1711035686&limit=10&search_after=%5B1711031354000%2C+%2256bfa7af-b2db-43ee-a4c8-9b820bbba0e1%22%5D&start=1710949286 type: string page: examples: - 1 type: integer results: $ref: '#/components/schemas/alarm_search_results' start: examples: - 1710949286 type: integer total: examples: - 232 type: integer required: - start - end - limit - total - results type: object alarm_ack_alarm_ids: examples: - - ccb8c94d-ca56-4075-932f-1f2ab444ff2c - 98ff4a3d-ec9b-4138-a42e-54fc3335179d items: format: uuid type: string type: array alarm_search_results: items: $ref: '#/components/schemas/alarm' type: array response_http401: additionalProperties: false properties: detail: examples: - Authentication credentials were not provided. type: string type: object org_id: examples: - a97c1b22-a4e9-411e-9bfd-d8695a0f9e61 format: uuid readOnly: true type: string examples: CountExample: value: distinct: string end: 0 limit: 0 results: - count: 0 property: string start: 0 total: 0 HTTP400Example: value: detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)' HTTP403Example: value: detail: You do not have permission to perform this action. HTTP429Example: value: detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold HTTP401Example: value: detail: Authentication credentials were not provided. parameters: start: description: Start time (epoch timestamp in seconds, or relative string like "-1d", "-1w") in: query name: start schema: type: string sort: description: On which field the list should be sorted, -prefix represents DESC order in: query name: sort schema: default: timestamp examples: - -site_id type: string duration: description: Duration like 7d, 2w in: query name: duration schema: default: 1d examples: - 10m type: string search_after: description: Pagination cursor for retrieving subsequent pages of results. This value is automatically populated by Mist in the `next` URL from the previous response and should not be manually constructed. in: query name: search_after schema: type: string end: description: End time (epoch timestamp in seconds, or relative string like "-1d", "-2h", "now") in: query name: end schema: type: string alarm_id: in: path name: alarm_id required: true schema: examples: - 000000ab-00ab-00ab-00ab-0000000000ab format: uuid type: string alarm_severity: description: 'Severity of the alarm. enum: `critical`, `info`, `warn`' in: query name: severity schema: $ref: '#/components/schemas/alarm_severity' site_id: in: path name: site_id required: true schema: examples: - 000000ab-00ab-00ab-00ab-0000000000ab format: uuid type: string alarm_group: description: "Alarm group. enum: `infrastructure`, `marvis`, `security`. \nThe `marvis` group is used to retrieve AI-driven network issue detections. \nKnown Marvis alarm types include: `bad_cable`, `bad_wan_uplink`, `dns_failure`, \n`arp_failure`, `auth_failure`, `dhcp_failure`, `missing_vlan`, \n`negotiation_mismatch`, `port_flap`. Results include resolution status \n(`status`, `resolved_time`) and affected entity details.\"" in: query name: group schema: $ref: '#/components/schemas/alarm_group' limit: in: query name: limit schema: default: 100 minimum: 0 type: integer responses: AlarmsSearch: content: application/json: schema: $ref: '#/components/schemas/alarm_search_result' application/vnd.api+json: schema: $ref: '#/components/schemas/alarm_search_result' 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 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 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 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 Count: content: application/json: examples: Example: $ref: '#/components/examples/CountExample' schema: $ref: '#/components/schemas/response_count' application/vnd.api+json: examples: Example: $ref: '#/components/examples/CountExample' schema: $ref: '#/components/schemas/response_count' description: Result of Count 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