请求结果

发送到 FourA API 的每个 request 都会被归类为唯一的一种 outcome。该 outcome 在 request 时计算一次,并记录在您的 API key 下。您的 dashboard、activity feed 和 billing 都读取同一个字段。

只有 success 是计费的。

七种 Outcome

Outcome Layer 含义
success n/a 交付了有效的 response。计入您的计费额度。
application_error target 目标返回了 HTTP 200,但 body 中包含 error 字段。
application_fail target 目标返回了非 2xx 状态码且未被您的 validate 规则接受,或者完全没有 response。
client_error caller 您的 request 在离开 FourA 之前被拒绝。参数错误、proxy 值格式错误、受 SSRF 保护的 URL。
rate_limit FourA 达到了您的 RPM 或并发限制。
service_error FourA 后端返回了 5xx,或者其 body 不是有效的 JSON。
service_fail FourA 网络故障:超时、连接被拒绝、DNS 错误、客户端断开连接。

layer 列说明了责任归属:

  • target outcome 与您调用的网站有关。您的 request 成功到达 FourA,且 FourA 成功到达目标网站。目标网站本身返回了错误。
  • caller outcome 意味着您的 request 根本没有执行机会。请修正 request 的格式。
  • FourA outcome 是我们的问题。请重试,如果问题持续存在,请检查 status page

目标网站返回 403 属于 application_fail,而不是 client_error。您的调用格式正确,只是该网站拒绝了访问。

Success 关联 validate

在没有 validate 的情况下,只有当目标返回 HTTP 200 时,API 才会将 request 标记为 success

使用 validate 时,success 将遵循您声明的规则。如果您告诉 API 对于给定的 request,200 和 403 都是可以接受的,那么 403 将作为 success 返回。您收到的 body 仍保持不变。

curl -X POST https://eu.api.foura.ai/api/single/ \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "method": "GET",
    "url": "https://target.example/feed",
    "validate": {
      "status": { "accept": [200, 403] }
    }
  }'

在此调用中,403 response 将被视为 success 并作为一个 request 计费。500 response 将被视为 application_fail 且不计费。

相同的逻辑也适用于 validate.headersvalidate.data。无论 HTTP 状态如何,引擎根据您的规则接受的任何 response 都会作为 success 返回。

计费影响

Outcome 是否计费 是否计入额度
success
application_error
application_fail
client_error
rate_limit
service_error
service_fail

只有成功交付您请求的数据的 request 才会收费。FourA 侧、目标网站侧或您自身侧的失败均不计费。

在 Dashboard 中查看 Outcome

您的 API key 发起的每个 request 都会显示在 Activity feed 中,并带有其 outcome 标签。MetricsOverview 页面会聚合相同的字段,用于生成环形图和时间线。

当您按 outcome 筛选 Activity 时,还可以专注于单个产品(Single、Proxy、Browser),以查看某类失败是否仅针对特定 endpoint。

重试策略

基于 outcome 的初步重试策略:

Outcome 安全重试? 何时重试
success n/a 您已获取 response。
application_error 有时 读取目标的 error body。部分是瞬时的,大多数不是。
application_fail 有时 如果目标对您进行 rate-limiting,请放慢速度。如果它阻止了您,请切换到 Proxy 或 Browser endpoint。
client_error request 将以相同的方式再次失败。请修正输入。
rate_limit 遵循 response body 中的 retryAfter
service_error 采用短暂的指数退避。
service_fail service_error 相同。

相关内容

更新于: 2026年6月18日