QR code generator with UTM tags

Type a link or any text, add UTM tags if you want to see the scans in Google Analytics, pick colours and error correction, then download the code as SVG for print or PNG for screens.

Add UTM tags (links only)

Encoded text

Scan the preview with your phone camera before you print it.

Runs in your browser. Nothing you type is sent to PostBoost.

Use this tool from code

The same tool is a free API call, no account needed. It also works with our 9 SDKs and the MCP server.

curl
curl -X POST https://postboost.co/app/api/tools/qr-code-generator -H 'Content-Type: application/json' -d '{"data":"https://postboost.co","utm":{"source":"flyer"},"size":128}'

API docs for this tool SDK quickstart

Last verified:

Sources:

Track the scans, not just the clicks

A QR code on a flyer, a poster or a product box sends people to your site without a referrer, so most analytics tools count those visits as direct traffic. Add UTM tags before you make the code and every scan arrives with a source, a medium and a campaign. A simple pattern for print is utm_source=flyer (or poster, menu, packaging), utm_medium=print and a campaign name per run. Use one code per placement when you want to compare them.

Make a code that scans

  • Dark on light. Keep the code darker than its background. Brand colours are fine as long as the contrast stays high.
  • Leave the margin. The white border around the code is part of it. The downloads include it; do not crop it off in your design.
  • Shorter is easier. A short link needs fewer modules, so each one prints bigger. Long UTM values make the code denser.
  • Test at the real size. Scan a printed proof from the distance people will stand at, before you print a thousand.

The tagged link that the code opens works in social posts as well. In PostBoost you can give each network its own version of a post, so paste a link tagged for that network (for example utm_source=linkedin&utm_medium=social) into each version and compare print and social side by side in your reports.

How to use

  1. Paste the link (or type the text) you want the code to open.
  2. Open Add UTM tags and fill source, medium and campaign, for example flyer, print and spring-launch.
  3. Pick an error correction level and the colours; fix any contrast warning.
  4. Scan the preview with your phone camera to check it opens the right page.
  5. Choose the download size and save the code as SVG or PNG.

FAQ

Do these QR codes expire?

No. The link or text is stored in the code itself, so it works for as long as the page it points to exists. There is no redirect service in between and nothing is stored on our side, which also means you cannot change the target after printing.

How do I track scans of a QR code?

Add UTM tags. The code then opens a link such as https://example.com?utm_source=flyer&utm_medium=print&utm_campaign=spring-launch, and Google Analytics reports those visits under that source, medium and campaign. The tags are added exactly as our UTM builder adds them.

Which error correction level should I use?

M (15%) is the default and fits most uses. Pick Q or H (25% or 30%) for codes that may get scratched, folded or partly covered, and L (7%) when the text is long and you want the smallest number of modules.

SVG or PNG?

SVG is a vector file: it stays sharp at any size, so use it for print and design tools. PNG is a picture at the size you choose (128 to 2,048 px), which suits websites, slides and social posts.

Why do I see a contrast warning?

Scanners look for dark modules on a light background. The generator warns when the two colours are below a 4.5:1 contrast ratio, or when the code is light on dark, because some scanner apps cannot read inverted codes.

Is my text sent to PostBoost?

No. The code is drawn in your browser while you type. The same generator is available on the PostBoost Free Tools API and MCP server, which returns the code as SVG.

Related

Try PostBoost free

API, webhooks and MCP on every plan, including Free. No credit card required.