Bulk QR Generation (POST /qr/bulk)
Team QR Code Genius
Aggiornato il 7/23/2026
6 min read
POST /api/v1/qr/bulk generates up to 100 QR codes in a single call and — unlike the single endpoint — saves each one to your account, organized into a folder. Items can optionally be created as dynamic QR codes that encode a trackable short link, giving you scan analytics in the dashboard.
Bulk generation is a Pro feature. Calls with a Free-plan key return 403. Each item in the batch consumes one request from your quota, so a 40-item call uses 40 requests.
Request
curl -X POST https://www.qrcodegenius.com/api/v1/qr/bulk \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"folderName": "Product Launch",
"items": [
{ "data": "https://example.com/a", "dynamic": true },
{ "data": "https://example.com/b", "dynamic": true },
{ "data": "https://example.com/c" }
]
}'
Fields
items(array, required) — 1 to 100 item objects (see below).folderId(string, optional) — UUID of an existing folder to save into.folderName(string, optional) — a folder with this name is created (or reused) for the batch. If neitherfolderIdnorfolderNameis provided, a folder namedBulk Import <date>is created automatically.
Item fields
Each item accepts the same content and styling fields as the single endpoint — data (required), width, height, margin, shape, image, and all the styling option objects — plus:
dynamic(boolean, optional) — iftrue, the QR image encodes a short link instead ofdatadirectly. Scans are redirected through the short link and recorded, so the code shows up in your scan analytics and its destination stays editable from the dashboard.
Response
{
"success": true,
"results": [
{ "success": true, "data": "data:image/png;base64,...", "slug": "ab12cd3" },
{ "success": true, "data": "data:image/png;base64,...", "slug": "ef45gh6" },
{ "success": false, "error": "Missing or invalid data" }
],
"meta": {
"total": 3,
"successful": 2,
"usage_count": 43,
"remaining": 957,
"folder_id": "0b9cbe0e-4c2f-4d6a-9d5e-2f1a3b4c5d6e"
}
}
results— one entry per item, in the same order as the request. A failed item does not fail the batch; check each entry'ssuccessflag.slug— for dynamic items, the short-link identifier (the QR points to/l/<slug>).meta.folder_id— the folder the batch was saved into.
Errors
400— malformed JSON or a validation failure (batch larger than 100 items, unknown fields, etc.).401— missing or invalid API key.403— the key's account is not on the Pro plan.429— the batch would exceed your remaining quota. Quota is checked for the whole batch up front, so either the entire batch is admitted or none of it is.
Tips
- Batch as much as possible: one 100-item call is faster and easier to reason about than 100 single calls.
- Use
dynamic: truefor printed materials — you can fix a wrong destination URL after printing. - Give each campaign its own
folderNameso batches stay organized in the dashboard.
Questo articolo è stato utile?
Il tuo feedback ci aiuta a migliorare la documentazione.