Bulk QR code generator from CSV
Turn a spreadsheet into a ZIP of print-ready codes. Free, with your logo, and everything stays in your browser.
- Never expires
- No sign-up, no watermark
- Vector PDF & SVG with your logo
- Runs in your browser
Each row is a
url, filenameColumns: text, filenameColumns: ssid, password, security, hidden, filenameColumns: first_name, last_name, org, title, phone, work_phone, email, website, street, city, region, zip, country, note, filename
Up to 2000 rows per file. The first row holds the column names; a plain list of links also works.
Files for each code
Your data and logo stay on this device. Nothing is uploaded.
Rows that need fixing
| Line | Problem | Row in your file |
|---|
Colors and shape
Ready-made styles
Color presets
Pattern
Corners
Gradient
Logo
A logo hides part of the code, so error correction is raised and the size is limited to what the code can safely repair.
Error correction
A phone can still read a code that is partly damaged: scratched, dirty or covered by a logo. This level sets how much damage it can recover from. A higher level gives more reserve, but the code gets denser, with smaller squares, and holds less data.
Most people should leave Automatic: it picks M, or H with a logo, and lowers the level if the data does not fit. Choose Q or H for codes outdoors or on packaging that can get damaged, and L or M for long text or very small print. With a logo the level is never below Q.
Try to break it
The code is printed. Now pick what happens next.
Dynamic code
Camera → their server → your page
Opens your page
Everything works while the service runs and the plan is active.
Direct code, made here
Camera → your page
Opens your page
The phone reads your link straight from the printed squares.
Dynamic code
Camera → their server → your page
May stop working
It depends on the provider’s terms. Some pause the redirect until you pay again.
Direct code, made here
Camera → your page
Opens your page
There is no plan behind this code, so nothing can lapse.
Dynamic code
Camera → their server → your page
Stops working
Every printed code points at a server that is gone.
Direct code, made here
Camera → your page
Opens your page
Even if this website disappears too. The code never needed it.
Dynamic code
Camera → their server → your page
Fails until you redirect it
You can send the printed code to a new address, if your plan is active.
Direct code, made here
Camera → your page
Fails too
The honest limit: a link only works while its page exists. Keep the address alive or print a new code.
Which one do you need?
| Direct code | Dynamic code | |
|---|---|---|
| Cost over the years | Free | Usually a subscription |
| If the QR company closes | Keeps working | Stops working |
| Who sees your scans | Nobody | The provider |
| Address people see before opening | Yours | Usually the provider’s |
| Wi-Fi and contact details without internet | Yes | Usually no |
| Change the destination after printing | Only through your own domain | Yes |
| Scan statistics for each code | No | Yes |
| Best for | Menus, plaques, packaging, business cards, Wi-Fi | Ad campaigns you measure, links that change often |
How it works
Export your sheet as CSV, drop it above and pick the files you need. Each row becomes its own code, named after your filename column. Links, plain text, Wi-Fi networks and vCards are supported, and the same colors and logo apply to all of them.
Nothing goes missing silently
Broken rows are never dropped quietly. A row with a bad link, a stray quotation mark, too many columns or too much data appears in a list with its line number and the reason, and the list goes into the ZIP as well. Every code is read back by a decoder before it is added to the archive.
Tips for large runs
Put the file name in a filename column, keep links short so the codes stay easy to scan, and print one sample of the batch to test with a phone. A file can hold up to 2,000 rows; split longer lists into several files.
Questions
What should my CSV look like?
The first row names the columns, for example url,filename. Download the sample file for the type you need. A plain list of links with no header also works.
Why not one big PDF with many codes?
Each code becomes its own file today, which suits most print shops and layout tools. You can place the SVG or PDF files into any layout program.
Will this QR code ever expire?
No. There is nothing that can expire: the code contains your data itself and works without any server. It keeps working as long as it can be scanned and, for a link, as long as that website exists.
Is it really free? Are there limits on scans?
Yes, it is free with no account. Scans are unlimited because nobody counts them: a scan happens entirely between the code and the phone. The site is paid for by advertising.
Do you see my data or logo?
No. The code is created in your browser and nothing is uploaded. You can load the page, go offline, and it keeps working.
Will it scan on every phone?
Every code is read back by a decoder in your browser before download, and you get a warning if that fails. That is a software check, so scan one printed copy with your own phone before a large print run.