Drag and drop, paste from clipboard,
or use the button below.
Barcode Reader
Scan barcodes with your camera or from images, directly in your browser.
Barcode scanning could not load in this browser. Please refresh the page to try again.
Detected Barcodes
How it works
This barcode reader uses the browser's built-in BarcodeDetector API to read common formats including EAN-13, UPC-A, Code 128, Code 39, QR codes, Data Matrix, and more. On browsers without that API, such as Firefox and Safari, it falls back to a bundled JavaScript decoder for QR codes. Upload an image or use your device camera to scan in real time. On mobile, the rear camera is used automatically.
Your images and camera feed are never sent to a server. All detection and decoding happens locally in your browser on both mobile and desktop. No cost, no signup, no tracking.
Frequently asked questions
Which barcode formats can this tool read?
On browsers with built-in detection, such as Chrome and Edge on desktop and Chrome on Android, it reads EAN-13, EAN-8, UPC-A, UPC-E, Code 39, Code 93, Code 128, ITF, Codabar, Data Matrix, PDF417, Aztec, and QR codes. Firefox and Safari have no native detector, so they fall back to a bundled decoder that reads QR codes only.
Why does my image say no barcode was found?
Detection needs a reasonably sharp, well-lit code that is not too small or skewed in the frame. Blurry, angled, low-contrast, or heavily cropped barcodes often fail. Try a straighter, closer, higher-resolution image, or use camera mode to scan it live.
Can it read more than one barcode from a single image?
Yes. On browsers with native detection, every barcode found in the image is listed. The QR-only fallback used on Firefox and Safari returns a single code at a time.
Does my camera feed or image leave my device?
No. Uploaded images and the live camera stream are decoded entirely in your browser and are never uploaded or stored. Camera mode stops the stream as soon as a code is found or you press Stop Camera.
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 →