Skip to main content

100% Private

No Signup

Free Forever

One of 64 free AI tools by Mahmoud Zalt.

Free QR & Barcode Scanner

Scan QR & barcodes in-browser|
4.8 (1,207)

A free, private QR code and barcode scanner that runs entirely in your browser. It is built on html5-qrcode, a lightweight and cross-platform QR Code and Bar code scanning library for the web, so the same decoding engine used inside thousands of production apps powers this page. Use your phone or laptop camera for live scanning, or drop in a saved screenshot or photo to decode it instantly. The tool recognizes QR codes plus a wide range of 1D and 2D barcode formats including AZTEC, CODE_39, CODE_93, CODE_128, ITF, EAN_13, EAN_8, PDF_417, UPC_A, UPC_E, DATA_MATRIX, MAXICODE, RSS_14, and RSS_EXPANDED. It automatically detects when a result is a link and renders it as a clickable URL, and it keeps a running history of everything you scan so you can copy each value with one click. No images are uploaded, no accounts are required, and nothing is logged. The camera feed and decoding both happen on your device.

Free and provided as is, without warranty. Use at your own risk. Terms

Scan QR codes and barcodes without an app, powered by html5-qrcode

This scanner turns any device with a camera or a saved image into a QR code and barcode reader, right inside your browser. It is built on html5-qrcode by mebjas, described by its authors as a lightweight and cross-platform QR Code and Bar code scanning library for the web. That means there is nothing to install and no account to create: open the page, choose camera or image mode, and start decoding.

Camera mode is ideal for printed codes on posters, menus, packaging, and business cards, and it mirrors the live camera scan mode of the library. Image mode handles QR codes you already have as screenshots or photos, decoding them with the file-based scan mode so you can read a code someone sent you without pointing a second phone at your screen.

Every barcode format html5-qrcode supports

Beyond QR codes, the underlying html5-qrcode engine decodes a broad set of 1D and 2D symbologies: AZTEC, CODE_39, CODE_93, CODE_128, ITF, EAN_13, EAN_8, PDF_417, UPC_A, UPC_E, DATA_MATRIX, MAXICODE, RSS_14, and RSS_EXPANDED. In practice that covers retail and grocery products (EAN_13, EAN_8, UPC_A, UPC_E), inventory and shipping labels (CODE_128, ITF), boarding passes and ID documents (PDF_417, AZTEC), and dense 2D codes used in manufacturing and logistics (DATA_MATRIX, MAXICODE).

QR codes remain the most forgiving to scan thanks to their error correction and finder patterns. One-dimensional retail barcodes are narrower and benefit from a steady hand, even lighting, and getting the full code inside the frame. If a 1D code will not read from the camera, capturing a clear, high-contrast photo and using image mode often succeeds.

Private by design: nothing leaves your browser

Unlike many online scanners that upload your image to a server, this tool decodes everything locally using the open-source html5-qrcode library, which is released under the Apache License 2.0. Your camera frames and uploaded files never leave your device, and no decoded values are logged or stored remotely. You can verify this at any time by opening the Network tab in your browser DevTools while scanning and watching that no frames or images are sent.

That makes it safe for scanning sensitive codes such as Wi-Fi credentials, event tickets, or internal links. When a result is a web address, it is shown as a clickable link with noopener and noreferrer protection so you can review the full URL and open it confidently. Every decoded value is one tap from your clipboard, and a running history keeps your recent scans together for the current session before clearing on reload.

Where this scanner earns its keep beyond a phone camera app

Warehouse and small-retail staff scan a run of product barcodes at a desk using a laptop webcam, keeping a running, copyable history of everything scanned in a session instead of relying on a phone's single-scan camera app. Event check-in volunteers scan ticket QR codes from a shared laptop or tablet station where installing a native app on every device is not practical, using image mode when a guest shows a code as a screenshot rather than the physical ticket.

It is also a fast way to recover a code you already have saved: a QR code emailed as an attachment, a screenshot of a Wi-Fi join code someone sent you, or a barcode photo pulled from an old message, all decode instantly in image mode without needing to display the code on a second screen and point a camera at it.

Why seeing the URL before opening it matters

"Quishing," QR code phishing, has become a real attack vector precisely because a QR code hides its destination until something scans it: a scammer swaps the QR sticker on a parking meter or a restaurant table with one pointing to a lookalike payment page, and a phone's camera often opens the link with a single tap before the user has really looked at where it goes. Because this tool decodes the code and shows the full URL as text before you click anything, you get a genuine chance to check the domain looks right instead of trusting a one-tap camera shortcut.

This matters most for codes in public, physical spaces, stickers on posters, tables, and parking signs, where anyone can print and paste a replacement QR code over the original. A code from a source you trust, printed on your own material or sent by someone you know, carries far less risk, but the habit of reading the URL before opening it costs nothing and catches the cases that do matter.

This vs your phone's built-in camera scanner

Modern phone camera apps decode QR codes automatically and are genuinely convenient for a single, quick scan of a code right in front of you, there is no reason to reach for a separate tool for that case. This browser scanner is the better choice specifically when you are on a laptop or desktop without a convenient way to point a phone at a screen, when you need to decode a saved image rather than a physical code, when you want a running history across many scans in one session, or when you specifically want to see the raw decoded URL as plain text before deciding whether to open it.

It also covers a broader set of barcode symbologies (EAN, UPC, CODE_128, PDF_417, DATA_MATRIX, and more) than a typical phone camera app bothers to support, which matters for retail, logistics, and document codes beyond the QR codes most consumer scanning apps are optimized for.

How It Works

1

Choose a mode: scan live with your camera, or upload a saved photo or screenshot of a code.

2

