API Limits and Billing
Business subscription, credits, API key, and rate-limit rules
Business subscription
An active Business Monthly or Business Yearly subscription unlocks API access. Credit packs provide additional credits only while Business API access is active.
One-time API trial
Signed-in accounts can start one 7-day trial from API Key Settings. The generated Trial Key can complete up to 10 successful single-page requests. Trial requests do not consume Credits and are limited to 10 requests per minute. Failed validation and rendering attempts do not reduce the 10-request allowance.
Credits
- One generated PDF page consumes one credit.
- Credits are based on final PDF pages, not the number of source records or copies.
- The API checks the balance before rendering and charges only after successful PDF generation.
- Validation and rendering errors do not consume credits.
- Concurrent requests share the same credit balance. Keep enough credits for all requests that may be running at the same time.
Synchronous batch limits
POST /api/v1/generate-pdf accepts one to 250 records for the same template. Each record can request adjacent copies. After copies are applied, one request can produce up to 250 items and 25 PDF pages. The request body can be up to 1 MB.
The endpoint returns one merged PDF and keeps records in request order. Larger jobs should be divided into multiple requests. There is currently no asynchronous job or hosted-file endpoint, so clients should download each successful response immediately.
API keys
Each Business account can keep up to five active API keys.
Rate limit
Each key can make up to 100 HTTP requests per minute. A batch counts as one request, regardless of its record or page count. This is a service guard rather than a guaranteed throughput level. A limited request returns HTTP 429, RATE_LIMIT_EXCEEDED, and a Retry-After header.
Trial Keys are limited to 10 requests per minute. The public Playground is limited to 3 requests per minute and 10 requests per day per visitor. These public limits are abuse-prevention guards and may be enforced across a rolling or service-instance window.
Timeouts
PDF generation is configured for a maximum server processing time of 60 seconds, although a network or hosting platform may end a request sooner. Keep templates, batches, and remote image assets reasonably sized. Use the response requestId when reporting a timeout or generation failure.
Retries
- Do not retry
400,401,402,403,404,413, or422responses until the request or account state has been corrected. - Send a stable
Idempotency-Keyon every request that an automation platform may retry. The reservation lasts 24 hours. - For
409 IDEMPOTENCY_REQUEST_IN_PROGRESS, wait forRetry-Afterand retry the same body with the same key. - For other
409responses, correct the key or use a new key only when intentionally generating a new output. - For
429, wait for the number of seconds inRetry-Afterbefore trying again. - For
500or503, retry with exponential backoff and a small amount of random jitter.
An idempotent replay does not consume Credits again. SheetsToLabels stores the request hash and template version, but does not retain record variables or the generated PDF. The unchanged request is rendered again only when the saved template version still matches.