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, or 422 responses until the request or account state has been corrected.
  • Send a stable Idempotency-Key on every request that an automation platform may retry. The reservation lasts 24 hours.
  • For 409 IDEMPOTENCY_REQUEST_IN_PROGRESS, wait for Retry-After and retry the same body with the same key.
  • For other 409 responses, correct the key or use a new key only when intentionally generating a new output.
  • For 429, wait for the number of seconds in Retry-After before trying again.
  • For 500 or 503, 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.