Monitoring Customers
IMPORTANT
This is a draft guide & shouldn't be shared without approval from Automation Solutions Team
The version of PyCentral that is referenced in this document is currently not released yet.
Fetch monitoring statistics, sites, devices, and clients across managed tenants using the HPE Aruba Networking Central API
Prerequisites
This guide uses two token types:
- MSP Central token — for MSP-level monitoring (tenant list with site summary)
- Tenant-scoped Central token — for tenant-level data (sites, devices, clients)
See Token Exchange for how to generate both.
HPE Aruba Networking Central provides two tiers of visibility for MSP admins. At the MSP level,
a single API call returns all your tenants with a high-level site summary for each. For granular
data — sites, devices, clients — you exchange your MSP token for a tenant-scoped token and query
that tenant's Central instance directly.
MSP-Level Monitoring
With an MSP Central token, fetch all managed tenants along with a high-level site summary for each.
This gives a cross-tenant health overview without requiring a token exchange per tenant.
curl -X GET "https\://<central-base-url>/msp/v1/tenants"
-H "Authorization: Bearer <msp-central-token>"
The response returns a list of tenants, each with a site count and site health summary:
{
"tenants": [
{
"workspace_id": "<tenant-workspace-id>",
"name": "<tenant-name>",
"sites": {
"total": 3,
"up": 2,
"down": 1
}
}
],
"total": 1
}
Use workspace_id from this response when exchanging for a tenant-scoped token in the calls below.
Tenant-Level Monitoring
Fetching sites, devices, and clients requires a tenant-scoped Central token. Exchange your MSP token
for a tenant token before making these calls.
Token Exchange
See Token Exchange for the full exchange flow.
You need theworkspace_idof the target tenant — available from the MSP-level monitoring call above.
Fetching Sites
curl -X GET "https\://<central-base-url>/monitoring/v1/sites"
-H "Authorization: Bearer <tenant-central-token>"
{
"sites": [
{
"site_id": "<site-id>",
"site_name": "<site-name>",
"status": "UP"
}
],
"total": 3
}
Fetching Devices
curl -X GET "https\://<central-base-url>/monitoring/v2/devices"
-H "Authorization: Bearer <tenant-central-token>"
{
"devices": [
{
"serial": "<device-serial>",
"device_type": "AP",
"status": "Up",
"site": "<site-name>"
}
],
"total": 5
}
Fetching Clients
curl -X GET "https\://<central-base-url>/monitoring/v1/clients/wlan"
-H "Authorization: Bearer <tenant-central-token>"
{
"clients": [
{
"name": "<client-name>",
"mac_address": "<mac>",
"associated_device": "<device-serial>",
"site": "<site-name>",
"status": "CONNECTED"
}
],
"total": 12
}
Monitoring Across Multiple Tenants
To poll all tenants, loop over the tenant list from the MSP-level call, exchange the MSP token
for a tenant-scoped token per iteration, then fetch the data you need.
# Pseudocode
msp_token = generate_msp_central_token()
tenants = GET /msp/v1/tenants with msp_token
for tenant in tenants:
tenant_token = exchange_token(msp_token, tenant.workspace_id)
sites = GET /monitoring/v1/sites with tenant_token
devices = GET /monitoring/v2/devices with tenant_token
clients = GET /monitoring/v1/clients/wlan with tenant_token
PyCentral SDK
A PyCentral workflow script that automates this loop will be linked here once published.
Important Links
Updated 27 days ago