How to Make QR Codes in Bulk from a Spreadsheet (CSV)
Make hundreds of styled QR codes at once from a CSV or a pasted list: how to prepare the spreadsheet, name each file, choose PNG, SVG, or print-ready files, the limits per batch, and how developers can do the same with the QR API.


To make many QR codes at once, put one link or text per row in a spreadsheet, save it as CSV, and give it to a bulk QR code generator. In Pretty QR, you design one code first (colors, shape, logo, frame), open Content → Many codes, upload the CSV or paste the list, and choose Download batch. You get one ZIP with a file for every row, in PNG, JPG, SVG, or print-ready PDF, all with the same design. A batch holds up to 500 rows; batch generation is part of Pro.
Developers can do the same from code with the QR API, which a free account can use for 100 codes a month.
When do you need bulk QR codes?
Whenever each item needs its own code with its own content:
- Products and packaging: one code per product page or manual. See QR codes on product packaging.
- Events: one code per session page, or per table or room.
- Restaurants and hotels: one code per table or room, each with its own link.
- Real estate: one code per listing for signs and flyers. See QR codes for real estate.
- Inventory and assets: one code per item, for example a link to its record.
- Staff badges or business cards: one code per person. See QR codes for business cards.
If everyone gets the same code, you do not need a batch. Make one code and print it many times.
How do I prepare the spreadsheet?
Make a sheet with a header row and one row per code:
| filename | url |
|---|---|
| table-01 | https://example-cafe.com/menu?table=1 |
| table-02 | https://example-cafe.com/menu?table=2 |
| table-03 | https://example-cafe.com/menu?table=3 |
- The content column must be named
content,url,link,text,data, orvalue. Each cell is what one QR code holds: usually a link, or plain text. - The name column is optional. Name it
filename,file, orname. Each code is saved with that name, such astable-01.png. Without it, the files areqr-001,qr-002, and so on. A repeated name gets-2,-3added, and characters that are not allowed in file names are replaced with-. - Other columns are ignored, so you can keep notes or prices in the same sheet.
Then save it as CSV:
- Google Sheets: File → Download → Comma-separated values (.csv).
- Excel: File → Save As → CSV UTF-8.
- Numbers: File → Export To → CSV.
Comma, semicolon, and tab separators all work. That matters for Excel in many European languages, which saves CSV files with semicolons.
No spreadsheet? You can also paste a list, one link or text per line. Then every line is one code, and lines are not split at commas.
How do I make the QR codes in Pretty QR?
- Design one code in the editor, or start from a template: colors, module and corner shapes, a logo, a frame with a label. Every code in the batch gets this design.
- Open Content and choose Many codes. You need a Pro account; if you are not signed in, the panel shows how to sign in or buy Pro.
- Upload the CSV or paste the list. Pretty QR reads the rows and lists any row it cannot turn into a code, with its line number, so you can fix it or leave it out.
- Choose Download batch and a format:
- PNG or JPG: 2048 px, for screens and office printing.
- SVG: vector files for print at any size.
- Print-ready: PDF or SVG files with bleed and crop marks for a print shop, at one size for the whole batch.
- Open the ZIP. It has one file per row and a
manifest.csvthat lists each file name with its content, so you can check which code is which.
The files are made in your browser, with the same drawing code as a single download, so a batch code looks exactly like the code in the editor.
What are the limits per batch?
| Limit | Value |
|---|---|
| Rows per batch | 500 |
| Batches per hour | 20 |
| CSV file size | 1 MB |
| Content per row | Up to 2,331 bytes, or 1,273 bytes with a logo or the shield shape |
Rows over 500 are left out, and the dialog says how many. For more than 500 codes, split the sheet into several files of 500 rows.
The content limit is the most a QR code can hold. In practice, keep each link short: long links make dense codes that need more space when printed. Our QR code size guide shows how link length changes the minimum print size.
How do I check a batch before I print it?
- Scan a few codes from the ZIP with your phone, for example the first, a middle one, and the last. Check that each opens its own link.
- Open
manifest.csvand compare a few rows with your spreadsheet. - Check the file names against your labels, so code
table-12goes on table 12. - Print one test sheet at the real size before the full run.
Do bulk QR codes expire, and can I track their scans?
Batch codes are static: each link is in the pattern, so the codes do not expire and nothing needs renewing. See how to make a QR code that never expires.
To count scans per code without dynamic links, add a different UTM tag to each row's link, for example ?utm_source=table-12, and read the visits in your web analytics. You can build those links in the spreadsheet with a formula, such as ="https://example-cafe.com/menu?utm_source=table-"&A2.
How do I make bulk QR codes with an API?
If the list comes from your own system, call the QR API once per row. POST https://pretty-qr.com/api/v1/qr returns the PNG or SVG file, with the same design options as the editor:
while IFS=, read -r name url; do
curl -s https://pretty-qr.com/api/v1/qr \
-H "Authorization: Bearer $PRETTY_QR_KEY" \
-H "Content-Type: application/json" \
-d "{\"content\": \"$url\", \"format\": \"svg\", \"design\": {\"backgroundColor\": \"#ffffff\", \"foregroundStyle\": {\"colors\": [\"#1e293b\"]}, \"moduleShape\": \"rounded\"}}" \
-o "$name.svg"
done < links.csv
links.csv here has no header: each line is name,url. Create an API key on the API keys page.
| Limit | Free account | Pro |
|---|---|---|
| API codes a month | 100 | 10,000 |
| API codes an hour | 1,000 | 1,000 |
| API keys | 2 | 10 |
The API docs list every design field, with a Postman collection and an OpenAPI file. AI assistants can use the same key through the MCP server; see how to make a QR code with ChatGPT or Claude.
What does it cost?
Batch generation is part of Pro, a one-time payment of $39 with no subscription. Pro also includes print-ready files, hosted files, a higher API allowance, and 100 dynamic links. The free editor stays free for single codes. See pricing.
One design, one spreadsheet, one ZIP. Design your code in the editor, then open Content → Many codes.
Questions? [email protected]
Frequently asked questions
How do I make many QR codes at once?
Put one link or text per row in a spreadsheet and save it as CSV. In Pretty QR, design one code in the editor, open Content, choose Many codes, upload the CSV or paste the list, and choose Download batch. You get one ZIP with a QR code file for every row. Batch generation is part of Pro.
How many QR codes can I make in one batch?
Up to 500 rows per batch, and up to 20 batches an hour, so up to 10,000 codes an hour. The CSV file can be up to 1 MB. Rows over the limit are left out, and the dialog says how many.
Can I choose the file name of each QR code?
Yes. Add a column named filename, file, or name to the CSV. Each code is saved with that name. Rows without a name are saved as qr-001, qr-002, and so on, and a repeated name gets -2, -3 added.
What format should my CSV be in?
One header row with a column named content, url, link, text, data, or value, and one row per QR code. Comma, semicolon, and tab separators all work, so a CSV saved from Excel in any language is fine. Without such a header, every line is read as one code.
Do bulk QR codes expire?
No. Batch codes from Pretty QR are static: each link is in the pattern, so the codes work as long as the links work, with nothing to renew.
Can I make bulk QR codes with an API?
Yes. POST /api/v1/qr returns a PNG or SVG for one code, so a script can loop over a spreadsheet. A free account can make 100 codes a month through the API; Pro can make 10,000 a month and 1,000 an hour.
Related articles

How to Make a QR Code That Never Expires (Free)
A static QR code never expires: your link is in the pattern itself. Why codes from "free" generators stop working after a trial, how to check whether a printed code is static or dynamic, how to keep an editable link without a subscription, and what happens to Pretty QR dynamic links if a plan ends.

How to Make a QR Code with ChatGPT or Claude (That Actually Scans)
Three ways to get a QR code from an AI assistant: ask it to write code, connect a QR code MCP server for styled codes with your colors and logo, or let it draft a design you finish in an editor. Why AI image generators make QR codes that do not scan.

How to Make a Wi-Fi QR Code (Free, Works on iPhone and Android)
Make a QR code that joins your Wi-Fi network when guests scan it: which network name and security type to enter, hidden networks, special characters, where to put the code, what it does and does not keep secret, and how to test it.