Skip to main content
A QR Group is returned as a JSON object with object: "qr_group". Status and destination are nullable because they’re inheritable — when set, child codes that don’t override them inherit. See the inheritance model.

Example

Identifiers

string
required
Always "qr_group".
string (uuid)
required
Stable UUID. The value child codes carry in their group_id.
string
required
Operator-facing name. Required on POST. Free-form, not unique.
string | null
Free-form description. Operator-facing.

Status

string | null
required
One of unconfigured, active, inactive, archived, or null.When non-null, every child code that doesn’t override this inherits the value at scan time. When null, each child uses its own status.

Destination

object
required
Inheritable destination. When destination.type is non-null, child codes that don’t set their own destination inherit this one at scan time. When null, each child uses its own destination.Exactly one of chatbot, page, knowledge_base, or url is non-null when type is set.

Knowledge

Knowledge linked to this QR group itself, on top of the chatbot’s own. When a visitor scans it and lands on a chatbot, the chatbot searches its own knowledge plus these articles and folders, so item-specific content (the manual for the TV in one room) lives here instead of on the shared chatbot. See Scan-specific knowledge. It applies to every code in the group, alongside each code’s own links.
string[]
required
UUIDs of Articles linked to this QR group. Write the desired set with article_ids and the join is fully replaced.
string[]
required
UUIDs of Article Categories linked to this QR group. Every article inside a linked category and its sub-categories (now and in future) is included.
article_ids and category_ids are replace-only. Send the full desired set every time; omit a field to leave it untouched; pass [] to detach everything. Every id must belong to your organization, or the request is rejected with 422 unprocessable. Linked knowledge only applies while this QR group sends visitors to a chatbot.

Timestamps

string (datetime)
required
When the group was created. ISO 8601.
string (datetime)
required
Last mutation. ISO 8601.

Listing the group’s children

QR Groups don’t expose a children[] array on the group object. To list child codes, query the QR Codes endpoint and filter by group_id:
This keeps the group response light and lets you paginate children independently.

Properties

Group properties are a flat list of { key, value, sort_order } rows hung off the group, in the same shape as QR code properties. List them with GET /qr-groups/{id}/properties and replace the full set with PUT /qr-groups/{id}/properties (an empty properties array clears them):
Every child code inherits the group’s properties at scan time; a child’s own property wins on a key clash. See URL params and properties on groups.

Delete behaviour

DELETE /qr-groups/{id} returns 204 No Content. The group row is removed and every child has its group_id set to null (ON DELETE SET NULL at the database). Child codes are not deleted.
Children that were inheriting status or destination become unconfigured the moment the group is deleted. Re-group or set explicit values on each child before deleting if you can’t tolerate a gap.