Grant camera permission and point at the code, or drag in an image to decode it instantly.

3

Read the decoded text, open detected links directly, and copy any result from the scan history.

Need expert help with AI?

Looking for a specialist to help integrate, optimize, or consult on AI systems? Book a one-on-one technical consultation with an experienced AI consultant to get tailored advice.

Key Features

Powered by html5-qrcode by mebjas, a lightweight and cross-platform QR Code and Bar code scanning library for the web used in thousands of production applications
Runs entirely in your browser using the same JavaScript decoding engine html5-qrcode exposes through its Html5Qrcode and Html5QrcodeScanner APIs, with no server-side processing
Live camera scanning with start and stop controls and an environment-facing rear camera by default, the standard camera scan mode of the library
Image file scanning by click-to-upload or drag and drop, decoded locally just like the library file-based scan mode, with no upload
Decodes QR codes plus 1D and 2D formats supported by html5-qrcode: AZTEC, CODE_39, CODE_93, CODE_128, ITF, EAN_13, EAN_8, PDF_417, UPC_A, UPC_E, DATA_MATRIX, MAXICODE, RSS_14, and RSS_EXPANDED
Cross-platform by design: works on Android, iOS, macOS, Windows, and Linux across Chrome, Firefox, Safari, Edge, and Opera, matching the library compatibility matrix
Automatic URL detection that renders safe http and https links as clickable, with noopener and noreferrer protection
One-click copy to clipboard for every decoded value, plus a running scan history that deduplicates repeats and timestamps each result
Open-source and free to inspect: html5-qrcode is released under the Apache License 2.0

Privacy & Trust

All scanning happens in your browser: camera frames and uploaded images are never sent to any server
No images, decoded values, or metadata are stored remotely, logged, or transmitted
No account, signup, or API key is required to use the scanner
Built on the open-source html5-qrcode library by mebjas (Apache License 2.0), so the decoding logic is fully auditable
Verify privacy by checking the Network tab in your browser DevTools while scanning: you will see no upload of your camera frames or images

Use Cases

1Open a QR code from a poster, menu, business card, or screenshot without a separate phone app
2Decode Wi-Fi join codes, contact cards (vCard), and event tickets shared as QR images
3Read a retail product barcode such as EAN_13, UPC_A, or CODE_128 to look up or log an item later
4Recover the link or text behind a QR code saved in your camera roll or downloads folder
5Verify what a QR code actually points to before visiting it, reviewing the full URL first
6Scan many codes in a row at a desk or warehouse station while keeping a copyable, timestamped history

Limitations

  • Live camera scanning requires camera permission and a secure context (https or localhost), the same requirement the html5-qrcode camera API has for getUserMedia
  • Some 1D retail barcodes can be harder to read than QR codes and may need a clear, well-lit, high-contrast, properly framed image
  • Decode accuracy depends on your camera quality, focus, lighting, and how much the code is rotated, skewed, or blurred
  • Scan history lives only in the current page session and is cleared when you reload or close the tab

Frequently Asked Questions

Is this QR and barcode scanner free?

Yes, it is completely free with no usage limits. You can scan as many QR codes and barcodes as you like, from your camera or from images, without paying, signing up, or installing anything. It is built on html5-qrcode, an open-source library released under the Apache License 2.0, so both the tool and its decoding engine are free to use and free to inspect.

Is my camera feed or uploaded image sent to a server?

No. Both live camera scanning and image file scanning are processed entirely on your device inside the browser, using the html5-qrcode JavaScript engine. No frames, photos, or decoded results are uploaded, stored remotely, or logged. You can confirm this yourself by opening the Network tab in your browser DevTools while scanning: you will see no requests carrying your camera frames or image.

Do I need to install an app or extension?

No. There is nothing to install. The scanner is a single web page that loads the html5-qrcode library and runs in any modern browser. Because the library is cross-platform, the same page works on Android, iOS, macOS, Windows, and Linux across Chrome, Firefox, Safari, Edge, and Opera. Just open the page and start scanning.

Why does the camera not start?

Live scanning needs two things that html5-qrcode requires to access your camera: permission to use the camera, and a secure connection (https or localhost). If you denied the permission prompt, re-enable camera access for this site in your browser settings and press Start again. On a device with no camera, switch to the image file tab and upload a photo or screenshot of the code instead.

What kinds of codes and barcodes can it read?

It reads QR codes and the 1D and 2D barcode formats supported by html5-qrcode, including AZTEC, CODE_39, CODE_93, CODE_128, ITF, EAN_13, EAN_8, PDF_417, UPC_A, UPC_E, DATA_MATRIX, MAXICODE, RSS_14, and RSS_EXPANDED. That covers the common retail and product barcodes (EAN and UPC), shipping and logistics codes, and document codes like PDF_417. QR codes are the most reliable to scan; small or low-contrast 1D barcodes may need a clearer, well-framed image.

How do I scan a QR code that is already saved as an image?

Switch to the image file tab, then click the upload area or drag your photo or screenshot onto it. The tool decodes the image locally using the file-based scan mode of html5-qrcode and shows the result, with no upload. This is the easiest way to read a QR code you received in a message, a PDF, or an email without pointing a second phone at your screen.

Does it work on my phone and offline?

Yes on phones. html5-qrcode is cross-platform, so on a phone the camera mode uses the rear (environment-facing) camera by default, which is ideal for pointing at printed codes, and the layout is responsive. As for offline: the decoding itself runs locally, but the page and the library need to load first, so you need a connection for the initial load. Once loaded, scanning a saved image does not require any further network access.

Q&A SESSION

Got a quick technical question?

Skip the back-and-forth. Get a direct answer from an experienced engineer.