The short answer
Under the hood every QR code stores the same thing: a string of text. What makes one QR code open a website and another join a WiFi network is a standard text format the phone recognizes and turns into an action — open this link, connect to this network, add this contact, send this message, add this event. So “what can a QR code store” has two answers: the raw capacity of the grid (up to about 7,089 digits, 4,296 alphanumeric characters, or 2,953 bytes), and the set of recognized content types that turn that text into a one-tap action.
QRForge supports seven content types — URL, plain text, WiFi, vCard, SMS, email, and calendar event — and each stores a different kind of data and triggers a different scan action. This page lists all seven, what each one stores, how much it can hold, what scanning it does, and how to pick the right type. For a plain list of the types, see our qr types guide; for the full generate-to-export flow, see how to make a QR code; and for what each type lets you do, see what a QR code can do.
It’s all text under the hood
A QR code has no fields, no schemas, and no built-in idea of a “URL” or a “WiFi password”. It encodes a string of characters using one of four encoding modes — numeric, alphanumeric, byte, or kanji — and the phone’s scanner reads that string back. The magic is that phones ship with recognizers for a handful of standard text formats: a string that starts with http is offered as a link, a string that starts with WIFI: is offered as a network to join, a string that starts with BEGIN:VCARD is offered as a contact, and so on.
This is why a QR code is so flexible: anything you can write as text, you can print as a code. The recognized formats simply turn the text into a one-tap action instead of dumping raw characters on the screen. The seven types QRForge generates are the seven formats practically every modern phone understands.
The seven content types QRForge supports
URL: stores a web address (http or https) and scanning opens it in the browser — the most common type, used for menus, links, and marketing. Plain text: stores arbitrary characters and scanning shows them on screen — useful for short messages, codes, or instructions that need no action. WiFi (the WIFI: format): stores a network name (SSID), password, and encryption type, and scanning joins the network without typing the password — great for guests, cafés, and offices.
vCard (BEGIN:VCARD): stores a contact card — name, phone, email, organisation, address — and scanning adds it to the address book. SMS (SMSTO:): stores a phone number and optional pre-filled message, and scanning opens a text ready to send. Email (mailto:): stores a recipient address and optional subject/body, and scanning opens an email draft. Event (VEVENT): stores a calendar entry — title, start/end time, location, description — and scanning offers to add it to the calendar. The table below collects all seven with what each stores and the action it triggers.
Type, what it stores, and scan action at a glance
Here are the seven types side by side, with the data each one stores and the action the phone performs when you scan it. Treat the third column as the real outcome — the scan action is what the buyer is actually getting, not the raw text.
| Type | What it stores | Scan action |
|---|---|---|
| URL | A web address (http/https link). | Opens the page in the phone’s browser — the default for menus, ads, and links. |
| Plain text | Arbitrary characters (up to ~2,953 bytes). | Shows the text on screen — no action taken, the reader decides what to do. |
| WiFi (WIFI:) | Network name (SSID), password, encryption type. | Joins the wireless network without typing the password. |
| vCard (BEGIN:VCARD) | A contact card — name, phone, email, org, address. | Adds the contact to the phone’s address book. |
| SMS (SMSTO:) | A phone number and an optional pre-filled message. | Opens a text message ready to send to that number. |
| Email (mailto:) | A recipient address and optional subject/body. | Opens an email draft pre-addressed to the recipient. |
| Event (VEVENT) | A calendar entry — title, start/end, location, notes. | Offers to add the event to the phone’s calendar. |
How much each type can hold
Capacity is set by the QR grid, not by the content type. A version-40 code at error-correction level L holds up to 7,089 numeric digits, 4,296 alphanumeric characters, 2,953 bytes, or 1,817 kanji — the tighter the encoding mode, the more fits. A URL uses byte mode (one character per byte) so a long link eats capacity fast, which is why short links are recommended. Plain text in byte mode has the same ~2,953-byte ceiling. WiFi, vCard, SMS, email, and event payloads are all just formatted text, so the same byte limit applies to them — and in practice they are short enough that capacity is never the constraint.
The real limit people hit is scannability, not capacity: the more data you encode, the denser the grid, and a dense code printed small is hard to scan. So keep payloads short — shorten URLs, trim vCard fields, drop the body from an email QR if you can. The how many characters guide covers the capacity numbers in depth, and the qr error correction guide explains how raising the level trades even more capacity for resilience.
The encoding modes that set capacity
A QR code stores characters in one of four encoding modes, and the mode determines how many characters fit. Numeric mode packs about 3.3 bits per digit and holds the most (up to 7,089 digits). Alphanumeric mode covers 0–9, A–Z, and a few symbols at about 5.5 bits per character (up to 4,296). Byte mode stores one byte per character — the mode used for URLs and most real-world text — and holds up to 2,953 characters. Kanji mode packs Japanese characters at about 13 bits each and holds up to 1,817.
The encoder picks the tightest mode that fits the data, so a pure-number payload gets numeric mode and a long URL gets byte mode. The practical takeaway: numeric-only payloads (a phone number, a numeric code) scan at smaller sizes than the same length of URL text, because numeric mode is more efficient. The qr types guide groups the content types, and the how does a QR code work guide covers the modes in the full encode pipeline.
How to choose the right content type
Pick the type by the action you want the scanner to take, not by the data you happen to have. If the goal is “go to this page”, use a URL. If the goal is “get on my network”, use WiFi. If the goal is “save my details”, use a vCard. If the goal is “text this number”, use SMS; “email this address”, use email; “save this date”, use an event. Plain text is the fallback when no recognized action fits — a serial number, a short instruction, a code the reader copies manually.
Two rules of thumb help. First, prefer the most specific type: a vCard is better than a plain-text dump of contact details because the phone turns it into a one-tap “add contact” instead of a copy-paste chore. Second, keep the payload short whichever type you choose — a shorter string means a lower-version, less dense code that scans more reliably at small sizes. For the step-by-step generation flow that produces each type, see our how to make a QR code guide, and for the actions each type unlocks, see what a QR code can do.
Frequently asked questions
What can a QR code store?
A QR code stores a string of text — up to about 7,089 digits, 4,296 alphanumeric characters, or 2,953 bytes. Phones recognize standard text formats (URL, WiFi:, BEGIN:VCARD, SMSTO:, mailto:, VEVENT) and turn the text into a one-tap action like opening a link or joining a network.
What are the QR code content types?
The seven practical types are URL, plain text, WiFi, vCard (contact), SMS, email, and calendar event. Each stores a different kind of data and triggers a different scan action — opening a page, showing text, joining a network, adding a contact, starting a text, drafting an email, or adding a calendar entry.
How much data can a QR code hold?
At most about 2,953 bytes of text, 4,296 alphanumeric characters, or 7,089 digits in a version-40 code at error-correction level L. Real-world payloads are usually far shorter — keep them short so the code stays low-version and scans reliably at small sizes.
Which QR content type should I use?
Choose by the action you want: URL to open a page, WiFi to join a network, vCard to share contact details, SMS to start a text, email to draft a message, event to add a date, and plain text as the fallback when no recognized action fits. Prefer the most specific type so the phone turns the scan into one tap.