Get Usage Statistics
curl --request GET \
--url https://dashboard.statproxies.com/api/v2/order/usage/{order_id}import requests
url = "https://dashboard.statproxies.com/api/v2/order/usage/{order_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://dashboard.statproxies.com/api/v2/order/usage/{order_id}', 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://dashboard.statproxies.com/api/v2/order/usage/{order_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://dashboard.statproxies.com/api/v2/order/usage/{order_id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dashboard.statproxies.com/api/v2/order/usage/{order_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dashboard.statproxies.com/api/v2/order/usage/{order_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"response": "<string>",
"order_id": "<string>",
"period": "<string>",
"usage": {},
"usage.timeseries": [
{}
],
"usage.totals": {},
"top_domains": [
{}
]
}Order API
Get Usage Statistics
Retrieve live proxy usage statistics for a datacenter order.
GET
/
api
/
v2
/
order
/
usage
/
{order_id}
Get Usage Statistics
curl --request GET \
--url https://dashboard.statproxies.com/api/v2/order/usage/{order_id}import requests
url = "https://dashboard.statproxies.com/api/v2/order/usage/{order_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://dashboard.statproxies.com/api/v2/order/usage/{order_id}', 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://dashboard.statproxies.com/api/v2/order/usage/{order_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://dashboard.statproxies.com/api/v2/order/usage/{order_id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dashboard.statproxies.com/api/v2/order/usage/{order_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dashboard.statproxies.com/api/v2/order/usage/{order_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"response": "<string>",
"order_id": "<string>",
"period": "<string>",
"usage": {},
"usage.timeseries": [
{}
],
"usage.totals": {},
"top_domains": [
{}
]
}Retrieve live proxy usage statistics for a datacenter order — the same data shown on the dashboard’s usage view.
Only available for datacenter orders. Residential and other product categories have no usage source and return 400.
How It Works
Usage values are scraped live at request time from each child proxy server’s usage report (no caching), aggregated across every server that hosts the order, and returned as a usage time series plus a list of the top requested domains. Because the data is fetched live, if a child server hosting the order is not currently producing usage reports, its slice of usage is omitted (each per-server fetch has a 5s timeout and fails open). Totals therefore reflect only the servers that are reporting.Request
Headers
| Header | Value | Required |
|---|---|---|
Authorization | Bearer {your_api_key} | Yes |
Path Parameters
string
required
The order ID returned from order creation.
Query Parameters
string
default:"monthly"
The reporting granularity. One of
daily, weekly, monthly.daily— time series is keyed by hour ("00"–"23")weekly— time series is keyed by day of weekmonthly— time series is keyed by day of month ("01"–"31")
string
ISO date string selecting the reporting window (e.g.
2026-06-25). Defaults to today.Example Requests
curl -X GET "https://dashboard.statproxies.com/api/v2/order/usage/sub_1rqjp3jb4g9i6pkhdwmkpjob" \
-H "Authorization: Bearer {your_api_key}"
# Daily usage for a specific date
curl -X GET "https://dashboard.statproxies.com/api/v2/order/usage/sub_1rqjp3jb4g9i6pkhdwmkpjob?period=daily&date=2026-06-25" \
-H "Authorization: Bearer {your_api_key}"
Response
Success Response
{
"response": "success",
"order_id": "sub_1rqjp3jb4g9i6pkhdwmkpjob",
"period": "monthly",
"usage": {
"timeseries": [
{ "date": "01", "usage": 1024.55, "requests": 84213 },
{ "date": "02", "usage": 980.12, "requests": 79002 }
],
"totals": {
"bytes_in": 2152000000,
"bytes_out": 2152000000,
"requests": 163215
}
},
"top_domains": [
{
"url": "example.com",
"requests": 50213,
"megabytesTransferred": "1.21",
"firstVisit": "Jun 01, 12:03:11 AM 2026",
"mostRecentVisit": "Jun 25, 09:44:52 PM 2026",
"requestPercentage": "30.77"
}
]
}
Response Fields
string
Status of the request.
string
The order the statistics are for.
string
The reporting granularity that was applied (
daily, weekly, or monthly).object
The aggregated usage data.
array
Per-bucket usage. Each entry has a
date key (hour, day of week, or day of month depending on period), usage (megabytes transferred for that bucket), and requests (the request/hit count for that bucket).object
Aggregate totals across all reporting servers.
bytes_in and bytes_out are raw byte totals; requests is the total hit count.array
The most-requested domains, sorted by request count (descending), limited to the top 100.
requestPercentage is computed across the aggregated set.Error Responses
400 Bad Request - Invalid Period
{
"response": "error",
"message": "Invalid period specified. Must be one of: daily, weekly, monthly"
}
400 Bad Request - Invalid Date
{
"response": "error",
"message": "Invalid date format"
}
400 Bad Request - Not a Datacenter Order
{
"response": "error",
"message": "Usage statistics are only available for datacenter proxies"
}
401 Unauthorized
{
"message": "Invalid authenticated user"
}
404 Not Found
{
"response": "error",
"message": "Order not found"
}
{
"response": "error",
"message": "Order has no datacenter proxy username"
}
500 Internal Server Error
{
"response": "error",
"message": "Internal server error"
}
Notes
- The key must have the
orderservice scope. Each call is rate-limited per key and recorded in the audit log (service: order,action: read). - Data is fetched live with no caching, so response time depends on how many servers host the order.
