> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexinference.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 限制与支出

> 您的组织可能耗尽的资源、报告这些资源的两个标头，以及如何读取流的成本。

您自己的提供商密钥没有金额上限。托管密钥（Managed Keys）会消耗预付余额，因此可能会耗尽。

两个响应标头会报告您剩余的额度。`GET /v1/limits` 通过一次调用报告所有情况。

## 您自己的密钥没有金额上限

我们不设置请求限额，也没有月度上限。您无需持有余额来扣除。请参阅[定价和计费](/zh/billing)。

一个上限适用。您的组织同时运行固定数量的 flex 竞速。超过该数量的请求将在标准层级运行。您会失去折扣，但仍能获得结果。报告将该数量称为 `own_keys.flex_race_slots`。

## 托管密钥可能耗尽的资源

| 上限     | 计数内容                                           | 达到上限时                                                                               |
| ------ | ---------------------------------------------- | ----------------------------------------------------------------------------------- |
| 预付余额   | 优先使用现金，其次是促销积分。                                | [`insufficient_balance`](/zh/errors#insufficient_balance)，状态码 `402`。                |
| 每日支出上限 | 今日已结算支出，加上今日进行中的请求。时间窗口为 UTC 日。                | [`spend_velocity_exceeded`](/zh/errors#spend_velocity_exceeded)，状态码 `429`。          |
| 托管并发数  | 您进行中的托管请求。                                     | [`rate_limit_exceeded`](/zh/errors#rate_limit_exceeded)，状态码 `429`，附带 `Retry-After`。 |
| 共享池速率  | 每分钟在所有托管组织共享的池中的请求数。目前包括 Workers AI 和 Foundry。 | [`rate_limit_exceeded`](/zh/errors#rate_limit_exceeded)，状态码 `429`。                  |

除了这四项之外，风险审查也可能暂停托管请求。它会返回 [`account_under_review`](/zh/errors#account_under_review)。您自己的密钥路由仍可正常工作。

还有四项限制适用于所有组织。其中三项分别计算来自一个组织、一个密钥和一个 IP 地址的每分钟请求数。第四项计算来自一个 IP 地址的失败认证尝试次数。我们还会拒绝超过 50,000,000 字节的请求体，并返回 [`request_too_large`](/zh/errors#request_too_large)。

报告会用其时间窗口和范围来命名每个每分钟限制。它省略了具体数字，因为 Cloudflare 在其运行的每个位置都会计算这些限制，一个数字不足以作为您规划预算的依据。请根据 `Retry-After` 中的秒数进行退避。

## 两个响应标头报告您的支出

自有密钥响应在路由解析后会携带它们，托管响应则从余额冻结时开始携带它们。

有三种响应不包含任何标头：我们提前拒绝的请求、模型目录，以及我们无法读取余额的托管请求。我们宁愿不提供这些标头，也不愿猜测。

| 标头                                | 内容                                                          |
| --------------------------------- | ----------------------------------------------------------- |
| `x-flexinference-spend-remaining` | 当没有金额上限时显示 `unlimited`。否则为一个带符号的微美元整数。它是您的余额和每日上限剩余额度中的较小值。 |
| `x-flexinference-spend-as-of`     | 我们读取该数字的时间，以纪元毫秒表示。它只与数字一起出现，因为 `unlimited` 不需要新鲜度标记。       |

我们在接受此请求时读取了这两个值。该数字涵盖了此请求结算其自身成本之前您剩余的额度。

负数意味着我们拒绝所有托管请求。充值可以修复负余额。每日负余额将在下一个 UTC 午夜或提高上限后恢复，充值无法恢复。

请在您已发送的流量上读取这些标头。在每次请求前轮询端点会增加一次往返开销，并且不会比标头提供更多信息。

## 限制端点

`GET /v1/limits` 需要您的 FlexInference 密钥。它报告您的组织所受的上限。它读取允许您的请求的记录，因此绝不会声称有我们实际会拒绝的空间。我们从不缓存答案。

```bash theme={null}
curl https://api.flexinference.com/v1/limits \
  -H "Authorization: Bearer $FLEXINFERENCE_API_KEY"
```

```json theme={null}
{
  "object": "limits",
  "as_of": 1769558400123,
  "own_keys": {
    "unlimited": true,
    "flex_race_slots": {
      "limit": 40,
      "scope": "organization",
      "on_exceed": "degrade_to_standard"
    }
  },
  "managed": {
    "providers": ["anthropic", "openai"],
    "serving": "ok",
    "paused_reason": null,
    "binding": "daily_spend",
    "spend_remaining_micro_usd": 41200000,
    "currency": "USD",
    "balance": {
      "remaining_micro_usd": 94880000,
      "cash_micro_usd": 84880000,
      "credit_micro_usd": 10000000,
      "reserved_micro_usd": 120000
    },
    "daily_spend": {
      "limit_micro_usd": 250000000,
      "used_micro_usd": 208800000,
      "remaining_micro_usd": 41200000,
      "window": "utc_day",
      "resets_at": 1769644800
    },
    "concurrency": {
      "limit": 10,
      "scope": "organization",
      "on_exceed": "refuse"
    },
    "ramp_week": 1,
    "ramp_defaults": {
      "concurrency": 10,
      "daily_spend_micro_usd": 250000000
    },
    "override_in_force": {
      "concurrency": false,
      "daily_spend": false
    },
    "rates": []
  },
  "abuse_limits": {
    "counted_per_cloudflare_location": true,
    "request_body_bytes": 50000000,
    "rates": [
      {
        "name": "organization_requests",
        "scope": "organization",
        "window_seconds": 60,
        "limit": null,
        "on_exceed": "refuse"
      },
      {
        "name": "api_key_requests",
        "scope": "api_key",
        "window_seconds": 60,
        "limit": null,
        "on_exceed": "refuse"
      },
      {
        "name": "client_ip_requests",
        "scope": "client_ip",
        "window_seconds": 60,
        "limit": null,
        "on_exceed": "refuse"
      },
      {
        "name": "failed_authentications",
        "scope": "client_ip",
        "window_seconds": 60,
        "limit": null,
        "on_exceed": "refuse"
      }
    ]
  }
}
```

所有金额字段均为微美元整数。一美元等于 1,000,000 微美元。

| 字段                                  | 内容                                                                                                                  |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `as_of`                             | 纪元毫秒。读取余额时是余额自身的时钟，未读取时是我们的时钟。                                                                                      |
| `own_keys.unlimited`                | 始终为 `true`。                                                                                                         |
| `own_keys.flex_race_slots`          | 同时运行的 flex 竞速数量。超过此数量会失去折扣，但仍能获得结果。                                                                                 |
| `managed`                           | 当没有提供商通过托管密钥提供服务时为 `null`。                                                                                          |
| `managed.serving`                   | `ok`，或在拒绝所有托管请求的三种状态下为 `paused`。                                                                                    |
| `managed.paused_reason`             | 具体状态。`account_under_review`、`spend_velocity_exceeded` 或 `insufficient_balance` 之一。当 `serving` 为 `ok` 时，此字段为 `null`。 |
| `managed.binding`                   | 哪个上限首先生效。`balance`、`daily_spend`、`paused` 或 `exempt` 之一。                                                            |
| `managed.spend_remaining_micro_usd` | `x-flexinference-spend-remaining` 标头携带的数字。                                                                          |
| `managed.balance`                   | `remaining_micro_usd` 是现金加积分。这是我们与零比较的数量。`reserved_micro_usd` 是您进行中的请求所持有的资金，我们不会将其扣除。                              |
| `managed.daily_spend`               | 上限、今日已用量和剩余量。`resets_at` 是下一个 UTC 午夜的纪元秒数。                                                                          |
| `managed.concurrency`               | 您的组织同时运行的托管请求数量。                                                                                                    |
| `managed.ramp_week`                 | 您所处的账户年龄计划的周数。第 0 周表示从未充值的账户。                                                                                       |
| `managed.ramp_defaults`             | 该周单独为您提供的额度。一个并发数和一个每日上限。                                                                                           |
| `managed.override_in_force`         | 每个分级上限一个标志。`true` 表示管理员设置了该数字，因此每周计划不会更改它。                                                                          |
| `managed.rates`                     | 此组织在共享池上提供服务的每分钟限制。                                                                                                 |
| `abuse_limits`                      | 所有组织共享的限制，加上请求体大小上限（字节）。                                                                                            |

最后三个字段说明了您的并发数和每日上限为何显示为当前值。豁免组织没有上限需要解释，因此这三个字段都显示 `null`。

暂停的余额会报告暂停状态而不是数字。任何正数都不能被解读为发送权限。

这些数字在 `as_of` 时刻有效，不保证您的下一个请求。另一个请求、结算、充值或退款都会改变它们。

缺少或错误的密钥将返回 `401` 错误，并附带 [`invalid_api_key`](/zh/errors#invalid_api_key)。当我们无法读取这些记录之一时，端点将返回 `503` 错误，并附带 [`limits_unavailable`](/zh/errors#limits_unavailable)。它会拒绝请求，而不是向您提供缓存数据，因为缓存数据可能会声称有空间，而您的下一个请求实际上无法获得。无论哪种情况，请求都将继续工作。

## 流中的成本

未流式传输的响应会通过 `x-flexinference-cost` 标头和 `usage.cost` 块两次报告其成本。流式传输的响应无法使用标头，因为我们在答案生成之前发送标头，那时我们不知道成本。

发送 `include_cost: true` 以将成本信息包含在流中。

```json theme={null}
{
  "model": "gpt-5.5",
  "start_within": "00h-00m-30s",
  "stream": true,
  "include_cost": true,
  "input": "Summarize this contract."
}
```

成本信息随后会包含在端点已发送的 usage 帧中。一个 `usage.routing` 块位于其旁边，并命名了运行该请求的路由。

```json theme={null}
"usage": {
  "input_tokens": 412,
  "output_tokens": 128,
  "cost": { "total_micro_usd": 1840, "currency": "USD" },
  "routing": {
    "provider": "openai",
    "requested_provider": "openai",
    "tier": "flex",
    "reason": "flex_won",
    "fallback_attempts": 0,
    "mode": "byok"
  }
}
```

此开关默认关闭。您未请求此功能的流将与提供商发送的内容逐字节匹配。

`/v1/chat/completions` 使 OpenAI 的 usage 帧本身成为可选加入项。同时发送 `"stream_options": {"include_usage": true}`。没有它，成本信息将没有可放置的帧。

托管请求报告提供商向我们收取的费用。自有密钥请求报告提供商在该层级运行时的标价。我们无法定价的请求根本不报告 `cost`。将缺失的块解读为无信息可报告，而非零。

无论哪种情况，每个响应都会带有两个路由标头。它们是 `x-flexinference-served-provider` 和 `x-flexinference-routing-reason`。跳过 `include_cost` 的流式调用者仍然可以看到哪个路由运行了请求以及原因。请参阅[读取结果](/zh/deadline-routing)。

`include_cost` 永远不会到达提供商。我们在转发请求之前会将其从请求体中移除。
