
The Juniper Mist connector integrates with the Juniper Mist cloud platform to bring wireless network infrastructure data into the Mapped graph. It discovers wireless access points, switches, and gateways from Mist sites and maps them to buildings and floors, continuously polling device status and occupancy metrics. Each access point is paired with an occupancy zone that tracks the number of connected wireless clients, providing real-time space utilization data. Optionally, the connector supports webhook notifications for occupancy alerts.
Potential use cases include:
In order to authenticate, the following is required:
The connector associates Mist devices with Mapped places on the Location Mapping tab. The connector fetches all devices from sites you have access to (based on your API token's privileges) and pre-populates the mapping table.
| Field | Required | Description |
|---|---|---|
| building.siteId | Yes | The Site in your organization |
| building.name | Yes | Building name |
| building.address | Yes | Building address |
| building.refId | Yes | Mist Site UUID |
| subBuilding.name | No | Sub-building name (e.g., wing or section) |
| subBuilding.code | No | Sub-building code |
| floor.name | Yes | Floor name (from Mist map/floor plan) |
| floor.level | Yes | Numeric floor level |
| space.name | Yes | Space name |
| space.code | Yes | Space code |
| thing.name | Yes | Device name |
| thing.refId | Yes | Mist device UUID (unique) |
| thing.context | Yes | Device metadata including type (ap, switch, gateway), serial number, and MAC address |
Notes:
| Mist API Model | Mapped Entity | exactType | Description |
|---|---|---|---|
| Site | Building | Building | Mist sites are mapped to buildings in the graph. |
| Site (with sub-building mapping) | SubBuilding | SubBuilding | When a sub-building is specified in the place mapping, the site maps to a sub-building. |
| Map (floor plan) | Floor | Floor | Mist maps/floor plans are mapped to floors within a building. |
| Access Point | Occupancy Zone | Occupancy Zone | An occupancy zone is created for each access point and attached to the floor. The AP serves this zone. |
| Device (type: ap) | WirelessAccessPoint | WirelessAccessPoint | Mist wireless access points, linked to their assigned floor. |
| Device (type: switch) | Switch | Switch | Mist network switches, linked to their building or sub-building. |
| Device (type: gateway) | NetworkedDevice | NetworkedDevice | Mist gateways, linked to their building or sub-building. |
Relationships:
| Mist Data | Mapped Point | exactType | ParentEntity | Datatype | Unit | Description |
|---|---|---|---|---|---|---|
| AP device status | OnOffStatus | OnOffStatus | WirelessAccessPoint | ENUM | NUM | Access point online/offline status. Values: 0 = disconnected, 1 = connected. |
| AP connected clients | ConnectedDevicesCountSensor | ConnectedDevicesCountSensor | OccupancyZone | INT | NUM | Count of wireless clients currently connected to the access point. Represents actual occupants (people with devices) in the AP's coverage area. |
| Switch device status | OnOffStatus | OnOffStatus | Switch | JSON | — | Switch status as a JSON object containing the status field. |
| Gateway device status | OnOffStatus | OnOffStatus | NetworkedDevice | JSON | — | Gateway status as a JSON object containing the status field. |
Notes:
Query latest device status for access points:
Note you'll need the connectorId of your Juniper Mist connector to execute this query. You can find this in the Mapped Console grid view under the Connectors tab.
Request ResponseCopy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16{ points( filter: {exactType: {eq: "On_Off_Status"}, and: {connectedDataSourceId: {eq: "your-connector-Id"}}} ) { id name datatype valueMap series(latest: true) { timestamp value { int64Value } } } }
Query connected client counts over a time range:
Request ResponseCopy1 2 3 4 5 6 7 8 9 10 11 12 13 14{ points( filter: {exactType: {eq: "Connected_Devices_Count_Sensor"}, and: {connectedDataSourceId: {eq: "your-connector-Id"}}} ) { id name series(startTime: "2026-05-01T12:00:00Z", endTime: "2026-05-02T13:00:00Z") { timestamp value { int64Value } } } }
.png)
.png)
