Drag and drop, paste from clipboard,
or use the button below.
QR Code Reader
Scan QR codes with your camera or from images, directly in your browser.
QR scanning could not load in this browser. Please refresh the page to try again.
Decoded QR Code
How it works
This QR code reader uses the browser's built-in BarcodeDetector API when available and falls back to a bundled JavaScript decoder, so it works across modern browsers including Firefox. Upload an image or use your device camera to scan QR codes in real time. On mobile, the rear camera is used automatically. If the decoded value is a URL, it is shown as a clickable link.
Your images and camera feed are never sent to a server. All detection and decoding happens locally in your browser. It works on Chrome, Edge, Firefox, and Safari on both mobile and desktop. No cost, no signup, no tracking.
Frequently asked questions
Can it read more than one QR code in a single image?
No. It returns the first QR code it detects and stops, so an image containing several codes will only show one result. Crop the image or upload the codes one at a time to read each of them.
Why is my scanned value shown as plain text instead of a clickable link?
Only values that are valid http or https URLs are turned into a clickable link. Other content such as plain text, Wi-Fi credentials, phone numbers, or vCard contact data is shown as text you can copy, since it is not a web address.
What image types and codes are supported?
Any still image your browser can display works, including PNG, JPEG, WebP, and GIF, via drag and drop, file picker, or clipboard paste. It reads QR codes only. For EAN, UPC, Code 128, and other 1D barcodes, use the Barcode Reader instead.
Does it work in Firefox or on a device without a camera?
Yes. It uses the browser's built-in BarcodeDetector where available and falls back to a bundled JavaScript decoder, so browsers like Firefox still work. If there is no camera, use the upload, paste, or drag and drop options to read a code from an image.
More tools from Clean.tools
Use Clean.tools from your AI agent
Clean.tools also runs an MCP server — read-only utility tools your AI agent can call directly. No key, no signup: requests are processed in memory and request contents are never stored.
claude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcpclaude mcp add --scope user --transport http clean-tools https://mcp.clean.tools/mcphttps://mcp.clean.tools/mcphttps://mcp.clean.tools/mcpEvery tool, the REST API, and setup for Cursor, Claude Desktop, VS Code & more →