QR Code Scanner
Scan QR codes from your camera or an uploaded image. Decodes URLs, Wi-Fi credentials, contact cards, and plain text.
Point your camera at a QR code
Read QR codes using your device camera or by uploading a photo. The decoder runs entirely in your browser with no server involved. URL results open as safe clickable links; all other content is shown as plain text with a one-click copy button. Works on desktop and mobile.
QR codes store data as a 2D grid of black-and-white squares that any camera can decode in milliseconds. The same format carries URLs, plain text, Wi-Fi credentials, vCard contacts, and more. Decoding reverses that process: the scanner reads the pixel grid, identifies the finder patterns in three corners, corrects for perspective distortion, and runs Reed-Solomon error correction to recover the original bytes even if up to 30% of the code is damaged or obscured.
This tool uses jsQR, a pure-JavaScript QR decoder that requires no server round-trip and no installation. For live scanning, it captures frames from your camera at up to 60 times per second and checks each one. On mobile devices it prefers the rear camera, which is typically higher resolution and better suited to scanning printed codes. On desktop, any connected camera works.
Image upload is useful when you have a screenshot, a PDF export, or a photo taken separately. The decoder tries both normal and inverted color so it catches codes on dark backgrounds. If detection fails, try cropping the image closer to the QR code or increasing the image resolution before uploading.
- 1
Choose camera or image upload
Switch to Camera tab and grant browser permission to use your webcam or phone camera, or switch to Upload to select an existing photo.
- 2
Point at the QR code
For camera mode, hold the code steady in the frame. The scanner checks every frame automatically and stops as soon as it gets a clean read.
- 3
Copy or open the result
The decoded text appears below. If it is a URL, it renders as a clickable link. Use the Copy button to paste the value anywhere.
Decode a screenshot QR code
Upload a saved screenshot from a chat or email to extract the embedded URL or text without using a phone.
Check what a printed code contains
Scan a QR on a poster, receipt, or packaging to see the exact encoded value before visiting a link.
Extract Wi-Fi credentials
Decode a Wi-Fi QR code to read the SSID and password as plain text, useful when setting up a new device.
Verify a generated QR code
After creating a QR code, scan it here to confirm the payload matches what you intended before printing or publishing.
Is my camera feed or image uploaded to a server?
No. All decoding happens in your browser using JavaScript. Camera frames are processed locally and discarded immediately. Uploaded images never leave your device.
Why does the browser ask for camera permission?
Browsers require explicit user permission before any page can access the camera. The permission prompt is from your browser, not this site. You can deny it and use the Upload tab instead.
What types of QR codes are supported?
Any standard QR code: URLs, plain text, Wi-Fi (WPA/WPA2), vCard contacts, phone numbers, email addresses, and raw binary data. The decoder does not currently support other 2D barcode formats like Data Matrix or Aztec.
Why does the camera mode not work on my device?
Camera access via getUserMedia requires HTTPS or localhost. On older browsers or non-standard builds, the API may be missing. If permission is denied, your browser settings need to be updated to allow camera access for this site.
What should I do if a QR code is not detected from an image?
Crop the image so the QR code fills most of the frame, make sure it is not blurry or heavily compressed, and try a higher-resolution source. Codes with very high error correction (H level) that are partially obscured may still decode successfully.