子账户
子账户是你添加到代理用户名中的一个标签,这样使用该标签发送的流量就会被单独计算。为每个客户、项目或团队使用一个子账户,就能查看谁使用了多少流量,而无需单独的套餐或凭据。
子账户适用于住宅代理套餐。
在用户名后面直接添加 -subaccount-NAME。定向和会话选项照常跟在后面:
customer-USERNAME-subaccount-client_a-country-us-sid-abc123-ttl-600:PASSWORD@p.shifter.io:443curl -x customer-USERNAME-subaccount-client_a:PASSWORD@p.shifter.io:443 \ http://ip-info.com/json在面板中,打开一个住宅套餐并进入子账户:输入一个名称,它会显示完整的用户名和代理行,可直接复制使用。同一页面上的代理生成器也有一个子账户字段,用于构建带定向和会话的端点。
| 规则 | 详情 |
|---|---|
| 字符 | 1 到 16 个字母、数字或下划线(A-Z、a-z、0-9、_)。不允许连字符:连字符用于分隔用户名选项 |
| 大小写 | 区分大小写:Client_A 和 client_a 是两个不同的子账户 |
| 范围 | 按套餐区分:两个套餐中使用相同的名称会被视为两个独立的子账户 |
| 创建 | 无需创建。子账户会在其首次请求发出几分钟后出现 |
| 保留 | 自最后一次请求起 365 天内列出。在此期间内重新使用同一名称会延续其原有历史记录 |
在面板中,套餐页面会列出每个子账户的流量,包括今天、过去 7 天和过去 30 天的数据,套餐页面和仪表盘上的流量图表都可以在主账户和任意子账户之间切换查看。
两个端点都将你账户的 api_token 作为查询参数,与用量与配额 API相同。在面板的账户 → API 令牌下生成它。每个端点的速率限制为每分钟 30 次请求。
{membership} 路径参数接受套餐页面上显示的会员 ID(例如 68057),或套餐 URL 中的短代码(例如 Rxqk)。
GET https://shifter.io/api/v1/memberships/{membership}/subaccounts
返回该套餐在过去 365 天内出现过的所有子账户,按名称排序。
| 参数 | 位置 | 必填 | 描述 |
|---|---|---|---|
membership | path | 是 | 会员 ID 或短代码 |
api_token | query | 是 | 你的账户 API 令牌 |
示例:
curl "https://shifter.io/api/v1/memberships/68057/subaccounts?api_token=YOUR_API_TOKEN"响应:
{ "error": null, "code": 200, "data": { "id": "Rxqk", "subaccounts": ["BigReseller_7", "client_a", "client_b"] }}从未发送过子账户流量的套餐会返回空列表。
某时间范围内的子账户用量
Section titled “某时间范围内的子账户用量” GET https://shifter.io/api/v1/memberships/{membership}/subaccounts/{subaccount}/usage
某个子账户在两个时间点之间使用的流量。
| 参数 | 位置 | 必填 | 描述 |
|---|---|---|---|
membership | path | 是 | 会员 ID 或短代码 |
subaccount | path | 是 | 子账户名称,大小写精确匹配 |
api_token | query | 是 | 你的账户 API 令牌 |
start | query | 是 | 窗口的起始时间,含边界 |
end | query | 是 | 窗口的结束时间,不含边界 |
start 和 end 接受日期格式(2026-10-01)或完整时间戳格式(2026-10-01T09:00:00),两者相隔最多 366 天。时间以巴黎时间读取,这是流量计数器运行所依据的时钟。
示例:
curl "https://shifter.io/api/v1/memberships/68057/subaccounts/client_a/usage?start=2026-10-01&end=2026-11-01&api_token=YOUR_API_TOKEN"响应:
{ "error": null, "code": 200, "data": { "id": "Rxqk", "subaccount": "client_a", "start": "2026-10-01T00:00:00", "end": "2026-11-01T00:00:00", "granularity": "day", "bytes": 412380000000, "gb": 412.38, "upload_bytes": 18230000000, "download_bytes": 394150000000, "requests": 9184402 }}流量按桶(bucket)计数,窗口所涉及的每个桶都会被整体计入:
- 起始时间在过去 7 天内的窗口使用小时级桶(
"granularity": "hour")。 - 更早的窗口使用天级桶(
"granularity": "day"),因此从2026-09-01T15:00:00开始的窗口会计入整个 9 月 1 日的数据。
若需要精确的每日数据,请使用整天作为窗口。
在窗口内没有流量的子账户,或已过期的子账户,会返回零值。
| 状态码 | 含义 |
|---|---|
400 | 该套餐不是住宅代理套餐,子账户名称无效,或 start/end 缺失、顺序颠倒、或相隔超过 366 天 |
401 | api_token 缺失或无效 |
403 | 该套餐位于你不属于的工作区中 |
404 | 未找到该套餐 |
429 | 已达到速率限制,请使用退避重试 |
503 | 子账户数据暂时不可用,请使用退避重试 |