Bulk QR Codes in QRKIT

Create dozens — or thousands — of QR codes in a single pass. Upload a spreadsheet, paste your rows, or fill a table right in the browser, then download everything as images or a print-ready label sheet. Perfect for events, product launches, asset labelling, and large-scale campaigns.

9 min read

What is Bulk QR Codes?

Bulk QR Codes is a workflow inside QRKIT that turns a list of rows into a batch of finished QR codes in one go. Instead of building codes one at a time, you prepare your data once — as a file, a paste, or a quick table — and QRKIT generates every code for you in the background.

Each row becomes its own QR code, complete with a title, an optional design template, and an optional folder. When the batch finishes you can download every code as images or as a print-ready label sheet, and any dynamic codes land in your dashboard ready to edit and track.

When to use it

Bulk creation pays off the moment you need more than a handful of codes that share a common purpose. Some of the most common cases:

  • Events and conferences — one code per session, speaker, sponsor booth, or table, all generated from a single agenda spreadsheet.
  • Product catalogues and packaging — one code per SKU pointing to its product page, manual, or warranty form.
  • Asset and inventory labels — one code per item, tool, room, or piece of equipment, ready to print on label sheets.
  • Signage and print runs — variant URLs per location, poster, or partner so you can compare scan performance side by side.
  • Guest WiFi cards — a batch of WiFi codes that join the network on scan, ready to drop onto cards or signage.
  • App promotion across stores — one App Stores code per product, each routing scanners to iOS, Android, or Huawei AppGallery automatically.

Three ways to add your data

You'll find the feature in the dashboard sidebar under Bulk QR Codes. The first thing the page asks is howyou'd like to add your data. Pick whichever fits the size and source of your list:

  • Upload CSV / Excel — import a .csv or .xlsx file. Best for larger lists or data you already keep in a spreadsheet. You can download a ready -made template first so the columns line up.
  • Copy & paste — paste rows in CSV format (including the header row) straight from a spreadsheet. Handy for a quick batch without saving a file.
  • Enter manually— add rows one at a time in an in-browser table, choosing a QR type per row and filling its fields. Ideal for a short, mixed batch where you don't want to touch a spreadsheet at all.

Whichever you choose, the rest of the steps adapt to it — and every method runs the same validation and produces the same result.

How it works, step by step

  1. Choose an input method — upload, paste, or enter manually (see above).
  2. Grab a template (for file uploads) — pick the QR type you want and download a starter file as CSV or Excel, pre-filled with the right columns. Replace the example row with your data and keep the header row exactly as it is.
  3. Optionally pick a design template so every code in the batch carries your branding.
  4. Optionally set an expiration so every dynamic code expires on a date or after a set number of scans.
  5. Provide your data and generate — drop in the file, paste your rows, or fill the table, then press Generate QR Codes.

Before anything is created, QRKIT validates every row. If a row has a missing field, a malformed link, or a feature your plan doesn't include, you'll see a View Errors dialog listing the problem row by row, with the original data alongside. Nothing is generated until the data is clean.

Once validation passes, you're taken to a progress page that updates in real time — total count, completed, pending, and any failures with their reason. Generation runs server-side, so you can leave the page; we'll email you when the batch is done.

QR types you can create

Bulk creation supports 15 QR types. Each row in your data names its own type, so a single batch can mix as many of them as you like:

  • Links — a plain URL, a Google Form, or one of the major social profiles: Facebook, Instagram, YouTube, X, TikTok, Linktree, and Pinterest.
  • App Stores — a single code that routes the scanner to the right store based on their device (Apple App Store, Google Play, or Huawei AppGallery).
  • WiFi — join a network on scan, from a network name, password, and encryption type.
  • Email, SMS, and Text — open a pre-filled email or text message, or show a plain block of text.
  • Calendar Event— add an event with its title, location, and start and end times to the scanner's calendar.

Every row starts with the same two columns — type (which QR type the row is) and title (a label for the code) — followed by the fields that type needs, plus an optional folder to file it under. Dynamic types also accept an optional password to lock the redirect. The downloadable template and the in-browser table always show exactly which columns a given type expects.

