QR Stack

Sign in

QR Stack

QR Stack

Generate
Products
Dynamic Links
App Links
Files
Bulk
Users
API Keys
Integration

Generate QR

Where the QR redirects when scanned. Defaults to qrstack.io (our built-in resolver — shows product info if the GTIN matches a SKU in your Products tab). Switch to https://id.gs1.org for the official GS1 reference resolver, or your own brand domain.

Style options (color, logo, error correction)
Encoded text:

Add product

All products

SKUNameURL

What are dynamic links?

A dynamic link is a short URL like that you control. You print/share the QR for that short URL. Anytime later you can change where it points — without reprinting the QR. Bonus: every scan is logged so you can see how often each campaign/product is being scanned.

Create dynamic link

All dynamic links

NameShort URLCurrently points toScansLast scanStatus

Scan history —

WhenUser agentIPReferer

App Links

A single QR code that detects the scanner's device and routes them to the right place. iOS users go to the App Store, Android users to Google Play, everyone else (desktop, smart TV, etc.) goes to your fallback URL.

Create app link

All app links

NameShort URLiOSAndroidFallbackScansStatus

File QR

Upload a file (PDF, image, video, anything up to 25 MB) → get a short URL pointing at it → generate a QR. Scanning the QR downloads the file with its original filename.

Important: uploaded files are publicly accessible to anyone with the URL. Don't upload anything confidential.

Upload file

All files

NameOriginal filenameSizeShort URLDownloadsLast download

Bulk generate from CSV

Upload a CSV with one row per QR code. Get back a zip of PNGs.

CSV format: data,name per row. name is optional; if omitted, files are auto-named qr-1.png, qr-2.png… Header row optional (recognized: data, url, text, content). Max 500 rows, max 1MB CSV.

Example:
data,name
https://stacksy.com.au/p/widget,widget
https://stacksy.com.au/p/gadget,gadget

Add user

After creating, copy the password and share it with the user securely (Signal, 1Password share, etc.). They can change it later if you give them the new flow — for now, only admins can reset passwords.

All users

UsernameRoleCreatedLast login

Create API key

One key per consuming app. Name them so you know which key belongs to which app — e.g. myrepday-app, stacksy-com-au-marketing. The full key is shown only once at creation.

All API keys

NamePrefixCreated byCreatedLast usedStatus

Integration snippets

Replace $YOUR_API_KEY with a key created in the API Keys tab. Different apps should use different keys so any one can be revoked independently.

HTML <img>
JS / Node
Python
PHP
For Claude

Embedding directly in browser HTML exposes the API key in page source. Use only for trusted internal tools — for public sites, fetch on the server and serve the PNG from your own URL.


        
      

        
      

        
      

        
      

Paste this into another Claude session when building an app/website that needs QR codes:


        
      

User Guide

Loading…

API key created

Save this now — it will not be shown again. If you lose it, revoke and create a new one.

Name: