HomeGuidesAPI ReferenceGuidesMRT APIConfiguration API
GitHubAirheads Developer Community
Guides

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 the workspace_id of 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