Skip to main content
A QR Code is a permanent short URL of the form https://award.ee/<slug> paired with a programmable destination, a status, and an immutable scan history. Print the code once, change where it sends visitors any time.

The scan flow

Two things matter for integrations:
  1. Destination at scan time, not print time. The row stored on the scan captures the destination as it was at the moment of resolution. Change the destination tomorrow and tomorrow’s scans go somewhere else — yesterday’s history stays accurate.
  2. URL params merge. Static params from qr_codes/{id}/url-params (and any inherited from the QR group) get appended to the redirect. Live query string params from the visitor override on key collision.

The id parameter accepts slugs too

Every endpoint that takes {id} accepts either the UUID or the public_slug. Useful when you only know the short slug from a scan URL:

Status lifecycle

Sub-resources

Properties

Operator-defined K/V metadata on the code. Used for internal labels — venue, batch, ad campaign, etc. Replaced as a set via PUT.

URL params

Static query params merged into the redirect URL. Common use: utm_source, utm_medium, ref. Live visitor params override on key collision.

Scans

Immutable scan history. Cursor-paginated. Each row captures the destination at scan time, the visitor’s user agent, coarse geo (country / region / city), and the merged query params.

URL param merge example

A QR code has static params utm_source=poster&utm_campaign=fall24. The visitor scans https://award.ee/abc1234?utm_source=email. The merged params on the redirect become:
Live wins on utm_source; the static utm_campaign survives.

Attach knowledge

Link the articles and folders that are specific to this QR code. Visitors who scan it get them on top of the chatbot’s own knowledge, so a question like “how do I turn the TV on?” is answered from this QR code’s manual, not a guess across every one. The {id} accepts the public slug. Both arrays are replace-only: send the full desired set every time.
See Scan-specific knowledge for how scan links combine with the chatbot’s.

Webhook events

Subscribe and verify signatures per the webhooks guide.