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

# Request limit reached

> The error returned when a team on the Free plan has used every request it includes

`request-limit-exceeded` is the Alpic reason code returned when a team on the Free plan has used every request that plan includes for the current billing period. Paid plans are never refused: requests beyond the included allowance are billed as [overage](/pricing/plans#overage). It is a stable identifier: match on it rather than on the message text, which may be reworded.

<Note>
  This reason code is not returned today. Request limits are counted but not enforced. This page documents the response
  shape so clients can handle it before enforcement is turned on.
</Note>

## The response

The request is refused at admission. It never reaches your MCP server, and it is not counted against your plan.

* **HTTP status**: `402 Payment Required`
* **JSON-RPC error code**: `-32002`
* **Alpic reason code**: `request-limit-exceeded`, under the reserved `alpic/reason` key

```json theme={null}
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32002,
    "message": "Request limit reached for the current billing period.",
    "data": {
      "alpic/reason": "request-limit-exceeded",
      "documentation": "https://docs.alpic.ai/pricing/request-limit-exceeded"
    }
  },
  "id": null
}
```

## What counts as a request

Every settled MCP request counts, whatever its outcome — including `initialize`, `tools/list` and `ping`. Because the check runs at admission, a refused request is not added to your count.

The limit applies to the whole team, across every project and environment, for the current billing period. See [Plans](/pricing/plans) for the requests included in each plan and the overage rate.

## Handling it in a client

`initialize` goes through the same check, so a Free-plan team over its limit fails at connection time. Most MCP clients render that as a generic "server unavailable" rather than showing the message, so treat a `402` on connect as a quota problem, not an outage.

## What to do

Check the current period's usage against your allowance on your team's billing page in the [dashboard](https://app.alpic.ai), then move to a paid plan — see [Plans](/pricing/plans). Paid plans keep serving requests beyond their included allowance and bill the extra, so this reason code cannot be returned once you are on one. A new billing period starts your count again from zero.
