API endpoint for Circuit health metric and Circuit Bandwidth Capacity metric

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements

API endpoint for Circuit health metric and Circuit Bandwidth Capacity metric

L0 Member

Hi 

Fetching few metrics from API but I don't see separate APIEnd point for  Circuit health metric and Circuit Bandwidth Capacity metric. 

Need help here ?

 

at present able to fetch same data with API : 

https://api.sase.paloaltonetworks.com/sdwan/monitor/v2.6/api/monitor/metrics and appropriate Payload 
Also payload for Circuit Bandwidth Capacity metric is different for each site and circuit path.

Thus are there any separate and Bulk API to fetch there 2 metrics?

 

Thanks in advance

8 REPLIES 8

L1 Bithead

Hi there, 

there's are quite a few different metric endpoints you can find under:
 https://pan.dev/sdwan/api/metrics/ 
the one you mention is used to make multiple query types depending on the payload, examples:

{"start_time":"2025-08-04T02:21:00.000Z","end_time":"2025-08-04T05:26:00.000Z","interval":"5min","metrics":[{"name":"BandwidthUsage","statistics":["average"],"unit":"Mbps"}],"view":{"individual":"direction"},"filter":{"site":["your_site_id"],"waninterface":["your_path_id"],"path":[]}}
{"start_time":"2025-08-04T04:22:00.000Z","end_time":"2025-08-04T05:21:00.000Z","interval":"1min","metrics":[{"name":"LqmPacketLoss","statistics":["average"],"unit":"Percentage"},{"name":"LqmPacketLossThreshold","statistics":["average"],"unit":"Percentage"},{"name":"LqmJitter","statistics":["average"],"unit":"milliseconds"},{"name":"LqmJitterThreshold","statistics":["average"],"unit":"milliseconds"}],"view":{},"filter":{"site":["your_site_id"],"path":["your_path_id"],"direction":"Ingress"}}
{"start_time":"2025-08-04T04:22:00.000Z","end_time":"2025-08-04T05:21:00.000Z","interval":"1min","metrics":[{"name":"LqmPacketLoss","statistics":["average"],"unit":"Percentage"},{"name":"LqmPacketLossThreshold","statistics":["average"],"unit":"Percentage"},{"name":"LqmJitter","statistics":["average"],"unit":"milliseconds"},{"name":"LqmJitterThreshold","statistics":["average"],"unit":"milliseconds"}],"view":{},"filter":{"site":["your_site_id"],"path":["your_path_id"],"direction":"Egress"}}
{"start_time":"2025-08-04T04:22:00.000Z","end_time":"2025-08-04T05:21:00.000Z","interval":"1min","metrics":[{"name":"LqmPacketLoss","statistics":["average"],"unit":"Percentage"},{"name":"LqmJitter","statistics":["average"],"unit":"milliseconds"}],"view":{},"filter":{"site":["your_site_id"],"path":["your_path_id"],"direction":"Ingress"}}
{"start_time":"2025-08-04T04:22:00.000Z","end_time":"2025-08-04T05:21:00.000Z","interval":"1min","metrics":[{"name":"LqmPacketLoss","statistics":["average"],"unit":"Percentage"},{"name":"LqmJitter","statistics":["average"],"unit":"milliseconds"}],"view":{},"filter":{"site":["your_site_id"],"path":["your_path_id"],"direction":"Egress"}}
{"start_time":"2025-08-04T04:22:00.000Z","end_time":"2025-08-04T05:21:00.000Z","interval":"1min","metrics":[{"name":"LqmMos","statistics":["average"],"unit":"count"}],"view":{},"filter":{"site":["your_site_id"],"path":["your_path_id"],"direction":"Ingress"}}
{"start_time":"2025-08-04T04:22:00.000Z","end_time":"2025-08-04T05:21:00.000Z","interval":"1min","metrics":[{"name":"LqmMos","statistics":["average"],"unit":"count"}],"view":{},"filter":{"site":["your_site_id"],"path":["your_path_id"],"direction":"Egress"}}
{"start_time":"2025-08-04T04:22:00.000Z","end_time":"2025-08-04T05:21:00.000Z","interval":"1min","metrics":[{"name":"LqmLatency","statistics":["average"],"unit":"milliseconds"},{"name":"LqmLatencyThreshold","statistics":["average"],"unit":"milliseconds"}],"view":{},"filter":{"site":["your_site_id"],"path":["your_path_id"]}}
{"start_time":"2025-08-04T04:26:00.000Z","end_time":"2025-08-04T05:21:00.000Z","interval":"1min","metrics":[{"name":"Healthscore","statistics":["max"],"unit":"gauge"}],"filter":{"site":["your_site_id"],"waninterface":["your_path_id"],"anynet_link":["your_path_id"]}}
 

 

