SMS vs MMS compared for developers: character limits, media types, cost, when to send each and how to send both with one Telnyx API.

Takeaways
SMS vs MMS comes down to what the message carries: SMS (Short Message Service) is text only, 160 characters per segment in GSM-7, the standard 7-bit mobile alphabet, sent over the cellular signaling channel. MMS (Multimedia Messaging Service) adds media (images, video, audio, GIFs) and about 1,600 characters, uploads over mobile data and typically bills at 2 to 3 times an SMS. With Telnyx you send both from one API that splits long text and picks the encoding for you, so you choose the type per message and never hand-split a string or resize an image.
The SMS vs MMS choice decides what your app has to do before the carrier takes the message, and it starts with what each type carries and which path it takes to the phone.

The 160-character limit on an SMS holds only while every character is in the GSM-7 alphabet. One emoji, one curly quote or one accented letter switches the whole message to UCS-2, a 16-bit Unicode encoding, and the limit drops to 70. Past the limit, your text is split into segments of 153 characters (67 in UCS-2), because part of each segment carries the header the handset uses to stitch them back together, and each segment is billed as its own message. The signaling channel it rides is the same path the network uses to set up a call, which is why an SMS reaches a phone that has mobile data switched off. When you send through the Telnyx Messaging API, it chooses the most compact encoding your characters allow and concatenates a long message for you, so you pass one string and the splitting happens before the carrier sees it. The same behaviour applies whether you call the API directly or route through an SMS gateway.
MMS is Multimedia Messaging Service, an extension of SMS that carries about 1,600 characters of text plus attached files. An MMS attachment is one of these file types on most US carriers:
A URL in the body is text and does not make the message MMS. The link is just characters, and the recipient's phone turns it into a preview on its own. Many carriers cap attached media around 5 MB, and the exact limit varies by carrier and by file type. The media does not ride the signaling channel: your file is uploaded to a carrier media server over mobile data, and the recipient's handset downloads it from that server over data, which is why a picture message stalls when data is off and why an image can arrive recompressed. Telnyx runs MMS transcoding on outbound media so a file that exceeds the destination carrier's limits is converted before handoff instead of being dropped.
MMS is a superset of SMS on a different delivery path at a higher price, and the nine rows below are the ones that change what your app has to do.
SMS vs MMS at a glance
| Attribute | SMS | MMS |
|---|---|---|
| What it carries | Text only | Text plus images, video, audio, GIFs, vCards |
| Character limit | 160 GSM-7 or 70 UCS-2 per segment | About 1,600 |
| Network path | Cellular signaling channel | Carrier media server over mobile data |
| Sends with data off | Yes | No |
| File size cap | None, no files | Around 5 MB, carrier dependent |
| Read receipts | No | No |
| Encryption in transit | None | None |
| Reaches every phone | Yes | Most, plan and country dependent |
| Relative cost | Base rate | 2 to 3 times SMS |
An MMS moves your file onto a carrier media server and off it again over mobile data, and the carrier prices that extra transit into the message, which is why MMS commonly lists at 2 to 3 times the SMS rate at the same provider. The text portion is also larger, about 1,600 characters against 160, but the media path is what sets the price. The base you compare against on Telnyx is published: SMS starts at $0.004 per message, with automatic volume discounts, and customers typically save 30% compared with other CPaaS (communications platform as a service) providers.
Sender type is the second factor in both price and throughput. A 10DLC (10-digit long code) local number, a toll-free number and a short code are all SMS-capable phone numbers that carry their own per-message rate, carrier fees and messages-per-second limit, for SMS and for MMS alike, and the right one depends on your volume and whether you need two-way replies. The SMS number traffic types article walks through which sender fits which use case.

