Mist Orgs API

An organization usually represents a customer - which has inventories, licenses. An Organization can contain multiple sites. A site usually represents a deployment at the same location (a campus, an office).

OpenAPI Specification

mist-orgs-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 Orgs 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: An organization usually represents a customer - which has inventories, licenses. An Organization can contain multiple sites. A site usually represents a deployment at the same location (a campus, an office).
  name: Orgs
paths:
  /api/v1/orgs:
    post:
      description: Create a Mist organization with organization-level defaults such as display name, support-access setting, default alarm template, and admin session lifetime.
      operationId: createOrg
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
                  allow_mist: true
                  name: string
                  session_expiry: 1440
            schema:
              $ref: '#/components/schemas/org'
      responses:
        '200':
          $ref: '#/components/responses/Org'
        '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: createOrg
      tags:
      - Orgs
  /api/v1/orgs/{org_id}:
    parameters:
    - $ref: '#/components/parameters/org_id'
    delete:
      description: Delete an organization and its organization-level resources. Use MSP organization assignment endpoints when only changing MSP ownership or association. This action is only allowed when the Organization Inventory is empty.
      operationId: deleteOrg
      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: deleteOrg
      tags:
      - Orgs
    get:
      description: Return organization details, including name, MSP ownership, organization group membership, support-access setting, and session settings.
      operationId: getOrg
      responses:
        '200':
          $ref: '#/components/responses/Org'
        '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: getOrg
      tags:
      - Orgs
    put:
      description: Update organization-level settings such as display name, support-access setting, organization groups, default alarm template, or admin session lifetime.
      operationId: updateOrg
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  alarmtemplate_id: 1984805d-2be2-4aec-a8d4-3ddf67fab0df
                  allow_mist: true
                  name: string
                  orggroup_ids: []
                  session_expiry: 1440
            schema:
              $ref: '#/components/schemas/org'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Org'
        '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: updateOrg
      tags:
      - Orgs
  /api/v1/orgs/{org_id}/clone:
    parameters:
    - $ref: '#/components/parameters/org_id'
    post:
      description: Create an Org by cloning from another one. Org Settings, Templates, Wxlan Tags, Wxlan Tunnels, Wxlan Rules, Org Wlans will be copied. Sites and Site Groups will not be copied, and therefore, the copied template will not be applied to any site/sitegroups.
      operationId: cloneOrg
      requestBody:
        content:
          application/json:
            examples:
              Example:
                value:
                  name: New Org
            schema:
              $ref: '#/components/schemas/name_string'
        description: Request Body
      responses:
        '200':
          $ref: '#/components/responses/Org'
        '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: cloneOrg
      tags:
      - Orgs
components:
  parameters:
    org_id:
      in: path
      name: org_id
      required: true
      schema:
        examples:
        - 000000ab-00ab-00ab-00ab-0000000000ab
        format: uuid
        type: string
  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
    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
    Org:
      content:
        application/json:
          examples:
            Example:
              $ref: '#/components/examples/OrgExample'
          schema:
            $ref: '#/components/schemas/org'
        application/vnd.api+json:
          examples:
            Example:
              $ref: '#/components/examples/OrgExample'
          schema:
            $ref: '#/components/schemas/org'
      description: Org Infos
    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
  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_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
    created_time:
      description: When the object has been created, in epoch
      format: double
      readOnly: true
      type: number
    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
    org:
      description: Mist organization containing sites, devices, users, and organization-level settings
      properties:
        alarmtemplate_id:
          description: Org-level alarm template ID used as the default for sites
          format: uuid
          type:
          - string
          - 'null'
        allow_mist:
          default: true
          description: Whether Mist support access is allowed for this organization
          type: boolean
        created_time:
          $ref: '#/components/schemas/created_time'
          description: Epoch timestamp when the organization was created
        id:
          $ref: '#/components/schemas/id'
          description: Unique identifier of the organization
        modified_time:
          $ref: '#/components/schemas/modified_time'
          description: Epoch timestamp when the organization was last modified
        msp_id:
          $ref: '#/components/schemas/msp_id'
          description: Managed service provider account that owns this organization, when applicable
        msp_logo_url:
          description: logo uploaded by the MSP with advanced tier, only present if provided
          examples:
          - https://example.com/logo/b9d42c2e-88ee-41f8-b798-f009ce7fe909.jpeg
          format: uri
          readOnly: true
          type: string
        msp_name:
          description: Name of the msp the org belongs to
          examples:
          - MSP
          readOnly: true
          type: string
        name:
          description: Display name of the organization
          examples:
          - Org
          type: string
        orggroup_ids:
          $ref: '#/components/schemas/orggroup_ids'
          description: Organization group IDs that include this organization
        session_expiry:
          default: 1440
          description: Admin session lifetime for the organization, in minutes
          format: int32
          maximum: 20160
          minimum: 10
          type: integer
      required:
      - name
      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
    orggroup_ids:
      description: List of organization group identifiers
      items:
        format: uuid
        type: string
      type: array
    name_string:
      description: Request body containing a name value
      properties:
        name:
          description: Value to create or update as the target resource name
          type: string
      type: object
    msp_id:
      description: Managed service provider identifier
      examples:
      - b9d42c2e-88ee-41f8-b798-f009ce7fe909
      format: uuid
      readOnly: true
      type: string
    modified_time:
      description: When the object has been modified for the last time, in epoch
      format: double
      readOnly: true
      type: number
    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
  examples:
    OrgExample:
      value:
        alarmtemplate_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        allow_mist: true
        created_time: 0
        id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        modified_time: 0
        msp_id: b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        name: string
        orggroup_ids:
        - b069b358-4c97-5319-1f8c-7c5ca64d6ab1
        session_expiry: 1440
    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)'
    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.
  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