SnapQR

Bulk QR Code Generator

Paste a list or upload a CSV and get up to 1,000 QR codes in one style. Made in your browser, nothing uploaded.

Add a list and your codes show up here.

File type

ZIP of PNG files

Codes per row

Nothing you type is uploaded — the code is made in your browser. No watermark, no expiry.

1Where’s your list?

One code per line. Copied from Excel or Google Sheets? Extra columns become the file name and the label.

Each line is

2Check the list

3Style for every code

Classic

Quick styles

Templates

For placing the code on your own design (PNG, SVG, PDF). Put it on a light background.

Gradient

Drop an image here, or click and paste it (Ctrl+V)

PNG, JPG, WEBP or SVG, up to 10 MB. Blank edges are trimmed for you, and error correction switches to High.

Or pick an icon

Logo size

Background

A white shape behind the logo. Useful on a colored or transparent background, so the logo doesn’t blend in.

Space around the logo

Dots

Corner squares

Corner dots

Frame

Ideas

Icon before the label

Error correction

How much of the code can get damaged or covered and still scan: L 7%, M 15%, Q 25%, H 30%. Higher adds more squares, so the code gets denser. Auto uses M, or H when you add a logo.

White border (quiet zone)

Scanners need clear space around the code — the standard is 4 squares wide. Pick Slim or None only if you’ll put the code on a light area with space around it.

How it works

  1. 1

    Add your list

    Paste it (straight from a spreadsheet is fine), upload a CSV, or make a number range like ticket 001 to 500.

  2. 2

    Style them once

    Pick a template, colors, shapes and a frame. Every code in the batch gets the same look.

  3. 3

    Download

    A ZIP of PNG or SVG files, or a PDF sheet laid out for A4 paper.

Three ways to add your list

  • Paste: one entry per line. Copy cells straight from Excel or Google Sheets: the extra columns become the file name and the label.
  • Number range: a pattern like https://example.com/t/{n}, from 1 to 500, with leading zeros if you want them (001). Handy for tickets, asset tags and table numbers.
  • CSV file: best for long lists you keep in a spreadsheet. There's a sample file to start from.

Before you download, the list is shown as a table: what each code will hold, its file name, its label, and why a line was skipped, with the line number.

Setting up the CSV. The first column is what goes in the code. Two more columns are optional: a file name and a label for the frame. A header row is optional too; with one, columns go by name, so their order doesn't matter.

urlnamelabel
https://bistro.example/menu?table=1table-01TABLE 1
https://bistro.example/menu?table=2table-02TABLE 2
  • Header names we recognize: url, link, content, text or data for the content; name, filename or id for the file name; label or caption for the frame text (up to 24 characters).
  • Commas, semicolons or tabs all work. Excel in much of Europe saves with semicolons; we detect it from the first line.
  • From Excel or Google Sheets: save as “CSV UTF-8” so accents and other scripts survive.

No name? Files are numbered qr-001, qr-002… so they sort in order. Two rows with the same name get -2, -3 added instead of overwriting each other.

What you can download

  • ZIP of PNG files at 512, 1024 or 2048 pixels: for screens, emails and most label software.
  • ZIP of SVG files: vector files a printer or a design app can scale to any size.
  • PDF sheet (A4): the codes laid out in a grid with 10 mm margins and 6 mm between codes, ready to print and cut.

How many fit on a sheet, with the file name printed under each code:

Codes per rowPer A4 pageCode width
249.2 cm
3125.9 cm
4204.3 cm
5303.3 cm

Frames make each code taller, so fewer rows fit; the tool shows the real count before you download. The names under the codes use the PDF's built-in font, so accents are dropped (Bàn-4 prints as Ban-4) and names in other scripts print as their number.

Check the longest code, not the first

The preview shows the longest line of your list, because it makes the densest code in the batch. Our scan check reads that one back. If it passes, the shorter ones have fewer, bigger squares and are easier to read.

Long links are the usual reason a batch gets dense. Our link QR code page has a table of link length against grid size. After printing, spot-check a few codes from different pages with our QR code scanner or your phone camera.

Why nothing is uploaded

Bulk lists are often things you'd rather keep to yourself: asset tags, ticket numbers, guest lists, internal links. Here the list is read and the codes are made by your browser, one by one. Nothing is sent to our server, and closing the tab clears it.

A common use: one code per table, each opening the menu QR code link with its table number, so you know where an order came from.

Questions people ask

Up to 1,000 per batch. For a longer list, split it into several files and run them one after another.

Yes. Use Number range: write the link or text with {n} where the number goes, pick the first and last number and how many digits.

Yes. Pick a frame, then add a label column to your CSV. Rows without a label use the frame text you typed.

Not yet. Each line becomes a link or a plain-text code. For a single WiFi or contact code, use those generators.

Save it as “CSV UTF-8 (comma delimited)” first. In Google Sheets: File → Download → CSV.

No. The list is read and the codes are made in your browser. Nothing is uploaded.