curl --request POST \
--url 'https://api.scanova.io/folder/42/bulk_move/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"qr_code_ids": ["qr_8f2a1c", "qr_9b3d2e"]
}'
curl --request POST \
--url 'https://api.scanova.io/folder/42/bulk_move/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"qr_code_ids": ["all"],
"from": "uncategorized"
}'
{
"message": "Successfully moved 2 QR codes to folder 'Marketing Campaigns'",
"moved_count": 2
}
Folders & Tags
Move QR Codes into a folder
POST /folder//bulk_move/
POST
/
folder
/
{id}
/
bulk_move
/
curl --request POST \
--url 'https://api.scanova.io/folder/42/bulk_move/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"qr_code_ids": ["qr_8f2a1c", "qr_9b3d2e"]
}'
curl --request POST \
--url 'https://api.scanova.io/folder/42/bulk_move/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"qr_code_ids": ["all"],
"from": "uncategorized"
}'
{
"message": "Successfully moved 2 QR codes to folder 'Marketing Campaigns'",
"moved_count": 2
}
Moves one or more QR Codes into a folder — either an explicit list of QR Codes, or every QR Code matching a filter.
Requires the account’s
FOLDER_MANAGEMENT quota and the FOLDER_CAN_CREATE_AND_MANAGE permission. See the Management API overview for authentication details.integer
required
Target folder ID.
array
required
Either a list of
qrid strings, or the single-element sentinel ["all"] to move every QR Code matching filter/search below. Sending anything other than an array returns 400 with {"error": "qr_code_ids must be a list"}. An empty list is a no-op: 200 with moved_count: 0.integer | string
Only meaningful alongside
qr_code_ids: ["all"]. A folder ID restricts the source to QR Codes currently in that folder; the literal string "uncategorized" restricts it to QR Codes with no folder at all.Omitting
from entirely is not the same as "uncategorized" — it means “no source restriction, consider every QR Code regardless of its current folder.” Confusing the two is an easy mistake if you’re building a “move all” UI around the account’s full QR list.object
Only honored alongside
qr_code_ids: ["all"]. Accepts the same filter keys as List QR Codes (category, tags, type, status, qrid, users, no_user, created_from, created_till, scan_type, scan_count1, scan_count2). A folder key here is ignored even if sent — use from instead to scope by source folder.object
Only honored alongside
qr_code_ids: ["all"] — {"search_value": "..."}, matched the same way the main QR-code search does.Only QR Codes you own are eligible, and a soft-deleted (trashed) QR Code is always excluded — passing a trashed
qrid is silently a no-op. If the target folder’s folder_type is page, only page-builder QR Codes are moved (and vice versa for qr folders); an ["all"] move against the wrong folder_type silently skips the ineligible QR Codes rather than erroring. QR Codes already in the target folder don’t count toward moved_count.curl --request POST \
--url 'https://api.scanova.io/folder/42/bulk_move/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"qr_code_ids": ["qr_8f2a1c", "qr_9b3d2e"]
}'
curl --request POST \
--url 'https://api.scanova.io/folder/42/bulk_move/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"qr_code_ids": ["all"],
"from": "uncategorized"
}'
{
"message": "Successfully moved 2 QR codes to folder 'Marketing Campaigns'",
"moved_count": 2
}
404 if the target folder or from (when a real folder ID) isn’t owned by this account.
Related
- Unassign QR Codes from a folder — the inverse operation.
- List QR Codes in a folder — confirm the result.
- Management API overview — the auth scheme and quota architecture this endpoint is part of.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Path Parameters
Response
QR codes moved.
Was this page helpful?