Kick off a Celery task that renders one QR per item, packages them into a ZIP bundle, and uploads the bundle to object storage. Returns a task ID immediately (HTTP 202). Poll GET /qr/bulk/{task_id}/ for status and the temporary download URL. Hard cap: 5000 items per request.
Documentation Index
Fetch the complete documentation index at: https://docs.closient.com/llms.txt
Use this file to discover all available pages before exploring further.
Request body for the async bulk-QR endpoint.
Every item in the bundle shares the same parent GTIN, output format,
and size; only lot/serial/expiry vary per item. Hard cap
of :data:BULK_MAX_ITEMS items per request to keep a single Celery
task's runtime and ZIP-bundle size bounded.
GTIN barcode (GTIN-8, 12, 13, or 14, with or without separators) shared by every item in the bundle. Normalized to GTIN-14 server-side.
8 - 17^[\d\s\-]{8,17}$List of items to render — must contain at least 1 and at most 5000 entries. Each entry varies only the GS1 AI values (lot, serial, expiry); the GTIN, format, and size come from the parent payload.
1 - 5000 elementsOutput image format applied to every QR in the bundle. svg for vector output; png for raster output sized by size.
svg, png Target image side length in pixels (50-2000) for every QR in the bundle. Ignored when format='svg'.
50 <= x <= 2000Accepted
Response for an accepted bulk job — always returned with HTTP 202.
Receipt only; the actual ZIP bundle is built asynchronously. Poll
poll_url to retrieve the signed download URL once status flips to
completed.
Celery task identifier (UUID4 format). Use to poll the status endpoint at GET /qr/bulk/{task_id}/.
Initial task status — always pending on this 202 receipt. Subsequent polls may return running, completed, or failed.
pending, running, completed, failed Number of QR codes that will be generated (mirrors the request's items length).
1 <= x <= 5000Relative URL of the polling endpoint for this task — combine with the API host to retrieve status. Embeds the same task_id for convenience.