Bulk Create QR Codes
Create multiple QR codes in a single request. Up to 100 QR codes can be created at once.
POST
/qr-codes/bulkHeaders
| Header | Required | Description |
|---|---|---|
X-API-Key | Required | Your API key |
Content-Type | Required | application/json |
QR-Version | Optional | API version (e.g., 2026-02-16) |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
entries | array | Required | Array of QR codes to create (1–100 items) |
entries[].name | string | Optional | Name for the QR code (max 100 chars) |
entries[].type | string | Required | QR code type (url, vCard, wifi, etc.) |
entries[].content | object | Required | Content data — varies by type. See QR Types. |
entries[].folder_id | string | Optional | Folder ID for this QR code. Omit for root. Invalid IDs are ignored (QR created in root). Requires Folders feature. |
design | object | Optional | Shared design applied to all entries. See Design or try the Builder. Cannot be used with template_id. |
template_id | string | Optional | Template ID to use for all QR codes. See Templates. Cannot be used with design. |
tip
The response includes a summary with total, successful, and failed counts. Individual entries that fail won't prevent other entries from being created. You can use either template_id to apply a consistent design from a saved template to all QR codes, or provide design for custom styling, but not both.
Request
- cURL
- JavaScript
- Python
curl -X POST "https://integration-api.qr-build.com/qr-codes/bulk" \
-H "X-API-Key: qrb_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"entries": [
{
"name": "Website QR",
"type": "url",
"content": { "type": "url", "url": "https://example.com" }
},
{
"name": "Contact QR",
"type": "vCard",
"content": {
"type": "vCard",
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com"
}
}
],
"design": {
"dots": { "style": "rounded", "color": "#000000" }
}
}'
Using a Template:
curl -X POST "https://integration-api.qr-build.com/qr-codes/bulk" \
-H "X-API-Key: qrb_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"entries": [
{
"name": "Website QR",
"type": "url",
"content": { "type": "url", "url": "https://example.com" }
},
{
"name": "Contact QR",
"type": "vCard",
"content": {
"type": "vCard",
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com"
}
}
],
"template_id": "tmpl-aBc123XyZ9"
}'
const response = await fetch(
"https://integration-api.qr-build.com/qr-codes/bulk",
{
method: "POST",
headers: {
"X-API-Key": "qrb_live_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
entries: [
{
name: "Website QR",
type: "url",
content: { type: "url", url: "https://example.com" },
},
{
name: "Contact QR",
type: "vCard",
content: {
type: "vCard",
first_name: "John",
last_name: "Doe",
email: "john@example.com",
},
},
],
design: {
dots: { style: "rounded", color: "#000000" },
},
}),
}
);
const data = await response.json();
Using a Template:
const response = await fetch(
"https://integration-api.qr-build.com/qr-codes/bulk",
{
method: "POST",
headers: {
"X-API-Key": "qrb_live_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
entries: [
{
name: "Website QR",
type: "url",
content: { type: "url", url: "https://example.com" },
},
{
name: "Contact QR",
type: "vCard",
content: {
type: "vCard",
first_name: "John",
last_name: "Doe",
email: "john@example.com",
},
},
],
template_id: "tmpl-aBc123XyZ9",
}),
}
);
const data = await response.json();
import requests
response = requests.post(
"https://integration-api.qr-build.com/qr-codes/bulk",
headers={
"X-API-Key": "qrb_live_your_api_key_here",
"Content-Type": "application/json",
},
json={
"entries": [
{
"name": "Website QR",
"type": "url",
"content": {"type": "url", "url": "https://example.com"},
},
{
"name": "Contact QR",
"type": "vCard",
"content": {
"type": "vCard",
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
},
},
],
"design": {
"dots": {"style": "rounded", "color": "#000000"},
},
},
)
data = response.json()
Using a Template:
import requests
response = requests.post(
"https://integration-api.qr-build.com/qr-codes/bulk",
headers={
"X-API-Key": "qrb_live_your_api_key_here",
"Content-Type": "application/json",
},
json={
"entries": [
{
"name": "Website QR",
"type": "url",
"content": {"type": "url", "url": "https://example.com"},
},
{
"name": "Contact QR",
"type": "vCard",
"content": {
"type": "vCard",
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
},
},
],
"template_id": "tmpl-aBc123XyZ9",
},
)
data = response.json()
Response
{
"object": "bulk",
"success": true,
"data": {
"summary": {
"total": 2,
"successful": 2,
"failed": 0
},
"created": [
{ "index": 0, "id": "qr-aBc123XyZ9", "name": "Website QR" },
{ "index": 1, "id": "qr-dEf456UvW2", "name": "Contact QR" }
],
"errors": []
}
}
Response — Partial Failure
{
"object": "bulk",
"success": true,
"data": {
"summary": {
"total": 3,
"successful": 2,
"failed": 1
},
"created": [
{ "index": 0, "id": "qr-aBc123XyZ9", "name": "Website QR" },
{ "index": 2, "id": "qr-dEf456UvW2", "name": "Contact QR" }
],
"errors": [
{ "index": 1, "name": "Invalid QR", "error": "Category not found" }
]
}
}
Error — Both design and template_id provided
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "You can use either 'design' or 'template_id', but not both"
}
}