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 Orgs Guests 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: Guests are users who are accessing the wi-fi network as a temporary or non-permanent visitor. name: Orgs Guests paths: /api/v1/orgs/{org_id}/guests: parameters: - $ref: '#/components/parameters/org_id' get: description: Get List of Org Guest Authorizations operationId: listOrgGuestAuthorizations responses: '200': $ref: '#/components/responses/GuestsArray' '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: listOrgGuestAuthorizations tags: - Orgs Guests /api/v1/orgs/{org_id}/guests/count: parameters: - $ref: '#/components/parameters/org_id' get: description: Count by Distinct Attributes of Org Authorized Guest operationId: countOrgGuestAuthorizations parameters: - in: query name: distinct schema: $ref: '#/components/schemas/org_guests_count_distinct' - $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: countOrgGuestAuthorizations tags: - Orgs Guests /api/v1/orgs/{org_id}/guests/search: parameters: - $ref: '#/components/parameters/org_id' get: description: Search Authorized Guest operationId: searchOrgGuestAuthorization parameters: - description: WLAN ID in: query name: wlan_id schema: examples: - 00000000-0000-0000-0000-000000000000 type: string - description: Authentication Method in: query name: auth_method schema: examples: - psk type: string - description: SSID in: query name: ssid schema: examples: - Guest type: string - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/start' - $ref: '#/components/parameters/end' - $ref: '#/components/parameters/duration' - $ref: '#/components/parameters/sort' responses: '200': $ref: '#/components/responses/GuestsSearch' '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: searchOrgGuestAuthorization tags: - Orgs Guests /api/v1/orgs/{org_id}/guests/{guest_mac}: parameters: - $ref: '#/components/parameters/org_id' - $ref: '#/components/parameters/guest_mac' delete: description: Delete Guest Authorization operationId: deleteOrgGuestAuthorization 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: deleteOrgGuestAuthorization tags: - Orgs Guests get: description: Get Guest Authorization operationId: getOrgGuestAuthorization responses: '200': $ref: '#/components/responses/Guest' '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: getOrgGuestAuthorization tags: - Orgs Guests put: description: Update Guest Authorization operationId: updateOrgGuestAuthorization requestBody: content: application/json: examples: Example: value: company: string email: user@example.com mac: string minutes: 1440 name: John Smith wlan_id: 6748cfa6-4e12-11e6-9188-0242ac110007 schema: $ref: '#/components/schemas/guest_org' responses: '200': $ref: '#/components/responses/Guest' '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: updateOrgGuestAuthorization tags: - Orgs Guests components: examples: GuestExample: value: authorized: true authorized_expiring_time: 0 authorized_time: 0 company: string email: user@example.com field1: string field2: string field3: string field4: string mac: string minutes: 0 name: string CountExample: value: distinct: string end: 0 limit: 0 results: - count: 0 property: string start: 0 total: 0 GuestsArrayExample: value: - authorized: true authorized_expiring_time: 0 authorized_time: 0 company: string email: user@example.com field1: string field2: string field3: string field4: string mac: string minutes: 0 name: string GuestsSearchExample: value: end: 1531862583 limit: 2 next: /api/v1/sites/8aaba0aa-09cc-44bd-9709-33b98040550c/guests/search?wlan_id=88ffe630-95b8-11e8-b294-346895ed1b7d&end=1531855849.000&limit=2&start=1531776183.0 results: - ap: 5c5b350e0001 auth_method: passphrase authorized_expiring_time: 1531810258.186273 authorized_time: 1531782218 company: mistsystems email: user@mistsys.com name: john ssid: openNet timestamp: 1531782218 - ap: 5c5b350e0001 auth_method: facebook authorized_expiring_time: 1531810821.145 authorized_time: 1531782632 company: xyz inc. email: cool_user@yahoo.com name: John White ssid: openNet timestamp: 1531782632 start: 1531776183 total: 14 GuestsArrayExample2: value: - authorized: true authorized_expiring_time: 1480704955 authorized_time: 1480704355 company: abc email: john@abc.com field1: xxx mac: 5684dae9ac8b name: John Smith 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 GuestExample2: value: authorized: true authorized_expiring_time: 1480704955 authorized_time: 1480704355 company: abc email: john@abc.com field1: xxx mac: 5684dae9ac8b name: John Smith HTTP401Example: value: detail: Authentication credentials were not provided. schemas: 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 response_guest_search: additionalProperties: false properties: end: type: integer limit: type: integer next: type: string results: $ref: '#/components/schemas/response_guest_search_results' start: type: integer total: type: integer required: - end - limit - results - start - total type: object guest_org: description: Guest properties: access_code_email: description: If `auth_method`==`email`, the email address where the authorization code has been sent to readOnly: true type: string allow_wlan_id_roam: description: Based on the WLAN portal configuration (field `allow_wlan_id_roam`), if the user is also authorized on other Guest WLANs of the same Org without reauthentication readOnly: true type: boolean ap_mac: description: MAC Address of the AP the guest was connected to during the registration process readOnly: true type: string auth_method: description: Type of guest authorization readOnly: true type: string authorized: default: true description: Whether the guest is current authorized type: boolean authorized_expiring_time: description: When the authorization would expire examples: - 1480704955 readOnly: true type: number authorized_time: description: When the guest was authorized examples: - 1480704355 readOnly: true type: number company: description: Optional, the info provided by user examples: - abc type: string cross_site: description: Based on the WLAN portal configuration (field `cross_site`), if the user is also authorized on other sites (same `wlan.ssid`) of the same Org without reauthentication readOnly: true type: boolean email: description: Optional, the info provided by user examples: - john@abc.com format: email type: string field1: description: Optional, the info provided by user type: string field2: type: string field3: type: string field4: type: string mac: description: MAC type: string minutes: default: 1440 description: Authorization duration, in minutes. Default is 1440 minutes (1 day), maximum is 259200 (180 days) maximum: 259200 minimum: 0 type: integer name: description: Optional, the info provided by user examples: - John Smith type: string random_mac: description: If the client is using a randomized MAC Address to connect the SSID readOnly: true type: boolean ssid: description: Name of the SSID examples: - Guest-SSID readOnly: true type: string wlan_id: description: ID of the WLAN examples: - 6748cfa6-4e12-11e6-9188-0242ac110007 format: uuid type: string required: - wlan_id type: object response_http403: additionalProperties: false properties: detail: examples: - You do not have permission to perform this action. type: string type: object count_results: items: $ref: '#/components/schemas/count_result' type: array uniqueItems: true guests: items: $ref: '#/components/schemas/guest' type: array count_result: additionalProperties: type: string properties: count: type: integer required: - count type: object response_http404: additionalProperties: false properties: id: type: string type: object response_http400: additionalProperties: false properties: detail: examples: - 'JSON parse error - Expecting value: line 5 column 8 (char 56)' type: string type: object guest: description: Guest properties: access_code_email: description: If `auth_method`==`email`, the email address where the authorization code has been sent to readOnly: true type: string ap_mac: description: MAC Address of the AP the guest was connected to during the registration process readOnly: true type: string auth_method: description: Type of guest authorization readOnly: true type: string authorized: default: true description: Whether the guest is current authorized type: boolean authorized_expiring_time: description: When the authorization would expire examples: - 1480704955 readOnly: true type: number authorized_time: description: When the guest was authorized examples: - 1480704355 readOnly: true type: number company: description: Optional, the info provided by user examples: - abc type: string email: description: Optional, the info provided by user examples: - john@abc.com format: email type: string field1: description: Optional, the info provided by user type: string field2: type: string field3: type: string field4: type: string mac: description: MAC Address readOnly: true type: string minutes: default: 1440 description: Authorization duration, in minutes. Default is 1440 minutes (1 day), maximum is 259200 (180 days) maximum: 259200 minimum: 0 type: integer name: description: Optional, the info provided by user examples: - John Smith readOnly: true type: string random_mac: description: If the client is using a randomized MAC Address to connect the SSID readOnly: true type: boolean ssid: description: Name of the SSID examples: - Guest-SSID readOnly: true type: string wlan_id: description: ID of the SSID examples: - 6748cfa6-4e12-11e6-9188-0242ac110007 format: uuid readOnly: true 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 org_guests_count_distinct: default: auth_method description: 'enum: `auth_method`, `company`, `ssid`' enum: - auth_method - company - ssid type: string response_guest_search_results: items: $ref: '#/components/schemas/guest' type: array uniqueItems: true response_http401: additionalProperties: false properties: detail: examples: - Authentication credentials were not provided. type: string type: object parameters: org_id: in: path name: org_id required: true schema: examples: - 000000ab-00ab-00ab-00ab-0000000000ab format: uuid type: string 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 end: description: End time (epoch timestamp in seconds, or relative string like "-1d", "-2h", "now") in: query name: end schema: type: string guest_mac: in: path name: guest_mac required: true schema: examples: - 0000000000ab pattern: ^[0-9a-fA-F]{12}$ type: string limit: in: query name: limit schema: default: 100 minimum: 0 type: integer 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 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 GuestsSearch: content: application/json: examples: Example: $ref: '#/components/examples/GuestsSearchExample' schema: $ref: '#/components/schemas/response_guest_search' application/vnd.api+json: examples: Example: $ref: '#/components/examples/GuestsSearchExample' schema: $ref: '#/components/schemas/response_guest_search' 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 Guest: content: application/json: examples: Example: $ref: '#/components/examples/GuestExample' Example2: $ref: '#/components/examples/GuestExample2' schema: $ref: '#/components/schemas/guest' application/vnd.api+json: examples: Example: $ref: '#/components/examples/GuestExample' Example2: $ref: '#/components/examples/GuestExample2' schema: $ref: '#/components/schemas/guest' description: OK OK: description: OK GuestsArray: content: application/json: examples: Example: $ref: '#/components/examples/GuestsArrayExample' Example2: $ref: '#/components/examples/GuestsArrayExample2' schema: $ref: '#/components/schemas/guests' application/vnd.api+json: examples: Example: $ref: '#/components/examples/GuestsArrayExample' Example2: $ref: '#/components/examples/GuestsArrayExample2' schema: $ref: '#/components/schemas/guests' 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