HomeGuidesAPI Reference
GuidesAPI ReferenceGitHubAirheads Developer CommunityLog In

Monitoring Customers

Once you have onboarded customers, monitoring their networks is the next step.

MSP Groups

With this API, you can get a list of customers that are mapped to a particular MSP group

API Endpoint: /msp_api/v1/groups/{group_name}/customers
API Method: GET
Base URL: https://apigw-prod2.central.arubanetworks.com
(Replace the Base URL with correct API Gateway)

Request Header: 'Content-Type': 'application/json'; 'Authorization': 'Bearer <access-token>';
Request Query Params: group_name, offset, limit

{
  "customers": [
    {
      "customer_id": "<customer_id>",
      "customer_name": "Hotel Demo 1",
      "group": {
        "id": 0,
        "name": "default"
      }
    },
    {
      "customer_id": "<customer_id>",
      "customer_name": "Hotel Demo 2",
      "group": {
        "id": 0,
        "name": "default"
      }
    }
  ],
  "status": "success",
  "total": 2
}
curl --request GET 'https://<API_GATEWAY_BASE_URL>/msp_api/v1/groups/<group_name>/customers?offset=0&limit=20' \
--header 'Accept: application/json'\
--header 'Authorization: Bearer <ACCESS_TOKEN>' 

The below API calls can be used for monitoring individual customer accounts.

📘

Note

The request query parameters of these APIs are optional and can be used to filter the devices based on the requirements.

Access Points(AP)

API Endpoint: /monitoring/v2/aps
API Method: GET
Base URL: https://apigw-prod2.central.arubanetworks.com
(Replace the Base URL with correct API Gateway)

Request Header: 'Content-Type': 'application/json'; 'Authorization': 'Bearer <access-token>'; 'TenantID': '<customer_id>
Request Query Params: group, swarm_id, label, site, status, serial, macaddr, model, cluster_id, fields, calculate_total, calculate_client_count, calculate_ssid_count, show_resource_details, offset, limit, sort

🚧

Note

You can only specify one of group, swarm_id, label, or site parameters. More details on this API can be found here

{
  "aps": [
    {
      "ap_deployment_mode": "IAP",
      "ap_group": null,
      "cluster_id": "",
      "controller_name": "",
      "down_reason": "Access Point disconnected from Aruba Central",
      "firmware_version": "10.3.1.0_82833",
      "gateway_cluster_id": "",
      "gateway_cluster_name": "",
      "group_name": "Dorm-AP",
      "ip_address": "172.16.30.7",
      "labels": [],
      "last_modified": 1652276422,
      "macaddr": "e8:26:89:c3:fa:0a",
      "mesh_role": "Unknown",
      "model": "303",
      "name": "AP303-7020-Dorm",
      "notes": null,
      "public_ip_address": "59.144.73.163",
      "radios": [
        {
          "band": 1,
          "index": 0,
          "macaddr": "e8:26:89:bf:a0:b0",
          "radio_name": "Radio 5 GHz",
          "radio_type": "802.11ac",
          "spatial_stream": "2x2:2",
          "status": "Down"
        },
        {
          "band": 0,
          "index": 1,
          "macaddr": "e8:26:89:bf:a0:a0",
          "radio_name": "Radio 2.4 GHz",
          "radio_type": "802.11n",
          "spatial_stream": "2x2:2",
          "status": "Down"
        }
      ],
      "serial": "CNJTK9T4WP",
      "site": "Campus-Site-1",
      "status": "Down",
      "subnet_mask": "255.255.255.240",
      "swarm_id": "",
      "swarm_master": false,
      "swarm_name": "AP303-7020-Dorm"
    }
  ],
  "count": 1
}
curl --request GET 'https://<API_GATEWAY_BASE_URL>/monitoring/v2/aps' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'TenantID: <CUSTOMER_ID>'

Switches

API Endpoint: /monitoring/v1/switches
API Method: GET
Base URL: https://apigw-prod2.central.arubanetworks.com
(Replace the Base URL with correct API Gateway)

Request Header: 'Content-Type': 'application/json'; 'Authorization': 'Bearer <access-token>'; 'TenantID': '<customer_id>
Request Query Params: group, label, stack_id, status, fields, calculate_total, show_resource_details, calculate_client_count, public_ip_address, site, offset, limit, sort

🚧

Note

You can only specify one of group, label or stack_id parameters. More details on this API can be found here

{
  "count": 1,
  "switches": [
    {
      "firmware_version": "16.10.0017",
      "group_id": 274,
      "group_name": "CampusCluster-A",
      "ip_address": "",
      "label_ids": [
        198
      ],
      "labels": [
        "Campus-deployment"
      ],
      "macaddr": "90:20:c2:4c:58:e0",
      "model": "Aruba2930F-8G-PoE+-2SFP+ Switch(JL258A)",
      "name": "SiteA-Gateway-SW",
      "public_ip_address": "",
      "serial": "CN90HKZ1DM",
      "site": "Campus-Site-1",
      "site_id": 155,
      "stack_id": "03009020-c24caaf0",
      "status": "Up",
      "switch_type": "AOS-S",
      "uplink_ports": null,
      "usage": 527128
    }
  ]
}
curl --request GET 'https://<API_GATEWAY_BASE_URL>/monitoring/v1/switches' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'TenantID: <CUSTOMER_ID>'

