Create a batch of renders
POST/renders/batch
Up to 1,000 renders in one job, always asynchronous: the answer is 202 with the job, and
Location names the job's absolute URL (GET /jobs/{id}). Each item is a render request as for POST /renders (its
mode is ignored); the batch's template, output and canary_key fill in what an item
leaves out. Every item renders in the region of the first one. Needs render:create.
Nothing is queued unless every item can be: an invalid item answers 400 invalid_request,
and a refusal of one item (an unknown template, the plan, an e-invoice block,
validate_data) answers with that problem, which names the item's position in index or
at the start of its detail (Item 3: …). On a live key without overage, the period must
hold at least one unit per item (402 quota_exceeded). Items are never answered from the
dedup cache. Follow the job with GET /jobs/{id} or the webhook_url.
Request
Responses
- 202
- 402
- 422
- 429
- default
Job queued.
Response Headers
Absolute URL of the job (GET /jobs/{id}), which answers 200 with the job's state at any time.
Seconds to wait before reading the job.
Size of the workspace's request bucket: the plan's requests per second. Free test keys are also held to 30 requests a minute, and the headers then describe whichever bucket is closer to empty.
Requests left in the bucket.
Seconds until the bucket is full again.
Units this request costs; 0 for test keys, for an answer from the dedup cache, and for a render or batch that was queued, which counts its units when it finishes.
Units left in the organisation's billing period after this request (included units and prepaid packs), rounded down.
quota_exceeded: the units of the billing period are used up on a plan without overage (Free), or do not cover one unit per item of a batch, or the overage reached the period's hard cap while auto top-up is off. The problem names the first day after the period in period_end, and the cap in hard_cap_units when it was the cap. Test keys never get it.
The request was understood but cannot be rendered: data that does not fit the schema (data_validation_error), a template error (template_syntax_error, template_runtime_error, with location), a page that does not load (navigation_failed), a page or size limit of the plan (page_limit_exceeded, output_too_large), a source a PDF step cannot use (source_not_found, source_invalid, source_encrypted), or an e-invoice or PDF/UA failure.
rate_limited: the workspace's bucket of the plan's requests per second is empty (Free test keys also have 30 a minute). The problem names the bucket's limit and its window_seconds. Retry after Retry-After seconds.
Response Headers
Seconds until a request is let through again.
Size of the workspace's request bucket: the plan's requests per second. Free test keys are also held to 30 requests a minute, and the headers then describe whichever bucket is closer to empty.
Requests left in the bucket.
Seconds until the bucket is full again.
Error (RFC 9457 problem details).