Mist Orgs NAC Portals API
NAC Portals are for onboard Wireless and Wired client with 802.1X The NAC Portal is a web-based interface that allows users to authenticate and gain access to the network. It is typically used for guest access or for devices that do not have a pre-configured certificate for 802.1X authentication. It can also be used to provision certificates for devices that require them with the Mist Application. ### NAC-Based External Guest Portal Authorization / How to implement a External Guest Portal #### Context In the guest portal flow, context such as SSID, guest MAC, AP MAC is required to unique identify the guest, if it's already authorized (e.g. roam to another AP), and used to instruct the AP to stop redirecting/blocking the user traffic #### Redirect Guest Device (or CNA in MacOS/iOS term) will be redirected to, e.g. “?ap_mac=5c5b35001234&ssid=Guest&…” | Name | Type | Description | |------|------|-------------| | ap_mac | string | AP's MAC address | | site_id | string | Site ID | | device_mac | string | Device's MAC address (the device that blocks the traffic) | | ssid | string | for wireless | | port_name | string | for wired (e.g. eth0, ge-0/0/13) | | client_mac | string | Client's MAC address | #### Authorize Once the guest has gone through your portal flow, authorize them by redirect the user to ``` GET https://url_generated_by_portal_authorize_url?jwt= ``` This can be generated by ```python import jwt secret = "EIfPMOykI3lMlDdNPub2WcbqT6dNOtWwmYHAd6bY" # from portal_authorize_jwt_secret above payload = { # for wireless "ap_mac": "5c5b35001234", "wlan_id": "be22bba7-8e22-e1cf-5185-b880816fe2cf", # only for _wireless_ captive portal "client_mac": "d58f6bb4c9d8", # for wired "device_mac": "5c5b35001234", "port_name": "eth0", # only for _wired_ captive portal" "client_mac": "d58f6bb4c9d8", # common # how long should we authorize this session "minutes": 480, "expires": 1768587994, # alternatively # instead of the original URL the user is trying to go to, redirect the user to this URL "forward": "http://www.mist.com", # for testing: if authorize_only=true and authorization is successful, 200 OK will be returned instead of 302 Redirect the user to the `forward` URL "authorize_only": False } encoded_jwt = jwt.encode(payload, secret, algorithm='HS256') ```
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 NAC Portals 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: "NAC Portals are for onboard Wireless and Wired client with 802.1X\n\nThe NAC Portal is a web-based interface that allows users to authenticate and\ngain access to the network. It is typically used for guest access or for devices\nthat do not have a pre-configured certificate for 802.1X authentication.\n\nIt can also be used to provision certificates for devices that require them with the Mist Application.\n\n\n### NAC-Based External Guest Portal Authorization / How to implement a External Guest Portal\n\n#### Context\n\nIn the guest portal flow, context such as SSID, guest MAC, AP MAC is required to unique identify the guest, if it's already authorized (e.g. roam to another AP), and used to instruct the AP to stop redirecting/blocking the user traffic\n\n#### Redirect\n\nGuest Device (or CNA in MacOS/iOS term) will be redirected to, e.g. “?ap_mac=5c5b35001234&ssid=Guest&…”\n\n| Name | Type | Description |\n |------|------|-------------|\n | ap_mac | string | AP's MAC address |\n | site_id | string | Site ID |\n | device_mac | string | Device's MAC address (the device that blocks the traffic) |\n | ssid | string | for wireless |\n | port_name | string | for wired (e.g. eth0, ge-0/0/13) |\n | client_mac | string | Client's MAC address |\n \n\n#### Authorize\n\nOnce the guest has gone through your portal flow, authorize them by redirect the user to\n\n```\nGET https://url_generated_by_portal_authorize_url?jwt=<signature>\n```\n\nThis can be generated by\n\n```python\nimport jwt\n\nsecret = \"EIfPMOykI3lMlDdNPub2WcbqT6dNOtWwmYHAd6bY\" # from portal_authorize_jwt_secret above \npayload = {\n # for wireless\n \"ap_mac\": \"5c5b35001234\",\n \"wlan_id\": \"be22bba7-8e22-e1cf-5185-b880816fe2cf\", # only for _wireless_ captive portal\n \"client_mac\": \"d58f6bb4c9d8\",\n\n # for wired\n \"device_mac\": \"5c5b35001234\",\n \"port_name\": \"eth0\", # only for _wired_ captive portal\"\n \"client_mac\": \"d58f6bb4c9d8\",\n\n # common\n # how long should we authorize this session\n \"minutes\": 480, \n \"expires\": 1768587994, # alternatively\n # instead of the original URL the user is trying to go to, redirect the user to this URL \n \"forward\": \"http://www.mist.com\",\n # for testing: if authorize_only=true and authorization is successful, 200 OK will be returned instead of 302 Redirect the user to the `forward` URL\n \"authorize_only\": False\n}\n\nencoded_jwt = jwt.encode(payload, secret, algorithm='HS256')\n```\n"
name: Orgs NAC Portals
paths:
/api/v1/orgs/{org_id}/nacportals:
parameters:
- $ref: '#/components/parameters/org_id'
get:
description: List NAC portal configurations in the organization for guest portal, guest admin, or Marvis Client onboarding workflows.
operationId: listOrgNacPortals
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
responses:
'200':
$ref: '#/components/responses/NacPortalArray'
'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: listOrgNacPortals
tags:
- Orgs NAC Portals
post:
description: Create a NAC portal configuration for guest access, guest administration, or Marvis Client certificate onboarding.
operationId: createOrgNacPortal
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/nac_portal'
responses:
'200':
$ref: '#/components/responses/NacPortal'
'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: createOrgNacPortal
tags:
- Orgs NAC Portals
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/nacportal_id'
delete:
description: Delete an organization NAC portal configuration by NAC portal ID.
operationId: deleteOrgNacPortal
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: deleteOrgNacPortal
tags:
- Orgs NAC Portals
get:
description: Retrieve configuration details for a specific NAC portal, including portal type, SSID, SSO, guest portal, certificate, and template settings.
operationId: getOrgNacPortal
responses:
'200':
$ref: '#/components/responses/NacPortal'
'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: getOrgNacPortal
tags:
- Orgs NAC Portals
put:
description: Update a NAC portal configuration, including portal type, SSID, SSO, guest portal, certificate, and template settings.
operationId: updateOrgNacPortal
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/nac_portal'
responses:
'200':
$ref: '#/components/responses/NacPortal'
'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: updateOrgNacPortal
tags:
- Orgs NAC Portals
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/failures:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/nacportal_id'
get:
description: List recent SAML SSO failures for a NAC portal within a selected time range.
operationId: listOrgNacPortalSsoLatestFailures
parameters:
- $ref: '#/components/parameters/start'
- $ref: '#/components/parameters/end'
- $ref: '#/components/parameters/duration'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
responses:
'200':
$ref: '#/components/responses/SsoLatestFailures'
'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: listOrgNacPortalSsoLatestFailures
tags:
- Orgs NAC Portals
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/portal_image:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/nacportal_id'
delete:
description: Delete the custom background image for a NAC portal. If no image is configured, the NAC portal uses the default background image.
operationId: deleteOrgNacPortalImage
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: deleteOrgNacPortalImage
tags:
- Orgs NAC Portals
post:
description: Upload a custom background image for a NAC portal.
operationId: uploadOrgNacPortalImage
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/psk_portal_image'
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: uploadOrgNacPortalImage
tags:
- Orgs NAC Portals
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/portal_template:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/nacportal_id'
put:
description: Update visual template settings for a NAC portal, including alignment, primary color, logo, and Powered by visibility.
operationId: updateOrgNacPortalTemplate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/nac_portal_template'
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: updateOrgNacPortalTemplate
tags:
- Orgs NAC Portals
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/saml_metadata:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/nacportal_id'
get:
description: Retrieve SAML service provider metadata for a NAC portal, including ACS URL, entity ID, logout URL, and metadata XML.
operationId: getOrgNacPortalSamlMetadata
responses:
'200':
$ref: '#/components/responses/SamlMetadata'
'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: getOrgNacPortalSamlMetadata
tags:
- Orgs NAC Portals
/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/saml_metadata.xml:
parameters:
- $ref: '#/components/parameters/org_id'
- $ref: '#/components/parameters/nacportal_id'
get:
description: "Download NAC portal SAML service provider metadata as an XML document.\n\nExample of metadata.xml:\n```xml\n<?xml version=\"1.0\" encoding=\"UTF-8\"?><md:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" entityID=\"https://api.mist.com/api/v1/saml/5hdF5g/login\" validUntil=\"2027-10-12T21:59:01Z\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">\n <md:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"true\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">\n <md:SingleLogoutService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://api.mist.com/api/v1/saml/5hdF5g/logout\" />\n <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>\n <md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://api.mist.com/api/v1/saml/5hdF5g/login\" index=\"0\" isDefault=\"true\"/>\n <md:AttributeConsumingService index=\"0\">\n <md:ServiceName xml:lang=\"en-US\">Mist</md:ServiceName>\n <md:RequestedAttribute Name=\"Role\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:basic\" isRequired=\"true\"/>\n <md:RequestedAttribute Name=\"FirstName\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:basic\" isRequired=\"false\"/>\n <md:RequestedAttribute Name=\"LastName\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:basic\" isRequired=\"false\"/>\n </md:AttributeConsumingService>\n </md:SPSSODescriptor>\n</md:EntityDescriptor>\n```"
operationId: downloadOrgNacPortalSamlMetadata
responses:
'200':
$ref: '#/components/responses/File'
'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: downloadOrgNacPortalSamlMetadata
tags:
- Orgs NAC Portals
components:
schemas:
portal_template_alignment:
default: center
description: 'defines alignment on portal. enum: `center`, `left`, `right`'
enum:
- center
- left
- right
type: string
nac_portal_sso:
additionalProperties: false
description: SAML SSO configuration for a NAC portal
properties:
idp_cert:
description: Identity provider certificate used to verify signed SAML responses
examples:
- '-----BEGIN CERTIFICATE-----\n<redacted>\n-----END CERTIFICATE-----'
type: string
idp_sign_algo:
$ref: '#/components/schemas/nac_portal_sso_idp_sign_algo'
description: Signing algorithm expected for SAML assertions from the identity provider
idp_sso_url:
description: Identity provider Single Sign-On URL for SAML authentication
examples:
- https://yourorg.onelogin.com/trust/saml2/http-post/sso/138130
type: string
issuer:
description: Identity provider issuer URL for SAML authentication
examples:
- https://app.onelogin.com/saml/metadata/138130
type: string
nameid_format:
description: SAML NameID format expected from the identity provider
examples:
- email
type: string
sso_role_matching:
$ref: '#/components/schemas/nac_portal_sso_role_matchings'
description: Rules that map SSO role values from the identity provider to NAC portal roles
use_sso_role_for_cert:
description: Whether to include the matched SSO role in the issued certificate subject for later policy matching
type: boolean
type: object
nac_portal_sso_role_matching:
additionalProperties: false
description: Mapping rule from an SSO role claim value to a NAC portal role
properties:
assigned:
description: NAC portal role assigned when the SSO role value matches
examples:
- user
type: string
match:
description: SSO role value to match from the SAML assertion
examples:
- Student
type: string
type: object
timestamp:
description: Epoch timestamp, in seconds
format: double
readOnly: true
type: number
response_sso_failure_search_results:
description: SSO authentication failure records returned by the request
items:
$ref: '#/components/schemas/response_sso_failure_search_item'
type: array
uniqueItems: true
id:
description: Unique ID of the object instance in the Mist Organization
examples:
- 53f10664-3ce8-4c27-b382-0ef66432349f
format: uuid
readOnly: true
type: string
nac_portal_template:
description: Visual template settings for a NAC portal
properties:
alignment:
$ref: '#/components/schemas/portal_template_alignment'
description: Text and content alignment for the NAC portal page
color:
default: '#1074bc'
description: Primary color used by the NAC portal template
type: string
logo:
description: Custom logo custom logo with "data:image/png;base64," format. default null, uses Juniper Mist Logo.
type: string
poweredBy:
default: false
description: Whether to hide "Powered by Juniper Mist" and email footers
type: boolean
type: object
psk_portal_image:
additionalProperties: false
description: PSK portal image upload payload
properties:
file:
contentMediaType: application/octet-stream
description: Image binary payload to upload for the PSK portal
type: string
json:
description: Metadata JSON string describing the PSK portal image upload
type: string
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
org_id:
description: Unique identifier of a Mist organization
examples:
- a97c1b22-a4e9-411e-9bfd-d8695a0f9e61
format: uuid
readOnly: true
type: string
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
nac_portal_guest_portal:
additionalProperties: false
description: "Guest portal configuration when `type`==`guest_portal`. If \n * `auth`==`none`, the user is presented with a terms of service and can click and continue.\n * `auth`==`external`, the user is redirected to an external URL for authentication.\n * `auth`==`multi`, the user is presented with a choice of authentication methods:\n - social logins: facebook / google / amazon / microsoft / azure\n - sponsor\n - sms: supported provider: twillio\n - email\n - sso\n - userpass: pre created guest list\n"
properties:
auth:
$ref: '#/components/schemas/nac_portal_guest_portal_auth'
description: Mode presented by the NAC guest portal for user authentication
expire:
description: If `auth`==`none` or `auth`==`multi`, whether to expire the guest after a certain time
examples:
- 1440
type: integer
external_portal_url:
description: If `auth`==`external`, the URL to redirect the user to for authentication
examples:
- https://yourorg.com/external-guest-portal
type: string
force_reconnect:
description: Disconnect client (workaround for reauth issues)
type: boolean
forward:
description: If `auth`==`none` or `auth`==`multi`, whether to forward the user to the guest portal after authentication
examples:
- true
type: boolean
forward_url:
description: If `auth`==`none` or `auth`==`multi`, URL to forward the user to after authentication
examples:
- https://yourorg.com/guest-portal-redirect
type: string
max_num_devices:
default: 0
description: Maximum number of clients allowed per guest. 0 (default, unlimited), 1-100 range
examples:
- 10
maximum: 100
minimum: 0
type: integer
privacy:
description: If `auth`==`none` or `auth`==`multi`, whether to show the privacy policy
examples:
- true
type: boolean
type: object
response_sso_failure_search_item:
additionalProperties: false
description: SSO authentication failure record
properties:
detail:
description: Failure details reported for the SSO authentication attempt
type: string
saml_assertion_xml:
description: SAML assertion XML captured for the failed SSO authentication attempt
type: string
timestamp:
$ref: '#/components/schemas/timestamp'
description: Epoch timestamp, in seconds, when the SSO authentication failure occurred
required:
- timestamp
- detail
- saml_assertion_xml
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
nac_portal_sso_role_matchings:
description: List of SSO role mapping rules for the NAC portal
items:
$ref: '#/components/schemas/nac_portal_sso_role_matching'
type: array
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
nac_portal_additional_cacerts:
description: Optional list of additional CA certificates to be used
examples:
- - '-----BEGIN CERTIFICATE-----\<redacted>\n-----END CERTIFICATE-----'
items:
type: string
type: array
nac_portal_sso_idp_sign_algo:
default: sha256
description: 'Signing algorithm for SAML Assertion. enum: `sha1`, `sha256`, `sha384`, `sha512`.'
enum:
- sha1
- sha256
- sha384
- sha512
type: string
nac_portal_guest_portal_auth:
description: 'Guest portal authentication type. enum: `external`, `multi`, `none`'
enum:
- external
- multi
- none
type: string
nac_portal_eap_type:
default: wpa2
description: 'EAP mode used when onboarding wireless clients through the NAC portal. enum: `wpa2`, `wpa3`'
enum:
- wpa2
- wpa3
type: string
nac_portals:
description: List of NAC portal configurations
items:
$ref: '#/components/schemas/nac_portal'
type: array
response_sso_failure_search:
additionalProperties: false
description: Response containing recent SSO authentication failure records
properties:
results:
$ref: '#/components/schemas/response_sso_failure_search_results'
description: SSO authentication failure records returned by the request
required:
- results
type: object
nac_portal_type:
description: "enum: \n * `guest_admin`: NAC-Based Portal Admin for Pre Created Guest Authentication\n * `guest_portal`: NAC-Based Guest Portal\n * `marvis_client`\n"
enum:
- guest_admin
- guest_portal
- marvis_client
type: string
nac_portal:
description: NAC portal configuration for 802.1X onboarding, guest access, or Marvis client certificate provisioning
properties:
access_type:
$ref: '#/components/schemas/nac_portal_access_type'
description: If `type`==`marvis_client`, whether onboarding applies to wireless clients or both wireless and wired clients
additional_cacerts:
$ref: '#/components/schemas/nac_portal_additional_cacerts'
description: Additional CA certificates trusted during NAC portal certificate onboarding
additional_nac_server_name:
description: Optional list of additional NAC server names
examples:
- - nac1.corp.com
- nac2.corp.com
items:
type: string
type: array
bg_image_url:
description: URL of the NAC portal background image
type: string
cert_expire_time:
description: Validity duration for portal-issued client certificates, in days
examples:
- 365
type: integer
eap_type:
$ref: '#/components/schemas/nac_portal_eap_type'
description: EAP mode used when onboarding wireless clients through the NAC portal
enable_telemetry:
description: Model, version, fingering, events (connecting, disconnect, roaming), which ap
type: boolean
expiry_notification_time:
description: Number of days before certificate expiration to start sending reminder notifications
type: integer
id:
$ref: '#/components/schemas/id'
description: Unique identifier of the NAC portal
name:
description: Human-readable name of the NAC portal
examples:
- get-wifi
type: string
notify_expiry:
description: Whether to send reminder notifications before portal-issued certificates expire
type: boolean
org_id:
$ref: '#/components/schemas/org_id'
description: Organization that owns this NAC portal
portal:
$ref: '#/components/schemas/nac_portal_guest_portal'
description: Guest portal settings used when `type`==`guest_portal`
portal_authorize_jwt_secret:
description: If `type`==`guest_portal` and `auth`==`external`, the `portal_authorize_jwt_secret` will be generated
examples:
- 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
readOnly: true
type: string
portal_authorize_url:
description: If `type`==`guest_portal` and `auth`==`external`, the `portal_authorize_url` will be generated
examples:
- https://guest-mistnac.mist.com/callback/be22bba7-8e22-e1cf-5185-b880816fe2cf/authorize
readOnly: true
type: string
portal_sso_url:
description: If `type`==`guest_portal` or `type`==`guest_admin` and ans SSO is enabled, the `portal_sso_url` will be generated (which needs to be configured in your IDP
examples:
- https://guest-mistnac.mist.com/callback/be22bba7-8e22-e1cf-5185-b880816fe2cf/acs
readOnly: true
type: string
ssid:
description: Wireless SSID associated with the NAC portal
examples:
- Corp
type: string
sso:
$ref: '#/components/schemas/nac_portal_sso'
description: SAML SSO settings for NAC portal authentication and role mapping
template_url:
description: URL for the NAC portal template customization resource
type: string
thumbnail_url:
description: Read-only URL of the NAC portal background image thumbnail
readOnly: true
type: string
tos:
description: Terms of service text shown in the NAC portal
type: string
type:
$ref: '#/components/schemas/nac_portal_type'
description: NAC portal mode, such as guest admin, guest portal, or Marvis client onboarding
ui_url:
description: If `auth`==`guest_admin`, the URL to the guest admin portal
examples:
- https://guest-mistnac.mist.com/admin/51908ea7-dea7-4581-a578-f7320c4d5216/login
readOnly: true
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
saml_metadata:
additionalProperties: false
description: Read-only SAML and SCIM metadata generated for an SSO configuration
properties:
acs_url:
description: If `idp_type`==`saml`, Assertion Consumer Service URL that receives SAML responses for this Mist SSO configuration
examples:
- https://api.mist.com/api/v1/saml/llDfa13f/login
readOnly: true
type: string
entity_id:
description: If `idp_type`==`saml`, service provider entity ID for this Mist SSO configuration
examples:
- https://api.mist.com/api/v1/saml/llDfa13f/login
readOnly: true
type: string
logout_url:
description: If `idp_type`==`saml`, Single Logout URL used by the identity provider to end the Mist SSO session
examples:
- https://api.mist.com/api/v1/saml/llDfa13f/logout
readOnly: true
type: string
metadata:
description: If `idp_type`==`saml`, service provider metadata XML for configuring the identity provider
examples:
- <?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://api.mist.com/api/v1/saml/llDfa13f/login" validUntil="2027-10-12T21:59:01Z" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat><md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https:/
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mist/refs/heads/main/openapi/mist-orgs-nac-portals-api-openapi.yml