# QUOTA_EXCEEDED

> Monthly quota exceeded: Your account used its plan's monthly API request quota (only when paid plans are enabled).

Source: https://docs.layerhop.com/errors/QUOTA_EXCEEDED

| HTTP status | Retry |
|---|---|
| `429` | no |

**Where it comes from:** Any public endpoint called with a live `lh_live_…` key, once the account's live requests this calendar month (UTC) reach its plan's `monthlyRequests`. Test keys and requests without a key never count.

## Causes

- The account made more live API requests this month than its plan includes (see `GET /v1/account/plan` or the dashboard's Billing page).
- A loop or retry storm in your integration is calling the API far more often than intended.

## How to fix

- Check `x-quota-limit` / `x-quota-remaining` on responses and `GET /v1/account/plan` for usage and the reset time.
- Upgrade the plan in the dashboard (Billing); the higher quota applies within a minute of the invoice being paid.
- Cache quotes you show repeatedly and debounce quote requests while a user types an amount.

## Example response

```json
{
  "error": {
    "code": "QUOTA_EXCEEDED",
    "message": "Monthly quota of 2000000 requests reached; it resets 2026-11-01T00:00:00.000Z",
    "requestId": "0d5e1f6a-3b2c-4d1e-8f9a-7b6c5d4e3f21",
    "docsUrl": "https://docs.layerhop.com/errors/QUOTA_EXCEEDED"
  }
}
```

See [Error handling & retries](/guides/error-handling) for a retry strategy, and the [error catalog](/errors) for every code.
