{
"type": "object",
"properties": {
"rows": {
"oneOf": [
{
"type": "array",
"minItems": 1,
"maxItems": 50,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"description": "Exact QR payload for this file."
},
"filename": {
"type": "string",
"maxLength": 64,
"description": "Optional filename stem for this generated QR file."
}
},
"required": [
"value"
],
"additionalProperties": false
}
},
{
"type": "string",
"maxLength": 220000,
"description": "CSV rows such as filename,value or value,filename."
}
],
"description": "Rows to include in the ZIP archive. Use up to 50 rows per request."
},
"format": {
"type": "string",
"enum": [
"svg",
"png",
"jpg",
"webp",
"pdf",
"eps"
],
"default": "svg",
"description": "Shared output format for every generated file. Prefer svg for large batches."
},
"size": {
"type": "integer",
"minimum": 256,
"maximum": 4096,
"default": 1024,
"description": "Shared QR output size."
},
"margin": {
"type": "integer",
"minimum": 0,
"maximum": 16,
"default": 4,
"description": "Shared quiet-zone margin."
},
"fgColor": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$",
"default": "#111111",
"description": "Shared foreground hex color."
},
"bgColor": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$",
"default": "#ffffff",
"description": "Shared background hex color."
},
"errorCorrectionLevel": {
"type": "string",
"enum": [
"L",
"M",
"Q",
"H"
],
"default": "H",
"description": "Shared QR error correction level."
}
},
"required": [
"rows"
],
"additionalProperties": false
}{
"type": "object",
"properties": {
"destination": {
"type": "string",
"format": "uri",
"pattern": "^https://",
"minLength": 1,
"maxLength": 2048,
"description": "Public HTTPS destination. Private, local, credential-bearing, and sensitive-token URLs are rejected."
},
"label": {
"type": "string",
"maxLength": 80,
"description": "Optional private label for identifying the managed redirect."
}
},
"required": [
"destination"
],
"additionalProperties": false
}{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"read",
"update",
"pause",
"resume",
"rotate",
"delete"
],
"default": "read",
"description": "Read, update, pause, resume, rotate, or permanently delete the dynamic QR redirect."
},
"slug": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{22}$",
"description": "Public 22-character identifier from the redirect or management URL."
},
"managementToken": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "Private 43-character bearer capability. Never include it in public QR artwork."
},
"destination": {
"type": "string",
"format": "uri",
"pattern": "^https://",
"maxLength": 2048,
"description": "Replacement public HTTPS destination, required when updating the URL."
},
"label": {
"type": "string",
"maxLength": 80,
"description": "Optional replacement private label for an update action."
}
},
"required": [
"action",
"slug",
"managementToken"
],
"additionalProperties": false
}{
"type": "object",
"properties": {
"rows": {
"type": "array",
"minItems": 1,
"maxItems": 5,
"description": "One to five dynamic redirect records. Creation is sequential and partial failures are returned without automatic retry.",
"items": {
"type": "object",
"properties": {
"destination": {
"type": "string",
"format": "uri",
"pattern": "^https://",
"minLength": 1,
"maxLength": 2048,
"description": "Public HTTPS destination. Private, local, credential-bearing, and sensitive-token URLs are rejected."
},
"label": {
"type": "string",
"maxLength": 80,
"description": "Optional private label for identifying the managed redirect."
},
"placement": {
"type": "string",
"maxLength": 120,
"description": "Optional private placement note retained only in the returned manifest."
},
"filename": {
"type": "string",
"maxLength": 64,
"description": "Optional local asset filename retained only in the returned manifest."
}
},
"required": [
"destination"
],
"additionalProperties": false
}
}
},
"required": [
"rows"
],
"additionalProperties": false
}{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 80
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"action",
"vaultId",
"managementToken"
],
"additionalProperties": false,
"properties": {
"action": {
"type": "string",
"enum": [
"read",
"read_analytics",
"rename",
"delete",
"create_qr",
"update_qr",
"pause_qr",
"resume_qr",
"delete_qr"
]
},
"vaultId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{22}$"
},
"managementToken": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$"
},
"name": {
"type": "string",
"maxLength": 80
},
"slug": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{22}$"
},
"destination": {
"type": "string",
"format": "uri",
"pattern": "^https://",
"maxLength": 2048
},
"label": {
"type": "string",
"maxLength": 80
},
"folder": {
"type": "string",
"maxLength": 40
},
"tags": {
"type": "array",
"maxItems": 8,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 24
}
}
}
}{
"type": "object",
"properties": {
"value": {
"type": "string"
},
"format": {
"type": "string",
"enum": [
"svg",
"png",
"jpg",
"webp",
"pdf",
"eps"
]
},
"contentType": {
"type": "string",
"enum": [
"url",
"appstore",
"social",
"text",
"wifi",
"email",
"sms",
"phone",
"whatsapp",
"vcard",
"event",
"location",
"crypto",
"pix",
"upi",
"phonepe",
"swish",
"sepa",
"ideal",
"mobilepayvipps",
"qris",
"paypal",
"venmo",
"cashapp",
"promptpay",
"vietqr",
"swissqr"
]
},
"size": {
"type": "number"
},
"margin": {
"type": "number"
},
"fgColor": {
"type": "string"
},
"bgColor": {
"type": "string"
},
"errorCorrectionLevel": {
"type": "string",
"enum": [
"L",
"M",
"Q",
"H"
]
},
"logo": {
"type": "string"
}
},
"required": [
"value"
]
}{
"type": "object",
"properties": {
"contentType": {
"type": "string"
},
"value": {
"type": "string"
},
"url": {
"type": "string",
"description": "example.com"
}
}
}{
"type": "object",
"properties": {
"appLink": {
"type": "string",
"description": "https://apps.apple.com/app/... / https://play.google.com/store/apps/details?id=..."
},
"appName": {
"type": "string",
"description": "Other"
}
}
}