# Rate Limits

The default public API limiter allows 10 requests per minute per API key or caller fingerprint. Deployments can tune this value with environment configuration.

Source: https://docs.docushell.com/rate-limits
Category: Limits
Read time: 4 min

## Related

- [Public API Gateway](/public-api-gateway.md): See where throttling fits into the gateway responsibilities.
- [Error Codes](/error-codes.md#common-status-codes): Review the `429 rate_limit_exceeded` response shape.

## Summary

| Label | Value | Description |
| --- | --- | --- |
| Default | 10 req/min | Per API key or caller fingerprint unless configured otherwise. |
| Scope | Gateway | Applied before expensive PDF work is queued. |
| Retry | Backoff | Use exponential backoff and preserve idempotency on safe retries. |

## Limit Behavior

| Dimension | Default | Notes |
| --- | --- | --- |
| Request rate | 10 requests/minute | The default configured API rate limit. |
| Parse batch submit rate | 2 requests/minute | `POST /v1/parse/batch` has its own stricter submit limiter in addition to queue backpressure. |
| Identity | API key or fingerprint | Authenticated callers are keyed by credential; unauthenticated health/docs discovery can use fingerprinting. |
| Processing jobs | Plan-dependent | File size, page count, credits, and concurrency are enforced separately from request rate. |
| Exceeded limit | 429 | Returns `rate_limit_exceeded` in the common error envelope. |

## Rate Limit Error

### 429 error

```json
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Too many requests. Please retry later.",
    "type": "rate_limit_error",
    "request_id": "req_01JX8Y62XCDNZ2BM7TBM2M9Q8E"
  }
}
```

## Client Behavior

- Queue work on your side when submitting many files.
- Use exponential backoff for `429` and transient service errors.
- Use `Idempotency-Key` for submit retries so a timeout does not create duplicate jobs.
- Poll status at a practical interval instead of tight loops.