Gateways

API Endpoint: /monitoring/v1/gateways
API Method: GET
Base URL: https://apigw-prod2.central.arubanetworks.com
(Replace the Base URL with correct API Gateway)

Request Header: 'Content-Type': 'application/json'; 'Authorization': 'Bearer <access-token>'; 'TenantID': '<customer_id>
Request Query Params: group, label, site, status, macaddr, model, fields, calculate_total, offset, limit, sort

🚧

Note

You can only specify one of thegroup or label parameters. More details on this API can be found here

{
  "count": 1,
  "mcs": [
    {
      "cpu_utilization": 3,
      "firmware_backup_version": "8.6.0.4-2.2.0.2_77807",
      "firmware_version": "10.3.1.0_83085",
      "group_name": "CampusCluster-B",
      "ip_address": "172.16.80.2",
      "labels": [
        "Campus-deployment"
      ],
      "mac_range": "00:1a:1e:00:07:08 - 00:1a:1e:00:07:0f",
      "macaddr": "00:1a:1e:00:07:08",
      "mem_free": 3362521088,
      "mem_total": 5291769856,
      "mode": "GATEWAY",
      "model": "A7210",
      "name": "7210-I-Backup-7014",
      "reboot_reason": "Reboot by Aruba Central",
      "role": "",
      "serial": "BA0000120",
      "site": null,
      "status": "Up",
      "uptime": 537317
    }
  ]
}
curl --request GET 'https://<API_GATEWAY_BASE_URL>/monitoring/v1/gateways' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'TenantID: <CUSTOMER_ID>'

Clients

API Endpoint: /monitoring/v2/clients
API Method: GET
Base URL: https://apigw-prod2.central.arubanetworks.com
(Replace the Base URL with correct API Gateway)

Request Header: 'Content-Type': 'application/json'; 'Authorization': 'Bearer <access-token>'; 'TenantID': '<customer_id>
Request Query Params: group, swarm_id, label, site, network, serial, cluster_id, band, stack_id, os_type, fields, calculate_total, offset, limit, sort, last_client_mac, timerange, client_type, client_status, show_usage, show_manufacturer, show_signal_db

🚧

Note

You can only specify one of group, swarm_id, cluster_id network, site, or label parameters. More details on this API can be found here

{
  "clients": [
    {
      "associated_device": "CNK6KD5FQ3",
      "associated_device_mac": "e8:26:89:c9:c6:6c",
      "authentication_type": "DOT1X",
      "client_type": "WIRELESS",
      "connected_device_type": "AP",
      "failure_reason": "Client Timeout",
      "failure_stage": "DOT1X",
      "group_id": 274,
      "group_name": "CampusCluster-A",
      "label_id": [
        198
      ],
      "labels": [
        "Campus-deployment"
      ],
      "macaddr": "14:98:77:34:69:e6",
      "manufacturer": "Apple, Inc.",
      "maxspeed": 1200,
      "name": "cemp9",
      "network": "Campus-ent@ employee",
      "os_type": "--",
      "site": "Campus-Site-1",
      "snr": 64,
      "speed": 1134,
      "usage": 2052,
      "user_role": null,
      "username": "cemp9"
    }
  ],
  "count": 1,
  "last_client_mac": "14:98:77:34:69:e6"
}
curl --request GET 'https://<API_GATEWAY_BASE_URL>/monitoring/v2/clients' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'TenantID: <CUSTOMER_ID>'

Topology

This API helps you get the topology details of a site.

API Endpoint: topology_external_api/<site-id>
API Method: GET
Base URL: https://apigw-prod2.central.arubanetworks.com
(Replace the Base URL with correct API Gateway)

Request Header: 'Content-Type': 'application/json'; 'Authorization': 'Bearer <access-token>'; 'TenantID': '<customer_id>
Request Query Params: site_id

{
  "devices": [
    {
      "cid": "eccca1afdcd54c0895b8105e38018109",
      "click_disabled": 0,
      "elementType": null,
      "firmwareVersion": null,
      "groupID": null,
      "groupName": null,
      "health": "poor",
      "healthReason": [],
      "ipAddress": "",
      "lastContacted": 1652091367,
      "macAddress": "F8:60:F0:62:FB:E2",
      "members": null,
      "model": null,
      "name": "pppoe-Aruba-Stack-3810M",
      "role": "Thirdparty",
      "serial": "Thirdparty_f860f062fbe2",
      "status": 0,
      "tags": [
        192,
        193,
        343
      ],
      "vsx": null
    },
    {
      "cid": "eccca1afdcd54c0895b8105e38018109",
      "click_disabled": 0,
      "elementType": null,
      "firmwareVersion": "10.3.1.0",
      "groupID": "269",
      "groupName": "SmallBranch",
      "health": "poor",
      "healthReason": [
        "Status: Down"
      ],
      "ipAddress": "172.17.2.1",
      "lastContacted": 1652148314,
      "macAddress": "20:4C:03:BC:3F:D2",
      "members": null,
      "model": "Aruba9004-LTE",
      "name": "sol1-ss-9004",
      "role": "Controller",
      "serial": "CNKFKSP01Y",
      "status": 0,
      "tags": [
        192,
        193,
        343
      ],
      "vsx": null
    }
  ],
  "edges": [],
  "expiring_devices": {
    "count": 1
  },
  "is_iap_tunnels": 0,
  "rootNodes": [
    "CNKFKSP01Y"
  ],
  "status_code": 200,
  "tunnels": [],
  "uplink_nodes": [],
  "vpnc_group_ids": []
}
curl --request GET 'https://<API_GATEWAY_BASE_URL>/topology_external_api/<SITE-ID>' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'TenantID: <CUSTOMER_ID>'

