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

# Rate limits

> What each tier allows, how to read the limit headers, and the retry pattern to use when you hit one.

Proofable enforces per-minute and per-window limits to keep the API fast and fair. Higher tiers get higher limits. Most apps never hit them.

## Limits by tier

Limits scale with your plan. Verification and sign-in have tighter windows because they run real checks.

| Surface | Free | Pro | Enterprise |
| - | - | - | - |
| API calls (burst) | 60 / min | 240 / min | 600 / min |
| API calls (sustained) | 30 / min | 120 / min | 300 / min |
| Verification (new proof) | 50 / 15 min | 50 / 15 min | 50 / 15 min |
| Sign-in attempts | 10 / 15 min | 10 / 15 min | 10 / 15 min |
| Status reads | 100 / min | 100 / min | 100 / min |
| Admin actions | 20 / min | 20 / min | 20 / min |

Verification and sign-in limits are the same across tiers. A check is a check regardless of plan. API call throughput is where higher tiers scale.

## When you hit a limit

APIs return **429 Too Many Requests**. Honor these response headers before retrying:

| Header | Meaning |
| - | - |
| `Retry-After` | Seconds to wait before the next request |
| `RateLimit` | IETF draft-7 remaining quota (`r`) and time window (`t`) |
| `RateLimit-Policy` | IETF draft-7 quota (`q`) and window length (`w`) |

CORS exposes `Retry-After`, `RateLimit`, and `RateLimit-Policy` so browsers and agents can read them.

* **Exponential backoff:** wait, then double the wait on each retry.
* **Creates:** do not blind-retry. Confirm the first request did not succeed before sending another. A duplicate proof costs credits.
* **Polling:** wait a few seconds between polls. Back off on errors.

## Tips

* **Reuse proofs.** Checking an existing proof is free. Creating a new one (4 to 73 credits) is heavier and counts against the verification window. Cache the proof ID and check it instead — repeat checks cost nothing.
* **Gate checks, not raw verification.** Use `gateCheck` with your `gateId` for access decisions. It reads saved results first and only creates a new proof when needed.
* **Need higher limits?** Pro raises API throughput four times. Enterprise raises it ten times, by agreement. See [Pricing](/pricing).

## 402 and credits

When credits run out, billable calls return **402 Payment Required** with a quote, not 429. Pay for the call with [x402](/gates/pay-per-call), no account needed, or add credits and retry.

**Next:** [SDK errors](../sdks/error-handling) and [Pricing](/pricing)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.