A spreadsheet in, a folder of styled codes out. Download the template for your type, fill it in, upload it back — all in your browser.
Your spreadsheet is read and rendered on this device. Nothing in it is uploaded.
Upload a CSV or paste rows straight from a spreadsheet. The file is parsed in your browser, every row is validated before anything is generated — with errors reported by row and column — and the valid rows are rendered one by one into styled QR codes using exactly the same engine as the single generator, so a bulk code and a single code with the same settings are identical.
Generation runs as a queue that yields between files, which keeps the page responsive even on a modest laptop. The finished codes are packed into a ZIP in memory and handed to you as one download. SVG is the default because a styled vector code is a few kilobytes where the equivalent PNG can be half a megabyte.
The 50-row cap is a browser-memory limit, not a licence tier: everything happens on your machine, so the ceiling is what a single tab can comfortably hold.
Up to 50 rows per file. Everything is rendered in your browser, so the limit exists to keep phones responsive rather than to sell a larger plan.
Download the template for the content type you need. It has the exact headers, an example row and the rules written in as comments, so the columns are right before you upload.
Yes. There are templates for 14 types including WiFi, vCard contacts, calendar events, email, SMS, WhatsApp, location and payments, each with the fields that type needs.
No. The file is read in your browser and the codes are drawn there too. Nothing in your data reaches a server at any point.
They are reported by row and column before generating, and listed again in an errors.csv inside the ZIP, so a large job never fails silently.
No — one logo applies to the whole batch. Per-row logos would mean fetching images per row, and this page deliberately makes no network requests with your data. If a handful of codes need different logos, generate them individually in the single generator, which accepts the same styling.