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

# Quotas and errors

> Understand shared account quotas, rate limits, and API failures.

Quota is shared by all active API keys on the same account. Creating more keys
does not multiply account quota.

## Current plan limits

The live [Pricing page](https://ghypurr.com/pricing) is the source of truth.
At publication time, the API limits are:

| Plan  | Data calls | AI-signal calls | Requests/minute | Concurrent requests | Active keys |
| ----- | ---------: | --------------: | --------------: | ------------------: | ----------: |
| Pro   |      1,000 |              20 |              30 |                   3 |           2 |
| Elite |     10,000 |             100 |             120 |                  10 |           5 |

News, Smart Money, and Meme Signals consume the data-call pool. Published AI
Signals consume the AI-signal pool. Only successful `2xx` dataset responses
consume quota.

Dataset responses include:

* `X-RateLimit-Limit`
* `X-RateLimit-Remaining`
* `X-Request-ID`

Use `GET /api/v1/usage` to read the current period start/end and the used,
limit, and remaining values for both pools.

## Common errors

| Status | Error                        | Action                                               |
| ------ | ---------------------------- | ---------------------------------------------------- |
| `401`  | `invalid_api_key`            | Check the Bearer value or rotate the key.            |
| `403`  | `insufficient_scope`         | Create or use a key with the required scope.         |
| `403`  | `ip_not_allowed`             | Check the source IP and key allowlist.               |
| `429`  | `rate_limit_exceeded`        | Reduce request rate and retry later.                 |
| `429`  | `concurrency_limit_exceeded` | Reduce parallel requests.                            |
| `429`  | `quota_exhausted`            | Wait for the next period or review the account plan. |
| `503`  | `quota_service_unavailable`  | Retry with bounded exponential backoff.              |

For `429` and `503`, use bounded exponential backoff with jitter. Do not retry
`401` or `403` continuously; correct the credential or access configuration.
