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 Admins Login 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: 'Login Endpoints when using Login/Password authentication, with or without 2FA. If the Login/Password authentication is successful, Mist will add a `csrftoken` cookie that must be added into the later API Requests (please see [csrfToken (Custom Header Signature)]($h/__auth_CsrfToken))' name: Admins Login paths: /api/v1/login: post: description: "Log in with email/password.\nWhen 2FA is enabled, there are two ways to login:\n1. login with two_factor token (with Google Authenticator, etc) \n2. login with email/password, generate the token, and use /login/two_factor with the token" operationId: login requestBody: content: application/json: examples: with-2FA: value: email: test@mistsys.com password: foryoureyesonly two_factor: '123456' without-2FA: value: email: test@mistsys.com password: foryoureyesonly schema: $ref: '#/components/schemas/login' responses: '200': $ref: '#/components/responses/LoginSuccess' '400': $ref: '#/components/responses/LoginFailure' summary: login tags: - Admins Login /api/v1/login/two_factor: post: description: Send 2FA Code operationId: twoFactor requestBody: content: application/json: examples: Example: value: two_factor: '123456' schema: $ref: '#/components/schemas/two_factor_string' responses: '200': $ref: '#/components/responses/OK' '400': $ref: '#/components/responses/HTTP400' '401': description: two_factor code is incorrect or the user hasn't login yet '403': $ref: '#/components/responses/HTTP403' '404': description: The user doesn't have 2FA enabled '429': $ref: '#/components/responses/HTTP429' summary: twoFactor tags: - Admins Login components: responses: LoginFailure: content: application/json: examples: Example: $ref: '#/components/examples/LoginFailureExample' schema: $ref: '#/components/schemas/response_login_failure' application/vnd.api+json: examples: Example: $ref: '#/components/examples/LoginFailureExample' schema: $ref: '#/components/schemas/response_login_failure' description: Login Failed 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 LoginSuccess: content: application/json: examples: 2FA-required: $ref: '#/components/examples/LoginSuccess2FArequired' OK: $ref: '#/components/examples/LoginSuccessOK' schema: $ref: '#/components/schemas/response_login_success' application/vnd.api+json: examples: 2FA-required: $ref: '#/components/examples/LoginSuccess2FArequired' OK: $ref: '#/components/examples/LoginSuccessOK' schema: $ref: '#/components/schemas/response_login_success' description: Login Success headers: Set-Cookie: description: Session Cookie if login/password authentication is successful schema: examples: - csrftoken=vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx; expires=Tue, 15-Mar-2016 19:47:20 GMT; Max-Age=31449600; Path=/ type: string 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 examples: LoginSuccess2FArequired: value: email: test@mistsys.com two_factor_passed: false two_factor_required: true LoginSuccessOK: value: {} 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 LoginFailureExample: value: detail: sso admin login needs to be initiated by IdP forward_url: https://my.sso/idp_sso_url schemas: response_http403: additionalProperties: false properties: detail: examples: - You do not have permission to perform this action. type: string type: object response_login_success: additionalProperties: false properties: email: type: string two_factor_passed: type: boolean two_factor_required: type: boolean type: object response_login_failure: additionalProperties: false properties: detail: type: string forward_url: type: string required: - detail type: object response_http400: additionalProperties: false properties: detail: examples: - 'JSON parse error - Expecting value: line 5 column 8 (char 56)' type: string 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 login: properties: email: examples: - test@mistsys.com type: string password: examples: - foryoureyesonly type: string two_factor: examples: - '123456' type: string required: - email - password type: object two_factor_string: properties: two_factor: examples: - '123456' type: string required: - two_factor type: object 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