L0 Member

Thanks . In your reply are the payloads for different statistics . 

wanted to know about Bandwidth Capacity.

have payload  but its per site and per circuit basis . So is there any bulk API per site for Bandwidth Capacity?



@Renuka.Rudrappa wrote:

Hi 

Fetching few metrics from API but I don't see separate APIEnd point for  Circuit health metric and Circuit Bandwidth Capacity metric. 

Need help here ?

 

at present able to fetch same data with API : 

https://api.sase.paloaltonetworks.com/sdwan/monitor/v2.6/api/monitor/metrics and appropriate Payload 
Also payload for Circuit Bandwidth Capacity metric is different for each site and circuit path.

Thus are there any separate and Bulk API to fetch there 2 metrics?

 

Thanks in advance



 


Hi 

Fetching few metrics from API but I don't see separate APIEnd point for  Circuit health metric and Circuit Bandwidth Capacity metric. 

Need help here ?

 

at present able to fetch same data with API : 

https://api.sase.paloaltonetworks.com/sdwan/monitor/v2.6/api/monitor/metrics and appropriate Payload 
Also payload for Circuit Bandwidth Capacity metric is different for each site and circuit path.

Thus are there any separate and Bulk API to fetch there 2 metrics?

 

Thanks in advance



L1 Bithead

There's no bulk API as far as I know, your script has to basically go over each site and circuit and aggregate as needed.

L0 Member

HI Renuka,

 

I am new to API and trying to get the monitoring for SDWAN ION devices but i am not able to get the data

 

Can you help me with correct API URLs or some sample to get the metrics

 

I tried the https://api.sase.paloaltonetworks.com/sdwan/monitor/v2.6/api/monitor/metrics  but getting 404

 


payload = {
    "metrics": ["agg_bw_usage"],
    "site_ids": ["site_ID"],
    "duration": "last_24_hours"
}

headers = {
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}

response = requests.post(API_URL, headers=headers, json=payload)

if response.status_code == 200:
    print(json.dumps(response.json(), indent=2))
else:
    print(f"Error {response.status_code}: {response.text}")

 

 

L0 Member

The API endpoint for Circuit health and Circuit Bandwidth Capacity metrics can vary significantly depending on the specific network device, software-defined wide area network (SD-WAN) solution, or cloud provider being utilized.

L1 Bithead

You will get a time series reply..but here you go... https://github.com/vladracs/prismasase/blob/main/scm_sdwan_sitebw_metrics.py

Thanks Vlad
I was earlier using same API URL -

METRICS_EP = "/sdwan/monitor/v2.6/api/monitor/metrics" but was not getting appropriate output
While using the given script also I am getting same result
HTTP error: 404 Client Error: Not Found for url: https://api.sase.paloaltonetworks.com/sdwan/monitor/v2.6/api/monitor/metrics

My region is townsend, i did update the region but same output, any idea if palo have changed the URL or something?

Thanks in Advance
Tushar
 


 

Hi Tushar, 

404 could come from an issue on the payload itself and not only the API endpoint.

I just used this one against one of the tenants I have access too...

vfranca@M API_SCRIPTS % date                                         

Wed Oct  1 07:31:42 CEST 2025

vfranca@M API_SCRIPTS % python3 scm_sdwan_bw_metrics.py --site BERLIN | more

Profile: xxx

{

  "_status_code": 200,

  "metrics": [

    {

      "series": [

        {

          "data": [

            {

              "statistics": "average",

              "datapoints": [

                {

                  "value": 8.32e-05,

                  "time": "2025-10-01T02:30:00.000Z"

                },


did you use the script above 1:1? 

  • 526 Views
  • 8 replies
  • 0 Likes
Like what you see?

Show your appreciation!

Click Like if a post is helpful to you or if you just want to show your support.

Click Accept as Solution to acknowledge that the answer to your question has been provided.

The button appears next to the replies on topics you’ve started. The member who gave the solution and all future visitors to this topic will appreciate it!

These simple actions take just seconds of your time, but go a long way in showing appreciation for community members and the LIVEcommunity as a whole!

The LIVEcommunity thanks you for your participation!