套餐统计
文档套餐统计

套餐统计

按时间段查询代理套餐的流量使用历史。

GET /packages/:id/stats

返回所选时间段内按天划分的流量和请求计数。适用于构建使用量仪表盘或在流量低时触发警报。

GET/api/v1/packages/{id}/stats

查询参数

参数默认选项
period30d7d · 30d · 90d · 1y · day · week · month · 3months · 6months · year
aggregatedayminute · hour · day. 历史序列的桶大小。minute 仅在 period=7d 或 day 时允许。
stats-request.sh
curl "https://raxyproxy.com/api/v1/packages/12/stats?period=7d" \
     -H "Authorization: Bearer raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
stats-response.json
{
  "data": {
    "package_id":   12,
    "period":       "7d",
    "aggregate":    "day",
    "quota_gb":     10.0,
    "used_gb":      3.2140,
    "available_gb": 6.7860,
    "usage_pct":    32.14,
    "history": [
      { "datetime": "2026-05-09",       "traffic_gb": 0.512100, "requests": 4820 },
      { "datetime": "2026-05-10",       "traffic_gb": 0.480300, "requests": 4612 },
      { "datetime": "2026-05-11",       "traffic_gb": 0.631200, "requests": 5901 },
      { "datetime": "2026-05-12",       "traffic_gb": 0.390000, "requests": 3741 },
      { "datetime": "2026-05-13",       "traffic_gb": 0.520000, "requests": 4900 },
      { "datetime": "2026-05-14",       "traffic_gb": 0.441200, "requests": 4210 },
      { "datetime": "2026-05-15",       "traffic_gb": 0.239188, "requests": 2390 }
    ]
  },
  "meta": { "version": "v1" }
}

With aggregate=hour or aggregate=minute the datetime values include time-of-day, for example 2026-05-15T14:00:00+00:00.

响应字段

字段类型描述
package_idinteger此数据所属的套餐
periodstring请求的时间段(回显)
quota_gbfloat购买的总流量
used_gbfloat累计消耗的流量
available_gbfloat剩余流量
usage_pctfloat消耗百分比
aggregatestringminute · hour · day
history[].datetimestring日历日期
history[].traffic_gbfloat当天使用的流量(GB)
history[].requestsinteger该桶内的代理请求数

按主机划分的流量分布(前 N 个目的地)可见: /api/v1/packages/{id}/stats/hosts.

近期错误事件(4xx/5xx/超时)可见: /api/v1/packages/{id}/stats/errors.

代码示例

stats.py
import requests

API_KEY    = 'raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
PACKAGE_ID = 12

resp = requests.get(
    f'https://raxyproxy.com/api/v1/packages/{PACKAGE_ID}/stats',
    params={'period': '30d'},
    headers={'Authorization': f'Bearer {API_KEY}'},
    timeout=10,
).json()

data = resp['data']
print(f"Used {data['used_gb']} / {data['quota_gb']} GB ({data['usage_pct']}%)")

for bucket in data['history']:
    print(f"  {bucket['datetime']}: {bucket['traffic_gb']:.4f} GB  {bucket['requests']} requests")
stats.mjs
const API_KEY    = 'raxy_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
const PACKAGE_ID = 12;

const url  = `https://raxyproxy.com/api/v1/packages/${PACKAGE_ID}/stats?period=30d`;
const resp = await fetch(url, {
    headers: { Authorization: `Bearer ${API_KEY}` },
});
const { data } = await resp.json();

console.log(`Used ${data.used_gb} / ${data.quota_gb} GB (${data.usage_pct}%)`);

for (const day of data.history) {
    console.log(`  ${day.datetime}: ${day.traffic_gb.toFixed(4)} GB  ${day.requests} requests`);
}