QRQR Code Agency
Concepts

Static vs dynamic QRs

When to use a static QR, when to use a dynamic one, and what cannot change once a QR is printed.

Static vs dynamic QRs

The most consequential decision you make about a QR is what it encodes. Once printed, that decision cannot be undone.

Static QRs

A static QR encodes the destination directly. Scanning it yields the exact string you put into data.

flowchart LR
 Phone[Phone camera] -->|scans| QR[Static QR]
 QR -->|encodes| Dest[https://yourbusiness.com]
 Dest -->|redirect happens<br/>on the destination server| Final[Final URL]
  • The encoded payload is fixed at print time.
  • No infrastructure between the scanner and your destination.
  • Free with QR Code Agency, no scan limit, no analytics.
  • Cannot be changed after print. Period.

When this matters: a static QR pointing at a marketing landing page that you later kill is now a dead QR. The only fix is to reprint.

Dynamic QRs

A dynamic QR encodes a short URL that QR Code Agency hosts. Scanning hits us first; we look up the live destination and 302 redirect the browser there.

flowchart LR
 Phone[Phone camera] -->|scans| QR[Dynamic QR]
 QR -->|encodes| Short[https://q.qrstudio.agency/q/aBc12dEf/]
 Short -->|HTTP request| Lookup[QR Code Agency]
 Lookup -->|302 + analytics row| Dest[Live destination_url]
  • The encoded payload is the short URL q.qrstudio.agency/q/<short_id>/.
  • destination_url is stored in our database and can change anytime via PATCH /api/v1/dynamic/<short_id>/.
  • Every scan is logged with timestamp, country, device family, browser, referer, and approximate location (when available).
  • Plan-gated: included on Free at 1 QR / 1 lifetime edit, scaled up through paid tiers.

When this matters: a printed restaurant menu QR can swap to the seasonal menu in October without reprinting the table tents. A conference badge QR can repoint to the post-event archive when the keynote ends.

When to choose which

NeedPick
A QR I will never want to changeStatic
Massive scale, no scan analytics neededStatic
The destination URL might changeDynamic
I want to know how many people scanned, from where, on what deviceDynamic
A/B test two destinationsDynamic with variants
White-label custom domain for the redirectDynamic + Agency plan
Compliance forbids hosting the redirect on a third partyStatic (or self-host the redirect, contact us about Enterprise)

What dynamic costs

The render itself is one quota credit, same as a static QR. The only ongoing cost is in plan tier:

  • Dynamic QR allowance: how many can be active at once
  • Edits per dynamic QR: Free is capped at 1 lifetime edit per QR
  • Scans per month: Free caps at 50 scans across all dynamic QRs

See Plans and limits for the full table.

Performance characteristics

AspectStaticDynamic
Time to first byte at scanDNS + TLS to destinationDNS + TLS to q.qrstudio.agency + 302 + DNS + TLS to destination
Latency overhead0 ms~80-150 ms (region dependent)
Cache headers on the redirectcontrolled by the destinationCache-Control: no-store (mandatory)
Reliability after printdepends on destinationalso depends on QR Code Agency
Reliability after we go offlineunaffectedfails until we are back

Our SLA on the redirect path is 99.95% on Enterprise, 99.9% on Agency, and 99.5% on Pro. See Reliability and SLA.

What you can change about a printed dynamic QR

PropertyEditable after print
destination_urlanytime
name (internal label, never visible to scanners)
is_active (kill switch, all scans 302 to a "QR is paused" page)
variants (A/B test split, Pro+)
The encoded short URL itselfthat is the print
The visual design (logo, colors, frame)that is also the print

What you cannot change about any QR

Once a QR is printed:

  • The encoded data is part of the physical print
  • A reprint with new encoded data is a new QR, even if it looks similar

The whole point of dynamic is that destination_url is not part of the encoded data. The encoded data is q.qrstudio.agency/q/<short_id>/, which never changes.

danger: DYNAMIC_QR_BASE_URL is forever The base host that gets encoded into every dynamic QR (q.qrstudio.agency) cannot change once your QR is printed. Even we cannot move it without breaking every QR in the wild. We treat it as a permanent commitment and so should you when planning a custom-domain migration.

Migrating a static QR to dynamic

You cannot. The encoded data of a printed static QR is forever pointing at the original URL. Best you can do is:

  1. Set up a redirect on your origin server. The destination is now indirected, but only as long as you keep that server alive.
  2. Reprint with a dynamic QR. The new prints can be repointed.

This is the most common reason customers move to QR Code Agency: they have a campaign of static QRs in the world and want every future campaign to be repointable.

What is next

On this page