How to paste a list of URLs and get QR codes back

Last updated: July 2026 · About 5 minutes

Exporting a CSV is overkill when you already have the URLs sitting in a chat message, a text file, or two columns of a spreadsheet. The Paste a list tab takes them directly. No file, no column mapping, no export step.

The basic version

Open the generator, choose Paste a list, and put one URL on each line:

https://example.com/welcome
https://example.com/menu
https://example.com/contact

A counter under the box tells you how many URLs it has recognised as you type. If that number does not match what you pasted, something on one of the lines is wrong — usually a stray blank line, which is ignored, or a line that is not a URL at all.

Set your format, size and error correction, then generate. You get back a ZIP called qr_codes.zip containing qr_code_1.png, qr_code_2.png and so on, numbered in the order you pasted them.

Adding filenames

Numbered files are fine for three codes and useless for forty. To name them, add a filename after a comma or a tab:

https://example.com/welcome, welcome-packet
https://example.com/menu, dinner-menu
https://example.com/contact, contact-card

That produces welcome_packet.png, dinner_menu.png and contact_card.png. The same sanitising applies as everywhere else in the tool: anything that is not a letter or number becomes an underscore, runs of underscores collapse, and duplicates get a numeric suffix so nothing is silently overwritten. The file naming guide goes into that in more detail.

You can mix lines with and without filenames. Unnamed ones fall back to numbering.

The useful part: paste two columns straight from a spreadsheet

Tabs work as separators as well as commas, and this matters more than it sounds. When you select two columns in Excel, Google Sheets or Numbers and copy them, they land on the clipboard tab-separated. So you can select a URL column and a name column, copy, and paste the pair directly into the box:

https://example.com/a	Room 101
https://example.com/b	Room 102
https://example.com/c	Room 103

That is the whole workflow. No CSV export, no column mapping, no file anywhere. For a one-off run of a few dozen codes it is considerably faster than the CSV route, which earns its keep on recurring jobs and larger batches.

Column order matters: URL first, name second. If your sheet has them the other way round, reorder the columns before copying.

The comma rule that catches people out

Each line is split at the first comma or tab it contains. Everything before is the URL; everything after is the filename. That is simple and predictable, and it breaks in one specific case: a URL that itself contains a comma.

https://maps.example.com/?q=51.5074,-0.1278, london-office

That splits at the comma inside the coordinates, so the URL is truncated to https://maps.example.com/?q=51.5074 and the filename becomes the rest. The code generates without complaint and points somewhere wrong.

Two ways out:

If a URL contains a comma and you do not want a filename at all, encode it anyway — otherwise the line still splits at the comma.

Which input mode to use

Mode Best for Gives you
Paste a list A handful up to a few hundred, already in text form URL and filename
Upload CSV Recurring jobs, large batches, data with many columns URL, filename, column choice, filename prefix
Enter manually A few codes, or when you need multiple copies of one URL, filename, and a copies count

The one thing paste mode does not offer is the copies field. If you need forty identical codes for a sheet, use manual entry — see printing a sheet of identical codes.

Pasting things that are not URLs

Nothing here requires a URL. Whatever is on the line gets encoded as-is, so the paste box handles any text a QR code can carry. A few that are genuinely useful in bulk:

What you want What to paste
Dial a number tel:+441234567890
Start an email mailto:hello@example.com
Send a prefilled SMS sms:+441234567890?body=BOOK
Open a map location geo:51.5074,-0.1278
Plain reference text ASSET-004821

That last one matters for asset tags. If your stock system scans a bare ID rather than a URL, encode the ID directly — there is no need to invent a web page for it.

Two cautions. Anything containing a comma — the geo: example above, or a WiFi string — hits the splitting rule described earlier, so use a tab separator or percent-encode it. And plain text without a protocol will not be offered as a link by most scanners, which is correct for an asset ID and wrong if you meant a web address.

Before you paste a long list

Everything runs in your browser. Pasted URLs are never uploaded anywhere, which matters when the list contains customer links or anything else you would rather not hand to a server.

Open the generator