Skip to main content
GET
/
products
/
api
/
v1
/
qr
/
bulk
/
{task_id}
Poll a bulk QR generation task
curl --request GET \
  --url https://www.closient.com/products/api/v1/qr/bulk/{task_id}/ \
  --header 'X-API-Key: <api-key>'
{
  "task_id": "<string>",
  "status": "pending",
  "download_url": "<string>",
  "expires_at": "<string>",
  "items": 2500,
  "error": "<string>"
}

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.

Authorizations

X-API-Key
string
header
required

Path Parameters

task_id
string
required

Celery task ID (UUID4 format) returned by POST /qr/bulk/. Random or malformed IDs are rejected with 422 before hitting the broker.

Response

OK

Response for the polling endpoint.

Three terminal states (completed, failed) and two in-flight states (pending, running). When status='completed', download_url and expires_at are populated; when status='failed', error carries the failure reason.

task_id
string
required

Celery task identifier (echoed from the request) used to look up this status.

status
enum<string>
required

Lifecycle state — one of pending (queued, not yet picked up), running (worker is rendering), completed (ZIP uploaded; download_url populated), or failed (error populated).

Available options:
pending,
running,
completed,
failed
download_url
string | null

Temporary signed download URL for the ZIP bundle. Only present when status='completed' — null in every other state. URL expires at expires_at; refetch the status endpoint if expired.

expires_at
string | null

ISO-8601 timestamp (with timezone) at which download_url stops working. Null when download_url is null.

items
integer | null

Number of QR codes generated. Populated once the task reaches completed; null while status is pending, running, or failed.

Required range: 0 <= x <= 5000
error
string | null

Human-readable error message. Populated only when status='failed'; null otherwise.