# Mist Orgs NAC Portals API

**Canonical:** https://apis.io/apis/mist/mist-orgs-nac-portals-api/  
**Provider:** Mist — https://apis.io/providers/mist/  
**Base URL:** https://api.mist.com/api/v1  
**Documentation:** https://www.juniper.net/documentation/us/en/software/mist/automation-integration/

Mist Orgs NAC Portals API is one of 212 APIs that [Mist](https://apis.io/providers/mist/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. Tagged areas include Orgs NAC Portals. The published artifact set on APIs.io includes an OpenAPI specification.

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=<signature> ``` 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') ```

## Operations (11)

| Method | Path | Summary |
|---|---|---|
| GET | `/api/v1/orgs/{org_id}/nacportals` | listOrgNacPortals |
| POST | `/api/v1/orgs/{org_id}/nacportals` | createOrgNacPortal |
| DELETE | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}` | deleteOrgNacPortal |
| GET | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}` | getOrgNacPortal |
| PUT | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}` | updateOrgNacPortal |
| GET | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/failures` | listOrgNacPortalSsoLatestFailures |
| DELETE | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/portal_image` | deleteOrgNacPortalImage |
| POST | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/portal_image` | uploadOrgNacPortalImage |
| PUT | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/portal_template` | updateOrgNacPortalTemplate |
| GET | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/saml_metadata` | getOrgNacPortalSamlMetadata |
| GET | `/api/v1/orgs/{org_id}/nacportals/{nacportal_id}/saml_metadata.xml` | downloadOrgNacPortalSamlMetadata |

## Machine-readable artifacts (1)

- **OpenAPI** — https://raw.githubusercontent.com/api-evangelist/mist/refs/heads/main/openapi/mist-orgs-nac-portals-api-openapi.yml

## Other Mist APIs (12)

- [Mist Admins API](https://apis.io/apis/mist/mist-admins-api/)
- [Mist Admins Login API](https://apis.io/apis/mist/mist-admins-login-api/)
- [Mist Admins Login - OAuth2 API](https://apis.io/apis/mist/mist-admins-login-oauth2-api/)
- [Mist Admins Logout API](https://apis.io/apis/mist/mist-admins-logout-api/)
- [Mist Admins Lookup API](https://apis.io/apis/mist/mist-admins-lookup-api/)
- [Mist Admins Recover Password API](https://apis.io/apis/mist/mist-admins-recover-password-api/)
- [Mist Constants Definitions API](https://apis.io/apis/mist/mist-constants-definitions-api/)
- [Mist Constants Events API](https://apis.io/apis/mist/mist-constants-events-api/)
- [Mist Constants Models API](https://apis.io/apis/mist/mist-constants-models-api/)
- [Mist Installer API](https://apis.io/apis/mist/mist-installer-api/)
- [Mist MSPs Admins API](https://apis.io/apis/mist/mist-msps-admins-api/)
- [Mist MSPs API](https://apis.io/apis/mist/mist-msps-api/)

## Tags

Orgs NAC Portals

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/mist/mist-orgs-nac-portals-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/mist/.