Both. "Text message" is the umbrella word for SMS and MMS, so the question is which one a given message turned into. The same holds for the Telnyx Messaging API: the fields you pass decide which network path the message takes.
You write a message, and your phone checks two things before it sends.
On Android, Google Messages shows the type in the compose field and on the send button before you tap it. If the recipient is another Android with RCS turned on at both ends, the message goes as an RCS chat over data. Otherwise plain text goes as SMS, and anything with a photo, a video or more than one recipient goes as MMS. Group texts without RCS are group MMS, so they fail on a phone with data switched off while a one-to-one text to the same person arrives.
Green covers three different carrier paths, so the colour alone does not tell you whether a message went as SMS, MMS or RCS. The empty compose field does, before you type:
'Sent as SMS' under a message means the recipient is not on iMessage or has no data connection, and the phone fell back to carrier SMS or MMS. iPhones now support RCS, Apple says, so some green chats carry typing indicators and larger media. Your API message always lands as SMS, MMS or RCS, never as iMessage, so a green bubble is the expected result.
Your choice for a given message follows from the table above: send SMS when your text has to reach every handset at the lowest rate, send MMS when the picture is the point, and treat long text as a cost calculation rather than a reason to switch.
SMS or MMS for this message?
SMS is the right type when delivery matters more than presentation:
MMS earns its higher rate when the image does work that text cannot:
The break-even is arithmetic. First count your segments: a GSM-7 message bills in segments of 153 characters past the first 160, and a UCS-2 message bills in segments of 67 past the first 70. Each segment is one billed SMS. An MMS is one billed message at the higher MMS rate. So a 450-character GSM-7 text is 3 segments, and the comparison is 3 times your SMS rate against 1 times your MMS rate at your provider.
The missing piece in most comparisons is that splitting is not a delivery problem. With Telnyx, concatenation is automatic: you pass the full string, the API separates it into correctly ordered segments, and the recipient's phone reassembles them into one message. Your customer sees one text either way, so "it would split" is not by itself a reason to pay MMS rates. The only reason to switch is price, and only when the segment count times your SMS rate exceeds your MMS rate.
The fallback rule runs the other way. When the destination cannot take MMS, which covers landlines (a number lookup shows the line type before you send), some prepaid plans and most destinations outside the US and Canada, put a link to the media in an SMS instead. The customer gets the image through the link, the message arrives on the signaling channel, and you pay the SMS rate.
The Telnyx Messaging API sends and receives SMS and MMS globally through one endpoint, over 10DLC, toll-free, short code and alphanumeric sender ID, with SMS-capable phone numbers in 130+ countries and 1.3B+ messages sent and received monthly. You call it through REST or SDKs in 5 languages, and the documented request is a POST to /v2/messages with from, to and text. If you are moving off another provider and want to keep the number your customers already know, Hosted SMS lets you send and receive SMS and MMS from that existing number without changing providers. Registration for a US local number follows the carriers' 10DLC A2P (application-to-person) messaging rules, and it covers SMS and MMS on the same campaign. The send and receive MMS doc shows the media fields the API accepts and returns.

The example below is the inbound half of the two-way support case: a customer texts a photo of inventory items to your number, the message.received webhook arrives at your Flask route, the Telnyx Python SDK verifies the webhook signature, and the media URLs on the payload are passed to a model that returns the items as JSON. The full example, with its imports and configuration, lives in the telnyx-code-examples repository. The reply to the customer is a plain SMS sent with from, to and text, which is the same call you use for any text-only message.
The media list on the inbound payload is what makes this your MMS handler. A text-only message arrives at your route with the same event and an empty list, so one route serves both types and the branch on media is the only code you write differently.
Five things happen to your message between your API call and the carrier, and none of them is your code:
You decide per message whether it is SMS or MMS, pass text or text plus media to one call on one number, and the encoding, the splitting and the media conversion are done before the carrier sees it, at SMS rates from $0.004 per message.
Decide SMS or MMS per message and let the Telnyx Messaging API pick the encoding, split long text and transcode media before the carrier sees it, on the number you already own, at SMS rates from $0.004 per message.
Explore the Messaging API
Related articles
WhatsApp Business API for Restaurants
%20(1).png?width=96&format=webp)
What Is 10DLC? Registration, Costs and Compliance Explained

How to Text China

Edge inference: where to run AI models for low latency

Open Source vs Frontier Models: Which Should Your Agents Run On?

SIP response codes: a quick reference to every SIP code and error
