Rate Limits
PDFBolt enforces separate rate limits for PDF rendering and Template API management operations. The applicable limits and retry strategy depend on the endpoint.
Conversion API and Rendering Limits
The Conversion API endpoints (/v1/direct, /v1/sync, and /v1/async) use limits determined by your plan. These limits are shared by the current team across all of its API keys. Template API preview and diff requests perform real PDF renders and count toward the same limits.
Rate Limits per Plan
| Plan | Per minute | Concurrent |
|---|---|---|
| Free | 20 | 1 |
| Basic | 100 | 5 |
| Growth | 250 | 20 |
| Enterprise | 500 | 50 |
Need higher limits? Contact us for a custom plan.
How Conversion Rate Limits Work
PDFBolt uses a sliding window algorithm. Your usage is tracked in real time across the per-minute, per-hour, and per-day windows. When you reach any limit, further requests are temporarily blocked with HTTP 429 Too Many Requests until your usage drops below the limit.
The concurrent request limit restricts how many requests can be processed at the same time. Requests that exceed this limit are rejected immediately with HTTP 429.
For /v1/async, the concurrent limit applies only while the request is being accepted. After acceptance, the conversion runs in the background and no longer counts toward the concurrent request limit.
Limits in Response Headers
Responses to requests that pass the conversion rate limiter include usage headers so you can monitor your limits in real time:
| Header | Description |
|---|---|
x-pdfbolt-limit-day | Total allowed requests per rolling 24-hour window. |
x-pdfbolt-limit-hour | Total allowed requests per rolling 1-hour window. |
x-pdfbolt-limit-minute | Total allowed requests per rolling 1-minute window. |
x-pdfbolt-remaining-day | Remaining requests in the rolling 24-hour window. |
x-pdfbolt-remaining-hour | Remaining requests in the rolling 1-hour window. |
x-pdfbolt-remaining-minute | Remaining requests in the rolling 1-minute window. |
Exceeding Conversion Rate Limits
When a request exceeds one of these limits, the API returns HTTP 429 Too Many Requests without a Retry-After header. Retry using exponential backoff with jitter.
Template API Management Limits
Authenticated Template API management requests are subject to per-user limits measured over rolling windows. These limits apply to listing, retrieving, validating, saving, and publishing templates.
| Rolling window | Requests per user | Retry-After on 429 |
|---|---|---|
| 1 minute | 360 | 60 seconds |
| 1 hour | 6,000 | 3,600 seconds |
The following Template API requests use different rate-limit rules:
GET /v1/templates/contractis public and is not rate limited.POST /v1/templates/previewandPOST /v1/templates/{templateId}/diffare not subject to Template API management limits. Because they render PDFs, they use the plan-based Conversion API limits described above.
Successful management responses do not include the x-pdfbolt-limit-* or x-pdfbolt-remaining-* usage headers. When a management limit is exceeded, the API returns HTTP 429 Too Many Requests with a Retry-After header. The header contains the full duration of the limiting window, not the exact time until an individual request leaves the rolling window.
Wait at least the number of seconds specified by Retry-After, add a small random jitter, and then retry. If the retry is rejected, wait for the new Retry-After value before trying again.
For details on this and other errors, see the Error Handling documentation.
Need Higher Limits?
If your application requires higher throughput or custom limits, contact us. We offer tailored plans with higher rate limits and more concurrent requests.