Dynamic, trackable QR codes from a CSV
Paste up to 3 rows and download a sample ZIP right here, no signup. Every code is editable after printing, and every scan is trackable. Upgrade to run 100 at a time from a CSV.
Last updated: July 19, 2026
Try the sample →Generate a 3 code sample
Paste up to 3 rows in the box (or upload a small CSV) and hit generate. You get back a ZIP with a watermarked PNG for each row. Sample codes are static. To generate 100 at a time, unlock the vector formats (SVG, EPS, PDF) for print, drop the watermark, and get editable destinations plus scan analytics, upgrade to Pro.
Rows to encode
Format: name,url per line. Header row optional.
Most bulk QR tools give you image files that point at a fixed URL. Once printed, the destination is frozen. A single URL change means reprinting the whole batch. No idea who scanned what, when, or from where.
Every code you generate on Pro is a dynamic redirect. Change any destination without touching the printed sign. Every scan is logged with device, city, and time so you can compare which placements actually worked.
The people who ask us for bulk generation
Twenty flyers for one client, thirty for another, all with different destinations and different attribution needs. Building them one at a time in a browser is a lost afternoon. A CSV takes seconds.
Every listing needs a yard sign QR pointing at the property page. When a listing sells, that URL should redirect to a similar property or the agent's featured page. Bulk generation gets the whole book of business online in one upload.
Every location gets a distinct code so that scan analytics separate out franchise performance. Corporate ships the same physical sign, and the individual location URL sits behind it.
Thirty sponsors, thirty codes, thirty distinct landing pages that get set up the week of. A conference operator can generate a batch on Tuesday and update targets on Thursday when a sponsor swaps in a last minute promotion.
Classroom door signs, department contact cards, resource hall directories, event flyers. Facilities and communications teams generate hundreds of codes per academic term. Bulk keeps this off the manual work list.
Twelve SKU variations, twelve unique setup guides. One CSV, twelve codes, twelve labeled files ready for the packaging vendor. Update the setup guide URL any time without changing packaging art.
What the CSV needs to look like
The uploader accepts a plain two column CSV. Header row is optional but recommended for your own sanity when the download lands. The label becomes the filename in the output ZIP, so pick labels a human can find later.
Example CSV, ready to save as listings.csv
label,url 1247_maple_ave,https://acme.realestate/listing/1247-maple-ave 918_oak_street,https://acme.realestate/listing/918-oak-street 2503_pine_drive,https://acme.realestate/listing/2503-pine-drive 44_elm_circle,https://acme.realestate/listing/44-elm-circle
Rules to keep in mind so nothing surprises you at download:
- Maximum 100 rows per upload. Split larger jobs into multiple CSVs.
- Label column must be alphanumeric with dashes or underscores. Spaces get converted to underscores automatically.
- Destination URLs must include the protocol (https or http). We do not guess.
- Duplicate labels get suffixed with 01, 02, and so on. Duplicate URLs are allowed on purpose so you can point multiple placements at the same target.
- If a row fails validation, the whole batch waits until you fix it. We do not silently drop rows.
From spreadsheet to printable files in five minutes
Google Sheets, Excel, Numbers, or even a plain text editor. Two columns, up to 100 rows, save as CSV. The bulk uploader accepts UTF-8 encoded files.
Pick colors, pattern shape, and centered logo once. Every code in the batch uses the same style so the output feels like a coherent set instead of a random collection.
Every row produces a PNG and an SVG named by your label. Hand the ZIP off to your print vendor, your marketing team, or your ops folder. The codes are already live in your dashboard for editing.
Bulk generation is the start, not the end
A batch of 100 codes is not a batch of static images. Every code is dynamic and editable, and trackable independently. When a listing sells, when a sponsor drops out, when a franchise location relocates, you update the specific code without regenerating the others.
Every code gets its own scan analytics dashboard at the individual code level. That is the point. If you generated 30 codes for 30 real estate listings, the dashboard shows scan trends per property. The listings agent can look at that report on Monday morning and see which yard signs are actually driving mobile traffic and which lots are getting drive by ignored. See the business QR code page for a broader overview of the commercial use cases.
The dashboard supports bulk actions on the codes you generated together, so you can retire an entire campaign's codes when the campaign ends without hunting them down individually.
Common questions about bulk generation
Why the 100 row limit per upload?
One hundred is the size where a job finishes in seconds instead of minutes, and where a validation error is easy to spot in a spreadsheet. Larger batches introduce timeout risk, ZIP file sizes that email clients block, and the failure mode where you scroll past the one wrong URL. Split a 200 code job into two 100 code uploads and each one runs cleanly.
Can I mix QR code types in a single CSV?
Not in one CSV. The bulk uploader assumes all rows are Link type codes, which is what 95 percent of bulk work needs. If you need a batch of vCard or WiFi codes, generate those individually. Mixing types in bulk creates ambiguity in the column structure that we would rather not paper over.
How are the files named inside the ZIP?
Each row produces two files, label.png and label.svg, using your CSV label. If the label was 1247_maple_ave, the ZIP contains 1247_maple_ave.png and 1247_maple_ave.svg. This is why choosing meaningful labels matters. Downstream teams find files by name, not by scanning through a folder of untitled PNGs.
Are bulk generated codes any different from single generated codes?
No. Bulk generation is a convenience wrapper over the same code creation pipeline. Each output is a full dynamic QR code with the same edit history, the same analytics, and the same plan limits as anything you would create one at a time. There is no bulk tier of code with reduced capabilities.
What happens if a URL in my CSV is invalid?
The uploader validates the whole file before generating anything. If a URL is malformed, missing a protocol, or points at a blocked host, you get a row and column reference so you can fix the CSV and resubmit. Nothing is generated until every row passes validation, which prevents half generated batches.
Can I regenerate a batch with different styling later?
Yes. Codes and styling are independent. You can re download any code as PNG or SVG at any time with updated colors, pattern, or logo. If you decide the batch you generated for spring should look different for fall, you do not need to regenerate the underlying codes. Just re download with the new styling.
Which plan tier includes bulk generation?
You can generate a 3 code sample right on this page with no signup, so you can see the output before paying anything. The full bulk uploader, which handles 100 codes at a time from a CSV and creates editable trackable codes, is a Pro plan feature. Pro is priced for people managing many codes over time. If you have a one time batch need, the Pro monthly is often cheaper than the labor to make 100 codes individually.
How do I split a job larger than 100 codes and keep it organized?
Prefix your labels with a batch identifier. For 200 codes, upload two CSVs with labels like q4_display_01, q4_display_02 through q4_display_200. In the dashboard, filter by the q4_display prefix to pull the whole set for reporting or bulk actions. The upload runs in two passes but the codes read as one campaign afterward.
You might also need