curl -X POST "https://api.scanova.io/qr/Qz9y8x7w6v5u4t3s/children/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"qualifiers": [
{
"id": "10",
"value": "LOT-2026-04"
}
],
"dataAttributes": [],
"variantLabel": "500ml bottle"
}'
[
{
"qrid": "Qc3d4e5f6g7h8i9j0",
"name": "500ml bottle — LOT-2026-04",
"is_active": true,
"thumbnail": null,
"source": "created",
"variant_label": "500ml bottle",
"qualifiers": [
{
"id": "10",
"value": "LOT-2026-04"
}
],
"data_attributes": [],
"scan_count": 0,
"created": "2026-09-09T09:00:00Z",
"modified": "2026-09-09T09:00:00Z"
}
]QR Codes
List and create child QR Codes
GET, POST /qr//children/
GET
/
qr
/
{parent_qrid}
/
children
/
curl -X POST "https://api.scanova.io/qr/Qz9y8x7w6v5u4t3s/children/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"qualifiers": [
{
"id": "10",
"value": "LOT-2026-04"
}
],
"dataAttributes": [],
"variantLabel": "500ml bottle"
}'
[
{
"qrid": "Qc3d4e5f6g7h8i9j0",
"name": "500ml bottle — LOT-2026-04",
"is_active": true,
"thumbnail": null,
"source": "created",
"variant_label": "500ml bottle",
"qualifiers": [
{
"id": "10",
"value": "LOT-2026-04"
}
],
"data_attributes": [],
"scan_count": 0,
"created": "2026-09-09T09:00:00Z",
"modified": "2026-09-09T09:00:00Z"
}
]Lists and creates GS1 child QR Codes — per-lot or per-serial variants of a GS1 parent.
Creating consumes the
GET https://api.scanova.io/qr/{parent_qrid}/children/
POST https://api.scanova.io/qr/{parent_qrid}/children/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
string
required
The
qrid of the GS1 parent QR Code.A child is a lightweight variant, not a full standalone QR Code: it shares the parent’s identity and GTIN and only carries its own qualifier values (a different lot or serial). It has no detail page of its own, which is why children are managed entirely through these sub-resource endpoints.
CHILD_QR_CODES quota — an independent bucket from TOTAL_QR_CODES and DYNAMIC_QR_CODES — and requires QR_CODE_CAN_ADD.
Create (POST)
array
required
Non-empty list of
{"id": ..., "value": ...} pairs — the GS1 application identifiers that distinguish this variant, e.g. {"id": "10", "value": "LOT-2026-04"} for a batch/lot.array
Optional additional GS1 data attributes.
string
Optional human-readable label for the variant.
string
Optional display name. Derived from the qualifiers if omitted.
The create body uses camelCase keys (
dataAttributes, variantLabel) while the listing response uses snake_case (data_attributes, variant_label). This asymmetry is intentional in the current contract — don’t normalize one into the other.curl -X POST "https://api.scanova.io/qr/Qz9y8x7w6v5u4t3s/children/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"qualifiers": [
{
"id": "10",
"value": "LOT-2026-04"
}
],
"dataAttributes": [],
"variantLabel": "500ml bottle"
}'
source in the response says how the child came to exist: created for one made here, linked for an existing QR Code adopted through Link a child QR Code. The response is not paginated.
Related
- Bulk-create child QR Codes — create many variants in one call.
- Link a child QR Code — adopt an existing standalone QR Code as a variant.
- Delete a child QR Code — permanently remove one variant.
- Check GS1 references — why a parent with children cannot be deleted.
- QR Manager overview — the quotas, role permissions, and Trash model shared by every endpoint in this module.
- Management API overview — the auth scheme and quota rules that apply to this endpoint.
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
The qrid of the GS1 parent QR code.
Response
200 - application/json
Child variants of this parent.
Was this page helpful?