Website
Just the URL. It's used exactly as written, so include the protocol.
https://example.com/product/42
Never made a QR code in bulk before? You're in the right place. This tutorial walks through the whole process in plain language, from writing your first list to downloading a folder full of ready-to-print codes.
No coding, no design skills, and no software to install — if you can type into a spreadsheet, you can do this.
A CSV is just a spreadsheet saved in the simplest possible format — think of it as a plain list, one row per QR code you want to make. Here's how to build one:
| data | filename |
|---|---|
| https://mystore.com | homepage |
| https://mystore.com/menu | menu |
| https://mystore.com/contact | contact |
Once your list is ready, save it as a CSV:
In a hurry? Skip straight to the ready-made starter file below and come back to this later.
On the Bulk generator page, set the style for the whole batch — every code you generate will share it, so it's worth doing before you upload anything.
Scroll to the CSV file field and choose the file you just saved. It's read instantly — you'll see a line like “3 rows ready to generate” appear right away.
That number is worth a glance before you continue: if it's higher or lower than you expected, open your CSV back up and look for a stray blank row or an extra comma before generating anything.
Click Generate ZIP. Every row is rendered with the style you picked and packed into one file called qr-codes.zip, which downloads straight to your browser's usual downloads folder.
A ZIP is just a folder squeezed into a single file. To open it, double-click it on Mac or Windows — it unpacks into a regular folder full of PNG images, one per row, named however you set them up in step 1. From there, print them, drop them into a document, or upload them anywhere images go.
Copy this starter file into a spreadsheet, save it as a CSV, and upload it — you'll have three ready-to-scan QR codes in under a minute.
data,filename
https://www.wikipedia.org,wikipedia
https://www.google.com,google
https://www.anthropic.com,anthropic
Bulk rows are encoded exactly as written — there's no type picker to format them for you. Copy the pattern that matches what you're generating.
Tip: Website and Text rows are plain values, so they need no special formatting. Every other type below has a specific string format the code expects — copy the example, then swap in your own values.
Just the URL. It's used exactly as written, so include the protocol.
https://example.com/product/42
Whatever you want the scanner to read — no formatting needed.
Thanks for shopping with us! Show this at checkout for 10% off.
The WIFI: string below. T is WPA, WEP, or nopass (leave P empty for nopass).
WIFI:T:WPA;S:CoffeeShop-Guest;P:sunshine123;H:false;;
A mailto: link. Subject and body are optional and must be URL-encoded.
mailto:hello@example.com?subject=Question&body=Hi%20there
A tel: link with the number, digits and a leading + only.
tel:+15551234567
SMSTO:, the number, a colon, then an optional starter message.
SMSTO:+15551234567:Thanks for signing up!
A full vCard block. In Excel or Google Sheets, just press Alt/Option+Enter for line breaks inside the cell — the app quotes it correctly on export.
BEGIN:VCARD
VERSION:3.0
N:Rivera;Jordan;;;
FN:Jordan Rivera
ORG:Acme Studio
TEL:+15559876543
EMAIL:jordan@example.com
URL:https://acme.example.com
END:VCARD
geo: plus latitude,longitude. Add ?q=...(label) to show a pin label.
geo:40.6892,-74.0445?q=40.6892,-74.0445(Statue%20of%20Liberty)
A full VCALENDAR block. Dates use YYYYMMDDTHHMMSS (no dashes or colons) in the scanner's local time.
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//qrlama//QR Generator//EN
BEGIN:VEVENT
UID:launch-2026@example.com
DTSTAMP:20261001T120000Z
DTSTART:20261015T180000
DTEND:20261015T210000
SUMMARY:Product Launch Party
LOCATION:400 Pier St, San Francisco, CA
DESCRIPTION:Join us for drinks and a live demo.
END:VEVENT
END:VCALENDAR
There's no provider picker in bulk mode — use the finished link for whichever provider each row needs.
PayPal: https://paypal.me/harborcafe/25
Venmo: https://venmo.com/harborcafe?txn=pay&amount=25¬e=Thanks
Cash App: https://cash.app/$harborcafe/25
Bitcoin: bitcoin:bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh?amount=0.001
No. If you can type into a spreadsheet, you can bulk-generate QR codes — there's no code, formulas, or special software involved.
Yes. Each row is used exactly as written, so one CSV can freely mix a website link, a Wi-Fi code, and a phone number, as long as each row is already written in the format that type needs (see the reference table below).
Up to 500 rows per CSV file. Need more? Just split your list into a few files and upload them one after another.
No — it's free, with no sign-up and no watermark on your codes.
Leave the second column out entirely. Each file is automatically named after its own content instead.
Make sure it's saved as a .csv file (not .xlsx or .numbers) and has at least one row of data below the header row.
Set your style, upload your CSV, and download every code as one ZIP.