Get More Than Just the Content — Understand the Full QR Code Structure
You have a QR code image, but you need more than just the content. You need to know how it was built — what encoding mode was used, what error correction level, what version. You need to see the raw data, not just the human-readable version. That's what deep QR code decoding gives you.
A basic QR Code Scanner tells you what's in a QR code — the URL, the text, the contact info. That's great for everyday use. But sometimes you need to understand how the QR code works. Is it using the right encoding mode? Is the error correction level appropriate for where it'll be printed? Does the raw byte data match what you expect, or are there hidden segments you didn't know about? The QR Code Decoder at QREndlessPro answers all of these questions. It's not just a scanner — it's a technical analysis tool that gives you full insight into a QR code's internal structure.
What the Decoder Reveals
Encoded Data (Content)
The primary output — the actual data encoded in the QR code. The Decoder extracts this with full fidelity, including:
- Raw text content
- URLs with full path and parameters
- vCard fields (name, phone, email, address, organization, etc.)
- Wi-Fi credentials (SSID, password, encryption type)
- Payment details (UPI ID, amount, merchant name)
- Calendar event information
- Binary data (for byte-mode encoded content)
Unlike a basic scanner, the Decoder shows the raw, unprocessed data alongside the formatted interpretation. This lets you see exactly what was encoded, not just the human-friendly version.
Encoding Mode
QR codes use one of four encoding modes (or a combination):
- Numeric (0-9): Most efficient for numbers — 3.33 bits per digit
- Alphanumeric (0-9, A-Z, space, $%*+-./:): 5.5 bits per character
- Byte (binary): Handles any 8-bit data including URLs, UTF-8 text — 8 bits per byte
- Kanji (Shift JIS): Japanese characters — 13 bits per character
The Decoder identifies which mode(s) were used and explains why. This is valuable for debugging — if your URL was encoded in Kanji mode (wrong), the QR code would be unnecessarily large and potentially fail on some scanners. Learn more about encoding in our QR code fundamentals guide.
QR Code Version
QR code versions range from 1 (21×21 modules) to 40 (177×177 modules). Each version adds 4 modules per side. The Decoder tells you exactly which version your QR code is, which determines its data capacity and physical size. This helps you understand why a particular QR code is larger than expected — more data requires a higher version.
Error Correction Level
The Decoder reveals the exact error correction level (L, M, Q, or H) used in the QR code. This is critical for:
- Verifying that a logo-embedded QR code actually uses Level H (if it doesn't, the logo may be covering essential data modules)
- Understanding why a damaged QR code still scans (or doesn't — the error correction level tells you the theoretical damage tolerance)
- Auditing QR codes intended for harsh environments — confirming they're using adequate error correction
For a deeper dive into how error correction works, read our guide on QR code error correction.
Module Structure
The Decoder provides a visual breakdown of the QR code's module allocation:
- Total module count (width × height)
- Data modules (actual encoded content)
- Error correction modules (redundant data for recovery)
- Function pattern modules (finder patterns, timing patterns, alignment patterns)
- Format and version information modules
This structural analysis helps you understand how much of the QR code is "real data" vs. "support infrastructure" — useful for optimizing QR code size and density.
Raw Byte Data
For advanced users, the Decoder can show the raw byte stream — the actual binary data as encoded in the QR code before interpretation. This is essential for:
- Security auditing — checking for hidden or unexpected data segments
- Debugging encoding issues — comparing expected vs. actual byte sequences
- Verifying data integrity — confirming no data was lost or corrupted during encoding
- Research and development — understanding the QR code specification in practice
9 Output Formats: Data in Any Format You Need
Decoded data is only useful if you can actually use it in your workflow. The QR Code Decoder supports 9 output formats, so you can extract QR code data in exactly the format your project requires:
1. Raw
The plain decoded text — exactly as encoded in the QR code, with no formatting or processing. This is the most direct representation of the QR code's content. Use it when you need the unmodified data for manual inspection or pasting into another tool.
2. JSON
Structured JSON output with parsed fields. If the QR code contains a vCard, you get a JSON object with name, phone, email, etc. as separate keys. If it's a Wi-Fi code, you get SSID, password, and encryption type as JSON properties. This format is ideal for programmatic processing — APIs, scripts, databases, and automation pipelines.
3. SVG
Outputs the decoded QR code as an SVG vector graphic. This is useful for re-encoding the QR code at any resolution without quality loss. You can take the SVG output and further customize it with the QR Code Customizer for branding and visual styling.
4. HTML
Formatted HTML output — the decoded data presented as a styled, semantic HTML snippet. vCards render as contact cards, URLs as clickable links, Wi-Fi credentials as formatted blocks. Use this when you need to embed the decoded content directly into a web page or email template.
5. Base64
The decoded data encoded as a Base64 string. This format is useful when you need to transmit QR code data through systems that only support text-safe characters — APIs, URL parameters, email headers, or data URIs. Also useful for embedding decoded content in configuration files.
6. CSS
CSS custom properties output — the decoded data structured as CSS variables. This is useful for designers and developers who want to use QR code data as design tokens in a stylesheet. For example, decoded color values, dimensions, or content strings can be directly referenced as CSS variables.
7. Markdown
The decoded data formatted as Markdown — headers, lists, code blocks, and links in standard Markdown syntax. Use this when you need to document decoded QR code content in README files, wiki pages, issue trackers, or any Markdown-based platform.
8. Python
A Python dictionary or dataclass representation of the decoded data. This format is ready to paste directly into a Python script or notebook. Useful for developers building QR code processing pipelines, data analysis workflows, or automated testing scripts.
9. JavaScript
A JavaScript object or TypeScript interface representation of the decoded data. Ready to paste into your codebase — React components, Node.js scripts, or browser extensions. This format bridges the gap between decoding and development, letting you use QR code data directly in your JavaScript projects.
1D Barcode Decoding Support
The Decoder isn't limited to QR codes. It also decodes a wide range of 1D barcodes — the traditional linear barcodes found on products, shipping labels, and identification cards:
- EAN-13 / EAN-8: International retail product barcodes — the numbers you see below every product barcode at the grocery store
- UPC-A / UPC-E: North American retail barcode standard
- Code 128: High-density barcode used in shipping, packaging, and supply chain management
- Code 39: Widely used in automotive, defense, and healthcare industries
- ITF (Interleaved 2 of 5): Common on shipping cartons and warehouse labels
- Codabar: Used in libraries, blood banks, and FedEx shipping
When you decode a 1D barcode, the Decoder provides the same technical analysis — encoding format, data content, and structural information. This makes it a comprehensive QR code data extractor and barcode analysis tool in one. For quick scanning of 1D barcodes, use the Scanner; for deep technical analysis, use the Decoder.
How to Debug a Broken QR Code
A QR code that won't scan is frustrating — especially when you've already printed it or distributed it. The Decoder is your first diagnostic tool. Here's a systematic approach to debugging a broken QR code:
- Decode the QR code: Upload the image to the Decoder. If it successfully decodes, the content is intact — the issue is likely with scanning (size, print quality, lighting). If it fails to decode, the code may be too damaged or corrupted.
- Check the error correction level: The Decoder shows whether the QR code uses Level L (7% recovery), M (15%), Q (25%), or H (30%). If the code is damaged and the error correction level is too low, the damage may exceed recovery capacity. Solution: re-generate with the Generator at a higher error correction level.
- Verify the encoding mode: If the Decoder shows a suboptimal encoding mode (e.g., a URL encoded in Kanji mode instead of Byte mode), the QR code is unnecessarily dense and more prone to scanning failures. Re-generate with the Generator for optimal encoding.
- Check the QR version: Higher versions (larger module grids) are harder to scan from print, especially at small sizes. If the version is higher than expected, the data might be larger than necessary, or the encoding is suboptimal. Try reducing the data or using the Generator to produce a more compact code.
- Examine the raw data: Compare the raw byte output with your expected input. If there are extra characters, truncation, or encoding artifacts, the QR code was generated incorrectly. Re-generate with the correct data.
- Enhance the image: If the QR code image is blurry, low-resolution, or has poor contrast, use the QR Code Enhancer to sharpen and upscale the image before decoding. Better image quality often makes the difference between a successful and failed decode.
- Validate customized codes: If the QR code was customized with the Customizer, decode it to verify that the logo overlay or color changes haven't corrupted the data. Check that error correction was upgraded to Level H when a logo was added.
This diagnostic workflow catches the vast majority of QR code issues. For more on the underlying mechanisms, read our guide on QR code error correction.
Security Auditing with the Decoder
QR codes are increasingly used for sensitive applications — payments, authentication, access control, and identity verification. When you deploy a QR code that handles sensitive data, you need to be certain about what's actually encoded in it. The Decoder provides the transparency you need for security auditing.
What to Audit
- URL structure: Decode the QR code and verify the URL points to the correct domain, uses HTTPS, and has no unexpected parameters. A payment QR code should point to your payment gateway, not a look-alike domain.
- Hidden data segments: Examine the raw byte data for any segments that aren't visible in the formatted output. Some QR codes encode tracking pixels, analytics parameters, or redirect chains that aren't immediately obvious.
- Data integrity: Compare the decoded data byte-by-byte with your intended input. Even a single character difference — a wrong digit in a payment amount, a missing slash in a URL — can cause serious problems.
- Encoding parameters: Verify that the error correction level is appropriate for the deployment environment. A QR code on a printed receipt (Level M) needs different error correction than one on a billboard exposed to weather (Level H).
- Third-party QR codes: Before distributing QR codes generated by third-party tools, decode them to verify they contain exactly what was promised. Some QR code generators embed tracking URLs, analytics parameters, or redirect chains that you might not want.
How to Audit
- Decode the QR code with the Decoder to get the full technical breakdown.
- Scan the QR code with the Scanner for a quick security check — URL validation, PII masking, and XSS protection.
- Compare decoded data with your intended input, byte-by-byte, using the raw output format.
- Export the data in JSON format for automated comparison or logging.
- Re-generate if needed using the Generator with verified, correct data.
For a deeper understanding of QR code security risks, read our guide on QR code security.
Use Cases for Deep Decoding
Debugging QR Code Generation
Generated a QR code with the Free QR Code Generator that's not working as expected? Decode it to verify: (1) The encoding mode matches your data type. (2) The error correction level is what you selected. (3) The QR version isn't unnecessarily high (which would make the code larger). (4) The raw data matches your input exactly.
Quality Assurance for Print
Before mass-printing QR codes, decode a sample to verify: (1) Error correction level is adequate for the printing conditions. (2) QR version isn't too high (higher versions = denser codes = harder to scan from print). (3) The data is correctly encoded with no truncation or corruption. This QA step prevents costly print errors.
Reverse Engineering Unknown QR Codes
Encountered a QR code you don't understand? The Decoder reveals its complete structure — data type, encoding parameters, and content. This helps you identify what type of QR code it is, what system generated it, and whether you can reproduce or modify it with the Generator or Converter.
Comparing QR Code Generators
Wondering if different QR code generators produce different results for the same data? Generate a QR code with QREndlessPro's Generator and one with another tool, then decode both with the Decoder. Compare encoding modes, versions, error correction levels, and module structures. You'll likely find that QREndlessPro uses optimal encoding (smallest version for the data) while other tools may over-version or use suboptimal encoding modes.
Validating Customized QR Codes
After customizing a QR code with the QR Code Customizer, decode the result to verify that: (1) The underlying data is intact — customization shouldn't alter encoded content. (2) Error correction was properly upgraded to Level H when a logo was added. (3) The module structure accounts for the logo overlay correctly.
Developer Integration
Need to extract QR code data for use in your application? The Decoder's 9 output formats make integration seamless. Export decoded data as JSON for your API, Python for your data pipeline, JavaScript for your web app, or Base64 for your configuration system. No manual data entry or format conversion needed.
How to Use the Decoder
- Upload your QR code image: PNG, JPG, SVG, WEBP, or BMP format. The Decoder processes it entirely in your browser.
- Review the decoded content: The formatted interpretation shows the human-readable data — URLs, contact info, Wi-Fi details, etc.
- Analyze the technical details: Encoding mode, version, error correction level, module count, and structural breakdown.
- Examine raw data (optional): Toggle to see the raw byte stream for byte-level analysis.
- Choose your output format: Select from 9 output formats — Raw, JSON, SVG, HTML, Base64, CSS, Markdown, Python, or JavaScript — to get the data in the format your workflow needs.
- Take action: Copy the decoded data, re-generate a QR code with the Generator, convert the data type with the Converter, or verify the code with the Scanner.
When to Use vs. Related Tools
- Quick scan to see QR code content? Use the QR Code Scanner — it's faster for everyday scanning with camera detection.
- Deep technical analysis? Use the Decoder — it provides encoding details, version info, 9 output formats, and raw data that the Scanner doesn't show.
- Need to re-generate a decoded QR code? Use the Free QR Code Generator with the decoded data.
- Need to change the decoded data's QR type? Use the QR Code Converter to transform the data format.
- Need to brand the decoded QR code? Take the decoded data to the Customizer for visual styling.
- Need to improve a blurry QR code image? Use the QR Code Enhancer before decoding.
Use both the Scanner and Decoder together for maximum insight. The Scanner gives you "what," the Decoder gives you "how." Together, you have complete understanding of any QR code. For more on how QR codes work under the hood, see our fundamentals guide.
Frequently Asked Questions
What's the difference between the Decoder and the Scanner?
The Scanner is optimized for quick, everyday scanning — point your camera, get the content. It focuses on usability and security checks. The Decoder is optimized for technical analysis — it reveals encoding mode, version, error correction, module structure, raw bytes, and offers 9 output formats. Use the Scanner for "what's in this QR code?" and the Decoder for "how was this QR code built?"
What are the 9 output formats?
The Decoder can output decoded data in: Raw (plain text), JSON (structured key-value pairs), SVG (vector graphic), HTML (formatted web snippet), Base64 (encoded string), CSS (custom properties), Markdown (documented format), Python (dictionary or dataclass), and JavaScript (object or interface). Each format is designed for a specific use case — from manual inspection to programmatic integration.
Can the Decoder decode 1D barcodes?
Yes. The Decoder supports 1D barcodes including EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, ITF, and Codabar. When you decode a 1D barcode, you get the same technical analysis — encoding format, data content, and structural information. For quick scanning of 1D barcodes, use the Scanner; for deep analysis, use the Decoder.
Can the Decoder read damaged QR codes?
Yes, to the extent supported by the QR code's error correction level. A Level H QR code can be decoded even with 30% damage. The Decoder also shows the error correction level, so you can assess whether damage exceeds the recovery capacity. For heavily damaged codes, try the QR Code Enhancer to improve image quality before decoding.
What image formats does the Decoder accept?
PNG, JPG/JPEG, SVG, WEBP, and BMP. All processing happens in your browser — the image is never uploaded to any server. SVG format is especially useful for decoding QR codes intended for print, as it preserves the exact module structure without rasterization artifacts.
Can I decode a QR code and then re-generate it?
Absolutely. Decode the QR code to extract its data, then use the Free QR Code Generator to create a new QR code with the same data. You can even change the error correction level, encoding parameters, or QR type during re-generation. This is useful for upgrading error correction, reducing QR code size, or fixing encoding issues.
Does the Decoder show the raw byte data?
Yes. The Raw output format shows the byte-level content — the actual binary stream encoded in the QR code. This is displayed as hexadecimal and ASCII representations. Useful for security auditing, debugging encoding issues, and verifying data integrity at the byte level.
Is decoded data stored on any server?
No. All decoding and analysis happens in your browser. Your uploaded images and decoded data are never sent to any server. QREndlessPro has zero server-side processing. This is especially important for the Decoder, since it reveals complete QR code content including potentially sensitive data.
How accurate is the encoding mode detection?
100% accurate for standard QR codes. The encoding mode is explicitly encoded in the QR code's format information — it's not inferred or guessed. The Decoder reads this directly from the QR code structure. For mixed-mode QR codes (using multiple encoding modes in sequence), it identifies each segment and its corresponding mode.
Can the Decoder identify the QR code generator used?
Not directly — QR codes don't encode metadata about which generator created them. However, by analyzing the encoding choices (version selection, error correction level, encoding mode optimization), you can often infer the generator's quality. QREndlessPro-generated codes use optimal version selection (smallest version for the data) and appropriate encoding modes. Poorly optimized codes may use unnecessarily high versions or suboptimal encoding.
What should I do if the Decoder finds encoding issues?
Re-generate the QR code with QREndlessPro's Generator using the decoded data. Our Generator uses optimal encoding — smallest version, appropriate mode, and your chosen error correction level. If the original QR code was generated by a suboptimal tool, re-generating with QREndlessPro will typically produce a smaller, more efficient, and more reliably scannable QR code.