Two types are still created one at a time in the regular QR builder rather than in bulk: vCards and file codes.

Static vs dynamic codes

The 15 types fall into two groups, and the difference matters for what you can do with a code after it's printed.

  • Dynamic codes — URL, Google Form, the social profiles, and App Stores. These store a short QRKIT redirect link, so you can change the destination later, see scan analytics, and add password protection. Editing one never means reprinting it — as long as your workspace stays active.
  • Static codes— WiFi, Email, SMS, Text, and Calendar Event. These encode the content directly into the QR (the network details, the message, the event, and so on). They work entirely offline and don't depend on QRKIT once printed — but for the same reason they can't be edited or tracked afterwards, and they don't support password protection.

A handy rule of thumb: choose a dynamic type when the destination might change or you care about scan analytics; choose a static type when the content is fixed and you want it to keep working no matter what.

Design templates

Picking a design template is optional, but it's the difference between a batch of plain black-and-white codes and a batch that looks like it was designed for your brand. The selector shows three groups:

  • None— default styling. Useful when you just need scannable codes and the look doesn't matter.
  • Your Templates— designs you've previously saved in QRKIT, with your colours, logo, and frame.
  • Available Templates — a curated set of ready-made looks built into QRKIT.

No saved template yet? Click Create New Template to design one in the same dialog the QR builder uses — colours, logo, frame, eye style, and dot pattern. Save it once and every future bulk upload can reuse it. Whatever you pick applies to every code in the batch.

Setting an expiration

Expiration is optional, and like a design template it's set once for the whole batch. Open the Expiration panel and turn on either kind of limit — or both:

  • Scan limit — every code stops working after a set number of scans. Optionally add a custom message scanners see once the limit is reached.
  • Expiry date & time— every code stops working at a specific moment, in the timezone you choose. Optionally add a custom “expired” message.

These are the same controls you'll find on an individual QR code's Expiration settings, applied across the batch in one step. You can always change or remove an expiry on any individual dynamic code later from your dashboard.

One thing to note: expiration only applies to dynamic codes, because they redirect through QRKIT and that redirect is what gets switched off. Static types in the same batch (WiFi, Email, SMS, Text, and Calendar Event) encode their content directly with no redirect to stop, so they're created without an expiry — even if a limit is set for the batch.

What each code includes

  • Folders organise themselves. Give a row a folder name and the code is filed there — QRKIT reuses a folder if it already exists, or creates it on the fly. A 200-row file with five folder names lands as five neatly sorted folders.
  • Password protection (dynamic only).Mark a dynamic row as protected and visitors are asked for your password before being redirected. It's a paid-plan feature, and it doesn't apply to static types, which have no redirect to protect.
  • Expiration (dynamic only).An optional batch-wide expiry — by date, by scan count, or both — switches off each dynamic code's redirect once it's reached. Static rows carry their content directly, so they're created without an expiry.
  • Templates apply to every code.Pick a design once and every row inherits the same brand colours, logo, frame, and styling. Codes created without a template fall back to QRKIT's default appearance.
  • Each code is independent. Dynamic rows each get their own short link, so analytics stay separate even when two rows point at the same destination; static rows each carry their own encoded content.

Downloads and label sheets

When the batch is ready, Download All bundles every successfully generated code for you. Two output styles are available:

  • Images in a ZIP — choose PNG, SVG, or PDF, and a size (512, 1024, 2048, or 4096 px). QRKIT packages every code into a single ZIP you can save and share.
  • Avery label sheets (PDF) — a print-ready, multi-up PDF laid out for common Avery label stock: Avery 5160 (30 per sheet), Avery 5163 (10 per sheet), and Avery 5164 (6 per sheet), all on US Letter paper. Print at 100% scale and the codes line up with the label cells.

After generation

