Skip to main content
GET
/
statistics
Get Statistics
curl --request GET \
  --url https://api.bunny.net/statistics \
  --header 'AccessKey: <api-key>'
import requests

url = "https://api.bunny.net/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/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/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/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/statistics")
.header("AccessKey", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.bunny.net/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
{
  "TotalBandwidthUsed": 123,
  "TotalOriginTraffic": 123,
  "AverageOriginResponseTime": 123,
  "OriginResponseTimeChart": {},
  "TotalRequestsServed": 123,
  "CacheHitRate": 123,
  "BandwidthUsedChart": {},
  "BandwidthCachedChart": {},
  "CacheHitRateChart": {},
  "RequestsServedChart": {},
  "PullRequestsPulledChart": {},
  "OriginShieldBandwidthUsedChart": {},
  "OriginShieldInternalBandwidthUsedChart": {},
  "OriginTrafficChart": {},
  "UserBalanceHistoryChart": {},
  "GeoTrafficDistribution": {},
  "Error3xxChart": {},
  "Error4xxChart": {},
  "Error5xxChart": {}
}

Authorizations

AccessKey
string
header
required

API Access Key authorization header

Query Parameters

dateFrom
string<date-time> | null

(Optional) The start date of the statistics. If no value is passed, the last 30 days will be returned.

dateTo
string<date-time> | null

(Optional) The end date of the statistics. If no value is passed, the last 30 days will be returned.

pullZone
integer<int64>
default:-1

(Optional) If set, the statistics will be only returned for the given Pull Zone

serverZoneId
integer<int64>
default:-1

(Optional) If set, the statistics will be only returned for the given region ID

loadErrors
boolean
default:false

(Optional) If set, the respose will contain the non-2xx response

hourly
boolean
default:false

(Optional) If true, the statistics data will be returned in hourly groupping.

exactRange
boolean
default:false

(Optional) If true and hourly=true, the exact hour components of dateFrom and dateTo will be preserved instead of rounding to full-day boundaries.

loadOriginResponseTimes
boolean
default:false

Load Origin Response Times

loadOriginTraffic
boolean
default:false

Load Origin Traffic

loadRequestsServed
boolean
default:false

Load Requests Served

loadBandwidthUsed
boolean
default:false

Load Bandwidth Used

loadOriginShieldBandwidth
boolean
default:false

Load Origin Shield Bandwidth

loadGeographicTrafficDistribution
boolean
default:false

Load Geographic Traffic Distribution

loadUserBalanceHistory
boolean
default:false

Load User Balance History

Response

The statistics data for the passed parameters.

TotalBandwidthUsed
integer<int64>

The total bandwidth used by the response in the given time range

TotalOriginTraffic
integer<int64>

The total amount of traffic received from the origin

AverageOriginResponseTime
integer<int32>

The median response time origin

OriginResponseTimeChart
object | null

The constructed origin response time chart data

TotalRequestsServed
integer<int64>

The total requests served by the response in the given time range

CacheHitRate
number<double>

The average cache hit rate in the response in the given time range

BandwidthUsedChart
object | null

The constructed bandwdidth used chart data

BandwidthCachedChart
object | null

The constructed cached bandwdidth used chart data

CacheHitRateChart
object | null

The constructed cache hit rate chart data

RequestsServedChart
object | null

The constructed requests served chart data

PullRequestsPulledChart
object | null

The constructed uncached requests served chart data

OriginShieldBandwidthUsedChart
object | null

The constructed origin shield bandwdidth used chart data

OriginShieldInternalBandwidthUsedChart
object | null

The constructed origin shield internal bandwdidth used chart data

OriginTrafficChart
object | null

The constructed origin traffic used chart data

UserBalanceHistoryChart
object | null

The constructed user balance history chart data

GeoTrafficDistribution
object | null

The geo traffic distribution data

Error3xxChart
object | null

The constructed 3XX error responses chart data

Error4xxChart
object | null

The constructed 4XX error responses chart data

Error5xxChart
object | null

The constructed 5XX error responses chart data

Last modified on July 7, 2026