Get Load Balancer statistics
curl --request GET \
--url https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics \
--header 'AccessKey: <api-key>'import requests
url = "https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics"
headers = {"AccessKey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {AccessKey: '<api-key>'}};
fetch('https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"AccessKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("AccessKey", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics")
.header("AccessKey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["AccessKey"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"Summary": {
"TotalRequests": 123,
"TotalTraffic": 123,
"AverageOriginRttMs": 123,
"AllOriginsExhausted": 123,
"AverageRetryDepth": 123,
"StickySessionHits": 123,
"RequestsByMethod": {}
},
"RequestsByOrigin": [
{
"OriginId": 123,
"OriginName": "<string>",
"Values": {}
}
],
"RequestsByOriginGroup": [
{
"OriginGroupId": 123,
"OriginGroupName": "<string>",
"Values": {}
}
],
"TrafficByOrigin": [
{
"OriginId": 123,
"OriginName": "<string>",
"Values": {}
}
],
"OriginLatency": [
{
"OriginId": 123,
"OriginName": "<string>",
"Percentile": 123,
"Values": {}
}
],
"OriginFailures": [
{
"OriginId": 123,
"OriginName": "<string>",
"StatusCode": "<string>",
"Values": {}
}
]
}{
"ErrorKey": "<string>",
"Field": "<string>",
"Message": "<string>"
}{
"ErrorKey": "<string>",
"Field": "<string>",
"Message": "<string>"
}{
"ErrorKey": "<string>",
"Field": "<string>",
"Message": "<string>"
}Load Balancer
Get Load Balancer statistics
GET
/
loadbalancer
/
{loadBalancerId}
/
statistics
Get Load Balancer statistics
curl --request GET \
--url https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics \
--header 'AccessKey: <api-key>'import requests
url = "https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics"
headers = {"AccessKey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {AccessKey: '<api-key>'}};
fetch('https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"AccessKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("AccessKey", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics")
.header("AccessKey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bunny.net/loadbalancer/{loadBalancerId}/statistics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["AccessKey"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"Summary": {
"TotalRequests": 123,
"TotalTraffic": 123,
"AverageOriginRttMs": 123,
"AllOriginsExhausted": 123,
"AverageRetryDepth": 123,
"StickySessionHits": 123,
"RequestsByMethod": {}
},
"RequestsByOrigin": [
{
"OriginId": 123,
"OriginName": "<string>",
"Values": {}
}
],
"RequestsByOriginGroup": [
{
"OriginGroupId": 123,
"OriginGroupName": "<string>",
"Values": {}
}
],
"TrafficByOrigin": [
{
"OriginId": 123,
"OriginName": "<string>",
"Values": {}
}
],
"OriginLatency": [
{
"OriginId": 123,
"OriginName": "<string>",
"Percentile": 123,
"Values": {}
}
],
"OriginFailures": [
{
"OriginId": 123,
"OriginName": "<string>",
"StatusCode": "<string>",
"Values": {}
}
]
}{
"ErrorKey": "<string>",
"Field": "<string>",
"Message": "<string>"
}{
"ErrorKey": "<string>",
"Field": "<string>",
"Message": "<string>"
}{
"ErrorKey": "<string>",
"Field": "<string>",
"Message": "<string>"
}Authorizations
AccessKeybearer
API Access Key authorization header
Path Parameters
Query Parameters
(Optional) The start date of the statistics. If no value is passed, the last 24 hours will be returned. Rounded to full-day boundaries unless hourly=true and exactRange=true.
(Optional) The end date of the statistics. Rounded to full-day boundaries unless hourly=true and exactRange=true.
(Optional) If true, the statistics will be returned in hourly grouping. Hourly statistics are available for the last 30 days only.
(Optional) If true and hourly=true, the exact hour components of from and to will be preserved instead of rounding to full-day boundaries.
Response
The Load Balancer statistics
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Last modified on September 7, 2026