Skip to main content
GET
Lists and creates GS1 child QR Codes — per-lot or per-serial variants of a GS1 parent.
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.
Creating consumes the 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.
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.

Authorizations

Authorization
string
header
required

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

parent_qrid
string
required

The qrid of the GS1 parent QR code.

Response

200 - application/json

Child variants of this parent.