Document Stack
Document Stack
Docs

Rate Limits

Understand API rate limits, headers, and strategies to stay within quotas.

Overview

Rate limits protect the API from excessive usage and ensure fair access for all users. Limits are applied per API key and vary by plan.

Limits by Plan

PlanRequests / minutePDF generations / hourBurst limit
Free3010010
Pro1201,00030
Business60010,000100
EnterpriseCustomCustomCustom

Rate Limit Headers

Every API response includes headers that tell you your current rate-limit status:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed per window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets
Retry-AfterSeconds to wait (only on 429 responses)
Example Response Headers
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1706900400

Handling 429 Responses

When you exceed the rate limit, the API responds with HTTP 429 Too Many Requests:

429 Response
{
  "success": false,
  "error": "Rate limit exceeded. Retry after 12 seconds."
}

Read the Retry-After header and wait before making another request.

Best Practices

  • Monitor headers — Check X-RateLimit-Remaining and slow down before hitting zero
  • Exponential backoff — On 429 errors, wait 1s, 2s, 4s, 8s before retrying
  • Queue requests — For batch generation, use a job queue to throttle requests
  • Cache results — Don't re-generate the same document repeatedly; cache the PDF URL
  • Use webhooks — For async generation, receive completion events instead of polling

Need Higher Limits?

If your workload exceeds the built-in limits, contact us about Enterprise plans with custom rate limits tailored to your usage.

Next Steps