Free tool · PNG and SVG · Runs in your browser
Text message QR code generator
Short answer
Enter a phone number with its country code and an optional message, and the tool writes an sms: link into the code. The ZXing wiki says readers should open a new text message ready to send. A number alone is Version 1 (21 × 21); with a 100 character message it is Version 7 (45 × 45). Whether the message is pre-filled depends on the phone's scanner, so test it on the phones you care about. Nothing is uploaded.
Enter the phone number with its country code.
Nothing is uploaded: the code is drawn in your browser. Codes do not expire and carry no tracking.
Key takeaways
- The ZXing wiki says to encode a number or short code as an sms: URI, for example sms:12345, and points to RFC 5724. It notes that SMSTO: links have been seen in use but it does not know an official specification for them.
- The tool writes sms:<number>?body=<message>. For +1 415 555 0132 and the message "Running late, see you soon" that is sms:+14155550132?body=Running%20late%2C%20see%20you%20soon (58 characters, Version 4 (33 × 33)).
- Size grows with the message: no message is Version 1 (21 × 21), 40 characters Version 4 (33 × 33), 100 characters Version 7 (45 × 45) and 400 characters Version 16 (81 × 81).
- For a code that only dials, a tel: link is smaller: tel:+14155550132 is 16 characters and Version 1 (21 × 21).
- We cannot promise every phone pre-fills the message. The format is standard; support varies. Test first.
What the code contains
A text message code is an sms: link. A message is added as a body parameter and percent-encoded, so a space is written as %20.
| Link | What it does |
|---|---|
| sms:12345 | Opens a new text message to 12345 (ZXing wiki, RFC 5724) |
| sms:+14155550132 | A number with its country code |
| sms:+14155550132?body=Hello%20there | The same, with a message ready |
| SMSTO:number:message | Seen in use, no official specification found by the ZXing wiki |
Text message links, from the ZXing wiki read 2026-10-09 and the tool.
Measured: how big the code gets
Measured with the qrcode library the tool uses and the jsQR decoder; the method is on the QR code generator page. One decoder is not every phone, so test a print on yours.
The number is +1 415 555 0132 and the message is a run of letters of the length shown.
| Message | Link length | Size |
|---|---|---|
| No message | 16 | Version 1 (21 × 21) |
| 40 characters | 62 | Version 4 (33 × 33) |
| 100 characters | 122 | Version 7 (45 × 45) |
| 200 characters | 222 | Version 11 (61 × 61) |
| 400 characters | 422 | Version 16 (81 × 81) |
The example with a message decoded back to exactly the text we built.
Tips
- Write the number with its country code.
- Keep the message to a line. Each character makes the code denser.
- Test the code on both an iPhone and an Android phone before you print it.
- A code that only needs to start a call is smaller with a tel: link; the generator has a phone number option for that.
Free tools:QR code generatorWi-Fi QR codeContact (vCard) QR codeWhatsApp QR codeEmail QR codeLocation QR code
Questions people ask
How do I make a QR code that sends a text?
Enter the number and an optional message, then download the code. Scanning it opens a new text message.
Will the message be pre-filled on every phone?
The format is standard, but support varies by phone and scanner. Test on the phones you care about.
What is the difference between sms: and SMSTO:?
The ZXing wiki points to RFC 5724 for sms: and says it has seen SMSTO: in use without finding an official specification.
How do I make a code that calls a number?
Use the phone number option. It writes a tel: link, 16 characters for our example.
Why is my code dense?
A long message adds many characters: 400 characters made a 81 × 81 code.
Is my number uploaded?
No. The code is drawn in your browser.
Related
Sources and how we checked
- ZXing wiki: Barcode Contents (read 2026-10-09)
- Denso Wave: Information capacity and versions of the QR Code (read 2026-10-09)
- Denso Wave: Error correction feature (read 2026-10-09)
Reviewed October 9, 2026. The measurements generated codes with the same library the tool uses and read them back with an independent decoder (jsQR). The script and the results are in data/seo/hub/evidence/2026-10-09/qr.