All QR Codes
QR Code Generator
Links, Wi-Fi, contact cards and more, encoded and downloadable.
OpenBulk QR Code Generator
Paste a list and get a QR code for every row, named and zipped.
OpenQR Code Reader
Read a QR code from an image or camera and see the content before opening it.
OpenBarcode Generator
EAN-13, UPC-A and Code 128 with a proper check digit, downloadable as PNG.
OpenAbout these tools
Four tools for making and reading codes, covering the two things people actually need: turning information into a code, and finding out what a code contains before acting on it.
The generator handles thirteen content types — a website link, plain text, a Wi-Fi network, a contact card, an email, an SMS, a phone number, a WhatsApp message, a calendar event and a map location among them. Each type encodes a specific format that phone cameras recognise, which is why a Wi-Fi code joins a network automatically rather than just showing the password as text. The bulk generator does the same job for a list, producing a named PNG for every row and a ZIP of the lot.
The reader works the other way, and it exists for a reason worth stating: a QR code is unreadable to a human, so scanning one with a phone camera means trusting a link you cannot see. Reading the code here shows you the destination as text first, before anything opens.
Everything is encoded directly into the code itself. There is no redirect through this site, no scan tracking and no expiry — which means the codes keep working even if this site does not, but also that a printed code cannot be repointed later. For a poster or a business card, encode a URL you control rather than one you might want to change.
Nothing here needs an account, and nothing you put into any of them is uploaded or stored. Every tool is a single page that does one job, so you can bookmark the one you use and skip this page entirely next time.
Designing a code that actually scans
Most codes that fail to scan fail for one of three reasons, and all three are avoidable. The quiet zone is the first: the specification requires clear space around the code equal to four modules, and printing one hard against a border, a photograph or the edge of a card is the most common cause of a technically valid code that will not read.
Contrast is the second. Scanners look for dark modules on a light background, so a dark code on a light field works and the inverse frequently does not, however good it looks. The third is size. A rough guide is that a code should be at least a tenth of the distance it will be scanned from — a code read from two metres across a room needs to be around 20 cm across, and a business card code should not go below about 2 cm.
Error correction and logos
QR codes carry Reed–Solomon error correction at four levels, restoring roughly 7%, 15%, 25% and 30% of a damaged code. That redundancy is what allows a logo over the centre. Higher correction means a denser code for the same data, so the trade is between resilience and how much space each module gets — for a printed code that may get scuffed, or one carrying a logo, the higher levels are worth the density.
Keeping the encoded data short helps as much as anything. A long URL with tracking parameters produces a dense code that needs to be printed larger to remain scannable, so trimming the address before generating is often the simplest fix for a code that will not read at the size you have available.
Before you scan one
The reader here decodes to plain text so you can see where a code leads before following it. That matters because fraudulent codes placed over legitimate ones on parking meters, restaurant tables and payment terminals have become common, and the whole approach relies on people scanning and tapping in a single motion. Check the domain, be wary of shortened links that hide the destination, and treat any request for payment details after a scanned code with suspicion.