Mist Admins API

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)

OpenAPI Specification

mist-admins-api-openapi.yml Raw ↑
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 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: '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: Accept an administrator invite using the invite verification token from the invite email. This public endpoint does not require authentication. After a successful verification, call [Get Self](/#operations/getSelf) to refresh the authenticated admin profile and retrieve the newly granted 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'
      security: []
      summary: verifyAdminInvite
      tags:
      - Admins
  /api/v1/register:
    post:
      description: 'Register a new administrator account and initial organization. This public endpoint does not require authentication. Mist sends a verification email containing a link such as `/verify/register?token={token}`; use [Verify Registration](/#operations/verifyRegistration) to complete registration with that token.


        Use [Get Registration Information](/#operations/getAdminRegistrationInfo) before submitting this request to determine whether CAPTCHA is required, which CAPTCHA provider to render, and which public site key to use. If CAPTCHA is required, include the provider response token in `recaptcha` and the provider name in `recaptcha_flavor`.'
      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'
      security: []
      summary: registerNewAdmin
      tags:
      - Admins
  /api/v1/register/recaptcha:
    get:
      description: Return the public CAPTCHA settings required for administrator registration. This public endpoint does not require authentication. Use the returned `flavor`, `required`, and `sitekey` values to render the correct CAPTCHA challenge before calling [Register New Admin](/#operations/registerNewAdmin).
      operationId: getAdminRegistrationInfo
      parameters:
      - description: 'Filter login settings by reCAPTCHA flavor. enum: `google`, `hcaptcha`'
        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'
      security: []
      summary: getAdminRegistrationInfo
      tags:
      - Admins
  /api/v1/register/verify/{token}:
    parameters:
    - $ref: '#/components/parameters/token'
    post:
      description: Verify a new administrator registration using the token from the registration email. This public endpoint does not require authentication. A successful verification creates a login session and may also apply a pending invitation; the response indicates whether an invitation could not be applied automatically.
      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'
      security: []
      summary: verifyRegistration
      tags:
      - Admins
components:
  responses:
    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
    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
    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
    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
    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
    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
    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
    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
    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:
    VerifyRegisterTokenSuccessSuccess:
      value:
        return_to: https://mist.zendesk.com/hc/quickstart.pdf
    HTTP403Example:
      value:
        detail: You do not have permission to perform this action.
    VerifyRegisterTokenInvalidNotFound:
      value:
        detail: Not found.
    HTTP400Example:
      value:
        detail: 'JSON parse error - Expecting value: line 5 column 8 (char 56)'
    InviteVerifyNotFoundInviteCreatedBySelf:
      value:
        detail: invite created by self
    VerifyRegisterTokenAlreadyRegisteredAlreadyRegistered:
      value:
        detail: already registered
    VerifyRegisterTokenSuccesssuccessbutfailedtoapplytheinvitationautomatically:
      value:
        detail: password policy not met
        invite_not_applied: true
        min_length: 8
    RecaptchaGoogle:
      value:
        flavor: google
        required: true
        sitekey: 6LdAewsTAAAAAE25XKQhPEQ2FiMTft-WrZXQ5NUd
    HTTP429Example:
      value:
        detail: Too Many Request. The API Token used for the request reached the 5000 API Calls per hour threshold
    RecaptchaHcaptcha:
      value:
        flavor: hcaptcha
        required: true
        sitekey: 6LdAewsTAAAAAE25XKQhPEQ2FiMTft-WrZXQ5NUd
    HTTP401Example:
      value:
        detail: Authentication credentials were not provided.
    InviteVerifyNotFoundInvalidSecret:
      value:
        detail: invalid secret
    VerifyRegisterTokenAlreadyRegisteredVerificationExpired:
      value:
        detail: expired
  schemas:
    admin_invite:
      description: Administrator invitation and initial registration payload
      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: Registration city for the admin user
          examples:
          - Cupertino
          type: string
        country:
          description: Registration country or region for the admin user, as a name or ISO code
          examples:
          - United States
          type: string
        email:
          description: Registration email address for the admin user
          examples:
          - test@mistsys.com
          maxLength: 64
          type: string
        first_name:
          description: Given name for the registering admin user
          examples:
          - John
          type: string
        invite_code:
          description: Invite code used to authorize new admin registration
          examples:
          - MISTROCKS
          type: string
        last_name:
          description: Family name for the registering admin user
          examples:
          - Smith
          type: string
        org_name:
          description: Organization name supplied during initial admin registration
          examples:
          - Smith LLC
          type: string
        password:
          description: Credential password for the registering admin account
          examples:
          - foryoureyesonly
          format: password
          type: string
        recaptcha:
          description: CAPTCHA verification token submitted during admin registration
          type: string
        recaptcha_flavor:
          $ref: '#/components/schemas/recaptcha_flavor'
          description: CAPTCHA provider flavor used for registration verification
        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: Registration state or province for the admin user, optional depending on country or 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: Postal code for the registering admin user
          examples:
          - '95014'
          type: string
      required:
      - email
      - first_name
      - last_name
      - org_name
      - password
      - recaptcha
      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
    recaptcha_flavor:
      default: google
      description: 'CAPTCHA provider flavor. enum: `google`, `hcaptcha`'
      enum:
      - google
      - hcaptcha
      examples:
      - hcaptcha
      type: string
    recaptcha:
      additionalProperties: false
      description: CAPTCHA settings returned for admin registration
      properties:
        flavor:
          $ref: '#/components/schemas/recaptcha_flavor'
          description: CAPTCHA provider used for registration, such as Google reCAPTCHA or hCaptcha
        required:
          description: Whether CAPTCHA verification is required for registration
          type: boolean
        sitekey:
          description: Public site key used to render the selected CAPTCHA provider
          type: string
      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_detail_string:
      additionalProperties: false
      description: Response containing a human-readable detail message
      properties:
        detail:
          description: Human-readable detail message returned by the API
          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_verify_token_success:
      additionalProperties: false
      description: Successful registration token verification response
      properties:
        detail:
          description: Result message returned with the verification response
          type: string
        invite_not_applied:
          description: Whether the invitation was verified but not applied automatically
          type: boolean
        min_length:
          description: Required minimum password length from the applicable password policy
          type: integer
        return_to:
          description: URL to redirect the user to after successful registration verification
          type: string
      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
  parameters:
    token:
      in: path
      name: token
      required: true
      schema:
        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