Alerts & Events

Alerts

Aruba Central MSP mode enables administrators to trigger alerts when tenant provisioning, network,
device, or user management events occur. An MSP admin can configure alerts at the MSP
level which percolate down to all tenant accounts managed by the MSP. For example, if the MSP
administrator has configured an alert to be triggered when an AP is disconnected, the MSP is notified
when an AP is disconnected in any of the tenant networks managed by the MSP. This allows for
faster reactive support and makes monitoring and troubleshooting easy across multiple tenant
accounts.

API Endpoint: /central/v1/notifications
API Method: GET
Base URL: https://apigw-prod2.central.arubanetworks.com
(Replace the Base URL with correct API Gateway)

Request Header: 'Content-Type': 'application/json'; 'Authorization': 'Bearer <access-token>'
Request Query Params: customer_id, group, label, serial, site, from_timestamp, to_timestamp, severity, type, search, calculate_total, ack, fields, offset, limit

🚧

Note

You can only specify one of thegroup or label parameters. More details on this API can be found here

{
  "count": 1,
  "notifications": [
    {
      "acknowledged": false,
      "created_timestamp": 1652790719,
      "customer_id": "eccca1afdcd54c0895b8105e38018109",
      "description": "More than 30% of DHCP attempts made in the last 30 minutes have failed at site Campus-MB-Site",
      "details": {
        "__base_url": "https://app-yoda.arubathena.com",
        "_rule_number": "0",
        "delay": "0",
        "device": "ALL",
        "duration": "30",
        "labels": [
          "208"
        ],
        "site": "Campus-MB-Site",
        "ssid": "ALL",
        "sub_message": " at site Campus-MB-Site",
        "threshold": "30",
        "time": "2022-05-17 12:01:59 UTC"
      },
      "device_id": null,
      "group_name": "",
      "id": "AYDSAPNVJ_Ty_F5wFbJv",
      "labels": [],
      "nid": 1403,
      "setting_id": "eccca1afdcd54c0895b8105e38018109-1403",
      "severity": "Critical",
      "state": "Open",
      "timestamp": 1652790719,
      "type": "CLARITY_DHCP_FAILURE"
    }
  ]
}
curl --request GET 'https://<API_GATEWAY_BASE_URL>/central/v1/notifications' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'TenantID: <CUSTOMER_ID>'

Events

The event log stores important events that occur during the life of the device. It provides a history that can later be consulted to better troubleshoot different problems. You can use this API to get events in the MSP account.

API Endpoint: /monitoring/v2/events
API Method: GET
Base URL: https://apigw-prod2.central.arubanetworks.com
(Replace the Base URL with correct API Gateway)

Request Header: 'Content-Type': 'application/json'; 'Authorization': 'Bearer <access-token>'
Request Query Params: group, swarm_id, label, from_timestamp, to_timestamp, offset, limit, macaddr, bssid, device_mac, hostname, device_type, sort, site, serial, level, event_description, event_type, fields, calculate_total

{
  "count": 1,
  "events": [
    {
      "bssid": "e8:26:89:1c:66:d4",
      "client_mac": "24:1b:7a:cf:b4:c2",
      "description": "DHCP request from client 24:1b:7a:cf:b4:c2 timed out",
      "device_mac": "e8:26:89:c9:c6:6c",
      "device_serial": "CNK6KD5FQ3",
      "device_type": "CLIENT",
      "event_type": "Client DHCP Timeout",
      "event_uuid": "c2b617d8-57cb-4563-b77a-d02d2742aeab",
      "events_details": [
        {
          "client_hostname": "Solutions-Air"
        }
      ],
      "group_name": "CampusCluster-A",
      "has_rowdetail": true,
      "hostname": "AP515-2028-SITEA-2.5.5",
      "labels": [
        {
          "id": 198,
          "name": "Campus-deployment"
        }
      ],
      "level": "negative",
      "number": 55,
      "sites": [
        {
          "id": 155,
          "name": "Campus-Site-1"
        }
      ],
      "timestamp": 1652792161000
    }
  ]
}
curl --request GET 'https://<API_GATEWAY_BASE_URL>/monitoring/v2/events' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'TenantID: <CUSTOMER_ID>'