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 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: 'Admin API calls can be used to create, manage or authenticate Mist administrators. To register administrators into an existing MSP account or Organization, please check: * [Invite Msp Admin](/#operations/inviteMspAdmin) * [Invite Org Admin](/#operations/inviteOrgAdmin)' name: Admins paths: /api/v1/invite/verify/{token}: parameters: - $ref: '#/components/parameters/token' post: description: '**Note**: another call to ```GET /api/v1/self``` is required to see the new set of privileges' operationId: verifyAdminInvite 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/InviteVerifyNotFound' '429': $ref: '#/components/responses/HTTP429' summary: verifyAdminInvite tags: - Admins /api/v1/register: post: description: "Register a new admin and his/her org\nAn email will also be sent to the user with a link to `/verify/register?token={token}`\n\n### reCAPTCHA\nGoogle reCAPTCHA is the choice to prevent bot registration\n\nIt needs this \n\n<script src='https://www.google.com/recaptcha/api.js' ></script>\n\nand this <div> in the desired place\n```html\n
\n```\n\nUse GET /api/v1/register/recaptcha to read the current setting.\nResponse example:\n```json\n{ \n \"flavor\": \"google\",\n \"required\": true, \n \"sitekey\": \"6LdAewsTAAAAAE25XKQhPEQ2FiMTft-WrZXQ5NUd\"\n}\n```\n\n### hCaptcha\nAlternative to reCAPTCHA is hCaptcha to prevent bot registration\n\nIt needs this script\n\n<script src='https://js.hcaptcha.com/1/api.js' async defer ></script>\n\nand this <div> in the desired place\n```html\n
\n```\n\nUse GET /api/v1/register/recaptcha?recaptcha_flavor=hcaptcha to read the current setting for hcaptcha with reply.\nResponse example:\n```json\n{\n \"flavor\": \"hcaptcha\",\n \"required\": true,\n \"sitekey\": \"6LdAewsTAAAAAE25XKQhPEQ2FiMTft-WrZXQ5NUd\"\n}\"\n```" operationId: registerNewAdmin requestBody: content: application/json: examples: Example: value: account_only: false allow_mist: false city: Cupertino country: United States email: test@mistsys.com first_name: John invite_code: MISTROCKS last_name: Smith org_name: Smith LLC password: foryoureyesonly recaptcha: string recaptcha_flavor: hcaptcha referer_invite_token: Dm2gtT8dwMeM4Bc2E8FLIaA96VHOjPat return_to: https://mist.zendesk.com/hc/quickstart.pdf state: California street_address: 1601 S De Anza Blvd Ste 248 street_address 2: 1601 S De Anza Blvd Ste 248 zipcode: '95014' schema: $ref: '#/components/schemas/admin_invite' 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: registerNewAdmin tags: - Admins /api/v1/register/recaptcha: get: description: Get Registration Information operationId: getAdminRegistrationInfo parameters: - in: query name: recaptcha_flavor schema: $ref: '#/components/schemas/recaptcha_flavor' responses: '200': $ref: '#/components/responses/Recaptcha' '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: getAdminRegistrationInfo tags: - Admins /api/v1/register/verify/{token}: parameters: - $ref: '#/components/parameters/token' post: description: Verify registration operationId: verifyRegistration responses: '200': $ref: '#/components/responses/VerifyRegisterTokenSuccess' '400': $ref: '#/components/responses/VerifyRegisterTokenAlreadyRegistered' '401': $ref: '#/components/responses/HTTP401' '403': $ref: '#/components/responses/HTTP403' '404': $ref: '#/components/responses/VerifyRegisterTokenInvalid' '429': $ref: '#/components/responses/HTTP429' summary: verifyRegistration tags: - Admins components: examples: InviteVerifyNotFoundInviteCreatedBySelf: value: detail: invite created by self RecaptchaGoogle: value: flavor: google required: true sitekey: 6LdAewsTAAAAAE25XKQhPEQ2FiMTft-WrZXQ5NUd VerifyRegisterTokenAlreadyRegisteredVerificationExpired: value: detail: expired 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 InviteVerifyNotFoundInvalidSecret: value: detail: invalid secret HTTP401Example: value: detail: Authentication credentials were not provided. VerifyRegisterTokenSuccesssuccessbutfailedtoapplytheinvitationautomatically: value: detail: password policy not met invite_not_applied: true min_length: 8 VerifyRegisterTokenAlreadyRegisteredAlreadyRegistered: value: detail: already registered VerifyRegisterTokenInvalidNotFound: value: detail: Not found. VerifyRegisterTokenSuccessSuccess: value: return_to: https://mist.zendesk.com/hc/quickstart.pdf RecaptchaHcaptcha: value: flavor: hcaptcha required: true sitekey: 6LdAewsTAAAAAE25XKQhPEQ2FiMTft-WrZXQ5NUd schemas: response_http403: additionalProperties: false properties: detail: examples: - You do not have permission to perform this action. type: string type: object response_http404: additionalProperties: false properties: id: type: string type: object response_detail_string: additionalProperties: false properties: detail: type: string type: object recaptcha: additionalProperties: false properties: flavor: $ref: '#/components/schemas/recaptcha_flavor' required: type: boolean sitekey: type: string type: object admin_invite: properties: account_only: default: false description: Skip creating initial setup if true type: boolean allow_mist: default: false description: Whether to allow Mist to look at this org type: boolean city: description: City of registering user examples: - Cupertino type: string country: description: Country/region name or ISO code of registering user examples: - United States type: string email: examples: - test@mistsys.com maxLength: 64 type: string first_name: examples: - John type: string invite_code: description: Required initially examples: - MISTROCKS type: string last_name: examples: - Smith type: string org_name: examples: - Smith LLC type: string password: examples: - foryoureyesonly format: password type: string recaptcha: description: reCAPTCHA , see https://www.google.com/recaptcha/ type: string recaptcha_flavor: $ref: '#/components/schemas/recaptcha_flavor' referer_invite_token: description: Invite token to apply after account creation examples: - Dm2gtT8dwMeM4Bc2E8FLIaA96VHOjPat type: string return_to: description: URL the user should be redirected back to examples: - https://mist.zendesk.com/hc/quickstart.pdf type: string state: description: State name or ISO code of registering user, optional (depends on country/region) examples: - CA type: string street_address: description: Street address of registering user examples: - 1601 S De Anza Blvd Ste 248 type: string street_address 2: description: Street address 2 of registering user examples: - 1601 S De Anza Blvd Ste 248 type: string zipcode: description: zipcode of registering user examples: - '95014' type: string required: - email - first_name - last_name - org_name - password - recaptcha 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 response_verify_token_success: additionalProperties: false properties: detail: type: string invite_not_applied: type: boolean min_length: type: integer return_to: type: string type: object response_http401: additionalProperties: false properties: detail: examples: - Authentication credentials were not provided. type: string type: object recaptcha_flavor: default: google description: 'flavor of the captcha. enum: `google`, `hcaptcha`' enum: - google - hcaptcha examples: - hcaptcha type: string responses: 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 VerifyRegisterTokenAlreadyRegistered: content: application/json: examples: Already Registered: $ref: '#/components/examples/VerifyRegisterTokenAlreadyRegisteredAlreadyRegistered' Verification Expired: $ref: '#/components/examples/VerifyRegisterTokenAlreadyRegisteredVerificationExpired' schema: $ref: '#/components/schemas/response_detail_string' application/vnd.api+json: examples: Already Registered: $ref: '#/components/examples/VerifyRegisterTokenAlreadyRegisteredAlreadyRegistered' Verification Expired: $ref: '#/components/examples/VerifyRegisterTokenAlreadyRegisteredVerificationExpired' schema: $ref: '#/components/schemas/response_detail_string' description: Response if verification expired or already registered 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 Recaptcha: content: application/json: examples: Google: $ref: '#/components/examples/RecaptchaGoogle' Hcaptcha: $ref: '#/components/examples/RecaptchaHcaptcha' schema: $ref: '#/components/schemas/recaptcha' application/vnd.api+json: examples: Google: $ref: '#/components/examples/RecaptchaGoogle' Hcaptcha: $ref: '#/components/examples/RecaptchaHcaptcha' schema: $ref: '#/components/schemas/recaptcha' description: Example response VerifyRegisterTokenInvalid: content: application/json: examples: Not Found: $ref: '#/components/examples/VerifyRegisterTokenInvalidNotFound' schema: $ref: '#/components/schemas/response_detail_string' application/vnd.api+json: examples: Not Found: $ref: '#/components/examples/VerifyRegisterTokenInvalidNotFound' schema: $ref: '#/components/schemas/response_detail_string' description: Response if secret is invalid 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 InviteVerifyNotFound: content: application/json: examples: Invalid Secret: $ref: '#/components/examples/InviteVerifyNotFoundInvalidSecret' Invite Created By Self: $ref: '#/components/examples/InviteVerifyNotFoundInviteCreatedBySelf' schema: $ref: '#/components/schemas/response_detail_string' application/vnd.api+json: examples: Invalid Secret: $ref: '#/components/examples/InviteVerifyNotFoundInvalidSecret' Invite Created By Self: $ref: '#/components/examples/InviteVerifyNotFoundInviteCreatedBySelf' schema: $ref: '#/components/schemas/response_detail_string' description: Not Found 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 VerifyRegisterTokenSuccess: content: application/json: examples: Success: $ref: '#/components/examples/VerifyRegisterTokenSuccessSuccess' success-but-failed-to-apply_the-invitation-automatically: $ref: '#/components/examples/VerifyRegisterTokenSuccesssuccessbutfailedtoapplytheinvitationautomatically' schema: $ref: '#/components/schemas/response_verify_token_success' application/vnd.api+json: examples: Success: $ref: '#/components/examples/VerifyRegisterTokenSuccessSuccess' success-but-failed-to-apply_the-invitation-automatically: $ref: '#/components/examples/VerifyRegisterTokenSuccesssuccessbutfailedtoapplytheinvitationautomatically' schema: $ref: '#/components/schemas/response_verify_token_success' description: OK headers: Set-Cookie: schema: examples: - csrftoken=vwvBuq9qkqaKh7lu8tNc0gkvBfEaLAmx; expires=Tue, 15-Mar-2016 19:47:20 GMT; Max-Age=31449600; Path=/ type: string parameters: token: in: path name: token required: true schema: type: string 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