套餐计量方式
FourA 提供两款产品,且按不同的单位计量。您的套餐按这两种单位之一进行销售,这决定了限制您的配额类型以及您在控制面板中看到的卡片。本页面在一屏内完整展示了该计费模型。
两款产品,两种计量单位
| 产品 | 调用方式 | 计量单位 |
|---|---|---|
| API | POST /api/single、/api/proxy、/api/browser、/api/auto |
请求,以积分定价 |
| Proxy port | 通过支持 proxy URL 的任意客户端调用 proxy.foura.ai:34004 |
隧道,以 GB 定价 |
在 API 上,只有 success 结果会消耗积分。目标端、客户端或我们服务端失败的请求均不消耗积分。高级流量独立于积分计算,详见下文。请参阅 Request Outcomes。
在 proxy port 上没有积分也没有请求计数,这并非疏漏。隧道是您的工具建立的一个连接,其内部传输的是您自己的加密流量,因此 FourA 只能统计隧道及其传输的字节数,无法统计更细粒度的数据。在此处统计请求数会导致该数值永远无法与您自己的日志对齐。因此,该端口始终按 GB 计费。请参阅 Proxy Port。
GB 的定义及其构成
1 GB 代表 1,073,741,824 字节(2^30,该单位亦写作 GiB)。您套餐中的所有配额、计数器和价格在 API 与 proxy port 上均使用该数值。
统计内容因产品而异,因为二者承载的内容不同:
| 位置 | 统计内容 |
|---|---|
| API,标准出口 | 您发送给我们的 request body 加上我们返回的 response body。双向的 HTTP header 均不计入。 |
| API,高级出口 | 经过网络传输的全部传输字节数(双向),按传输时的压缩与加密状态计算。 |
| Proxy port | 隧道建立后双向传输的所有字节,包括客户端与目标站点建立加密连接的过程。建立隧道本身不计入流量,但端口在为您建立隧道时尝试且未使用的高级出口会计为高级流量。 |
几点值得注意的事项:
- 页面按解码后计费,因为我们交付的就是解码后的页面。 获取页面可能需要运行真实浏览器、完成页面要求的额外验证步骤,然后解码 response 并向你交付可用内容。你付费获取的是该结果,而不是其传输时的压缩大小。proxy 端口属于另一种情况,计费方式也相反:在那里我们仅承载你的原始连接,不对内部内容做任何处理,因此我们完全按照穿过隧道的字节数计费。
- 标准池上的重试不收取任何费用。 当 Proxy Finder 轮换多个出口时,无论尝试了多少个出口,你只需为你收到的结果支付一次费用。在高级出口上,每次尝试都会计费,因为高级网络就是这样向我们收费的。
- 标准出口上的浏览器会话与任何其他 API response 一样计费:仅计算我们返回给你的 body,而不是页面加载的每个子资源。通过高级出口时,整个会话的线上流量均会计算在内。
- 高级流量包含在你的总量中,而不是额外叠加。 你的标准配额仅扣除未经过高级出口的部分。
- Auto 调用本身不产生额外流量。 它发起的 Single、Proxy Finder 和 Browser request 均按你自己直接发起的请求进行计费。
- 目标站点的拒绝会计费;你自身套餐限制的拒绝不计费。 当目标站点返回 403、404、429 或 5xx 时,我们已将该 response 传输给你,因此计费。当你自身套餐的限制拒绝了该 request 时,不会抓取任何内容,也不计费。
- 不进行任何向上取整。 字节数精确计算,无块大小限制,单次 request 无最低消费,你的数据每晚都会与我们的指标存储进行对账。
套餐的两种计费销售方式
每个账户都会运行这两个计量器。区别仅在于你的套餐是以哪种方式销售的。
按点数销售
API 按计费 request 扣除点数。proxy 端口拥有独立的包含 GB 配额,单独标价,因为隧道没有可扣除点数的单个 request。两者互不影响:你的 API 流量不会消耗端口的 GB 配额,端口的隧道也不会消耗你的点数。否则就等于对一个 API request 收取两次费用(一次收点数,另一次收该点数产生的字节数)。
除非你的套餐包含流量上限,否则 API 自身的流量上限默认处于关闭状态。
按流量销售
统一的标准流量配额同时覆盖 API 和 proxy 端口,因为这两种接入方式使用相同的单位定价。以此方式销售的套餐不计点数,因此控制面板会完全隐藏点数,而不是显示一个毫无意义的数字。
两种套餐中的高级流量
在任何一种套餐中,高级流量始终拥有独立的配额。它绝不会计入标准流量数值中,因此 1 GB 的流量绝不会同时占用两个额度上限。你可以通过 POST /api/proxy/ 上的 exitClass: premium 或 proxy 端口上的 -network-premium 接入高级出口。
流量在穿过网络时进行计量:双向计算,并按传输时的压缩与加密状态统计。在 API 上,每次 premium 尝试均计入配额,包括未能成功返回页面的尝试;在 proxy 端口上,计量内容包含每个 premium 隧道的流量,以及端口在建立隧道过程中尝试并丢弃的任何 premium 出口流量。
拒绝请求的场景与位置
| 配额项 | API 表现 | proxy 端口表现 |
|---|---|---|
| 当前周期 Credits | 返回 429,附带 X-FourA-Limit: plan_limit_credits |
不适用 |
| 当前周期标准流量 | 返回 429,附带 X-FourA-Limit: plan_limit_bandwidth |
返回 429,并在 X-Foura-Error 中指明流量 |
| 同时开启的隧道数 | 不适用 | 返回 429,附带 X-Foura-Error |
| 每分钟开启隧道数 | 不适用 | 返回 429,附带 X-Foura-Error |
| Premium 流量 | 降级处理,不拒绝 | 显式请求时返回 403 |
CONNECT 没有可放置 JSON 错误信息的 body,因此端口拒绝会返回状态码加 header,而不是 Rate Limits 中描述的结构。在 proxy 连接上,请优先读取 X-Foura-Error。
Premium 用尽是唯一的非对称场景
两种接入方式的处理机制故意设计得不同,因为“主动要求消费”与“先前配置的默认项”属于不同的场景。
在 API 上,premium 配额耗尽绝不会中断任务。请求将由标准资源池处理,响应会包含 exitClass: standard,以便您了解实际获取的服务类型。如果套餐本身完全不包含 premium 出口,响应则不同:将返回 403 及 plan_limit_premium。
在 proxy 端口上:
- 指定了
-network-premium的连接会被拒绝,并返回403。由于您主动要求使用付费资源,若静默切换到其他节点处理,会导致账单中缺少该笔 premium 记录而难以核对。 - 保存在 proxy 用户上的 premium 默认配置会降级到共享网络,隧道仍会正常建立。因为您并未针对本次连接专门选择该配置。
- 处于就绪状态的
-fallback-premium直接不会触发。
购买更多配额
充值配额的计费方式与套餐内包含的配额完全相同。每个周期内会优先扣除套餐自带配额,超出部分才会消耗购买的余额。购买的配额有效期为 12 个月。
控制台在所有显示配额的地方都会将这两组数字分开展示(75,000 (50,000 incl + 25,000 bought)),以便屏幕上的数值能与手头的发票相互核对。
查看各项数据的位置
| 页面 | 提供的具体信息 |
|---|---|
| Billing | 当前周期的使用量与可用配额对比,按套餐计量项分别展示卡片,每项均附带购买按钮 |
| Usage & Limits | 各项限制及其实时计数器,并按 key、endpoint 和 proxy 用户提供细分数据 |
| Overview | 任意周期内按产品划分的请求量与流量统计 |
Billing 显示哪些卡片遵循上述两种情况:按积分销售的方案会显示“积分”卡片和“Proxy 端口流量”卡片;按流量销售的方案两者均不显示,其“标准流量”卡片包含上限并注明 The API and the proxy port together。
请勿硬编码任何此类数值。每次 API 拒绝都会附带导致拒绝的上限阈值,每次端口拒绝都会在 X-Foura-Error 中指明。
相关内容
- Rate Limits:API 上的所有方案限制响应体与 header
- Proxy Port:计量计费、响应码以及用户名选项
- Request Outcomes:针对 request 和隧道计费的执行结果
- Billing & Subscriptions:方案、充值和发票
- Usage & Limits:对应方案的实时计数器