When the batch finishes you get a completion screen and an email, and the page swaps from progress to a results card. From there you can:

  • Download All as a ZIP or an Avery label sheet, in the format and size you choose.
  • View All QR Codes in your dashboard. They appear alongside your other codes and inside any folders you specified, ready for individual edits, scans, or downloads.
  • See errors at a glance. Validation catches data problems up front, before anything is created; separately, the rare row that hits a snag during generation itself is listed here with its title and the underlying reason, so you can fix it and re-upload just that one.
  • Open a previous batch from the Past Batchesbutton. Every batch you've created stays around with its status and count, and you can jump back in to re-download it.

Dynamic codes remain fully editable, so you can change a destination URL or design later without reprinting — a typo in row 47 isn't a printing disaster. Static codes, by design, carry their content directly and can't be changed once generated, so double-check those rows before you print.

Plan availability and limits

Bulk QR Codes is a paid feature on Plus, Pro, and Ultra workspaces. Free and Starter workspaces will see an upgrade prompt when they open the page.

A bulk upload counts against your workspace's overall QR-code quota. If you only have 20 QR-code slots left, QRKIT will accept a file with 20 rows or fewer — and it tells you exactly how many slots remain before generating anything. Plan to upgrade or clean up old codes if a batch would push you over. Password protection is likewise tied to plan: mark a dynamic row as protected on a plan that doesn't include it, and validation flags that row before generation.

Frequently asked questions

Can I upload an Excel file, or only CSV?

Both. QRKIT accepts .csv and .xlsx files directly — no need to convert Excel to CSV first. You can also paste rows in CSV format, or skip files entirely and fill a table in the browser.

Can I mix different QR types in one batch?

Yes. Every row names its own type, so a single batch can include URLs, App Stores codes, WiFi, Email, SMS, Text, and Calendar Events together. Download a template (or use the manual table) to see the columns each type expects.

How many QR codes can I create in one upload?

As many as your plan's remaining quota allows. There's no fixed per-batch tier — the limit is simply how many QR-code slots you have left in your workspace. Very large lists are processed in the background.

Can I edit or track a bulk-generated code later?

It depends on the type. Dynamic codes (URL, Google Form, social profiles, App Stores) are fully editable and trackable — change the destination, design, name, or folder any time, and the printed code keeps working. Staticcodes (WiFi, Email, SMS, Text, Calendar Event) encode their content directly, so they can't be edited or tracked after generation.

Can I make bulk codes expire?

Yes. Open the Expiration panel on the Bulk QR Codes page and set a scan limit, an expiry date and time, or both — it applies to every code in the batch. Expiration works on dynamic codes (the ones that redirect through QRKIT); statictypes like WiFi, Email, SMS, Text, and Calendar Event encode their content directly and are created without an expiry. You can adjust or remove the expiry on any individual dynamic code later. It's available on the same plans as Bulk QR Codes — Plus, Pro, and Ultra.

How long does generation take?

It depends on the batch size. Smaller batches are quick; larger batches take longer and keep processing in the background, so you don't have to wait around or keep the page open. We'll email you once it's done, and the progress page updates on its own.

What if some rows in my data are wrong?

QRKIT validates every row before it creates anything. If even one row has a problem — a missing field, a malformed link, or a feature your plan doesn't include — you get a View Errorsdialog telling you exactly which row, which field, and what was off. Nothing is generated until you've cleaned it up.

Can I print my codes on label sheets?

Yes. Choose the Label Sheet output and pick an Avery layout — 5160 (30 per sheet), 5163 (10 per sheet), or 5164 (6 per sheet). QRKIT returns a print-ready PDF for US Letter paper; print at 100% scale so the codes line up with the labels.

Can I re-download a batch later?

Yes. Open the Past Batches list from the Bulk QR Codes page, pick a batch to jump back into it, and use Download All to grab it again in any format and size — ZIP or label sheet.

Will my bulk codes appear in folders automatically?

Yes — give a row a folder name and the generated code is filed under that folder. Existing folders are reused, and any folder names QRKIT hasn't seen before are created for you when the batch runs.

Ready to generate codes in bulk?

Upload a file, paste your rows, or fill a table — pick a brand template, and let QRKIT generate every code in the background, ready to download as images or a print-ready label sheet.