Plivo charges $0.0080 for inbound and $0.0160 for outbound MMS messages.
Discounts may apply to messages sent at higher volumes. Contact our sales team for higher volume enrollment.
Plivo charges $0.0080 for inbound and $0.0160 for outbound MMS messages.
Discounts may apply to messages sent at higher volumes. Contact our sales team for higher volume enrollment.
Plivo supports sending MMS messages from US and Canadian local long code numbers to these mobile carriers in the US and Canada.
Major carriers: AT&T, Verizon, T-Mobile, Rogers, Bell, Fido, Telus, Wind Canada
Minor carriers: 365 Wireless, Alaska Communication System (ACS), Advantage Wireless, Alltel Wireless, Bluegrass Cellular, Boost Mobile, Carolina West Wireless, Cellcom, Cellular South, Clear Talk Wireless, Commnet Wireless, Copper Valley Telecom, CTC Telecom, GCI Wireless, Google Voice, Illinois Valley Cellular, Inland Cellular, James Valley Communications, Leaco, Metro by T-Mobile, MTA Communications, NewCore Wireless, Nex-Tech Wireless, Panhandle Communications, Peoples Wireless, Pine Cellular, Pinpoint Communications, Southern Linc, SRT Communications, Standing Rock Telecom, Thumb Cellular, Simmetry (TMP Corporation), United Wireless
Media URLs are fetched via the content-type header request that’s part of each URL. If the content-type header doesn't match the type of the media, Plivo will reject the request. Media URLs that do not return a content-type and content-length response header will also be rejected.
The total message size must be under 5MB. An API request with media or a collection of media larger than 5MB will fail with an error.
Plivo supports these types of content in the media_urls argument of the Message object.
Supported Inbound types:
image/jpeg
image/gif
image/png
image/bmp
image/tiff
image/webp
image/x-icon
audio/wav
audio/wave
audio/x-wav
audio/vnd.wave
audio/midi
audio/mid
audio/x-mid
audio/x-midi
audio/sp-midi
audio/amr
audio/amr-nb
audio/amr-wb
audio/mpeg
audio/mp3
audio/3gpp
audio/3gpp2
audio/aac
audio/mp4
audio/ogg
audio/basic
audio/qcelp
audio/flac
audio/webm
video/3gpp
video/3gp
video/3g2
video/3gpp2
video/mpeg
video/mp4
video/avi
video/x-msvideo
video/quicktime
video/webm
video/ogg
video/x-flv
video/x-ms-asf
video/asf
video/x-ms-wmv
text/plain
text/vcard
text/x-vcard
text/calendar
text/csv
text/rtf
text/html
text/xml
application/zip
application/x-tar
application/gzip
Supported Outbound types:
image/jpeg
image/gif
image/png
image/bmp
audio/mp4
audio/wav
audio/mpeg
audio/amr
video/3gpp
video/3gpp2
video/mp4
text/vcard
text/calendar
text/csv
text/x-vcard
application/pdf
application/vnd.ms-excel
Supported upload types:
"image/jpeg"
"image/png"
"image/gif"
"text/plain"
"application/pdf"
"video/mpeg"
"video/mp4"
A message that consists of both text and pictures can transmit up to 10 images and 1,600 characters, as long as the entire message is under 5MB. 1,600 characters translate to 4.8KB, which accounts for roughly 1% of the message size limit with UTF-8 encoding.
You can upload your media through the Plivo console or via the SMS API.
Plivo supports up to 10 media_urls attachments, as long as the total size of the message body text and all attachments is less than 5MB. An MMS message body can be up to 1,600 characters, which equals 4.8KB or roughly 1% of the total size limit.
If your message (including body text and media) is larger than 5MB, your message will fail with a Plivo error code of 120.
You can upload media through our console by visiting Messaging > MMS Media Upload. Alternatively, you can upload media through our Messaging API. See our MMS Getting Started guide.
Plivo also supports hosting media in any simple storage service and sending MMS via the hosted URL.
Media uploaded and sent to customers through MMS is saved in our system for one year. Unused media (media that has been uploaded but not used) is deleted every six hours.
When Plivo receives an MMS message on your Plivo number, we make an HTTP request to the message request URL configured for that number. In addition to the regular SMS parameters, we also send the "Type" and "Media" parameters. Since there can be up to 10 images in one MMS message, the "Media" parameter is structured as "Media0," "Media1," "Media2," and so on.
In all of Plivo’s Server SDKs we have included easy steps to list media files. If you prefer to design applications without the use of SDKs, you can retrieve the media using our SMS REST API.
There are three main stakeholders in the MMS flow:
The delivery status for a sent MMS message is visible within the message detail record or callback response. Delivery status can change depending on the updates that Plivo gets from downstream carriers. This table shows the different statuses and what each one means.
Status |
Meaning |
queued |
The message was received by Plivo and will be sent to downstream carriers. |
sent |
The message was successfully sent to the downstream carriers. |
failed |
The message could not be sent. |
delivered |
The message was delivered, to the best of Plivo’s knowledge. Messages are marked delivered by Plivo when we receive a delivery confirmation from downstream carriers. In cases where Plivo doesn't get a delivery confirmation from downstream carriers, messages remain in sent status. |
undelivered |
The message was not delivered. |
If you see failed or undelivered messages, you can check the error code in the delivery report for more information.
When sending multiple media files in an MMS message, the media files will arrive in a single message, but Plivo cannot guarantee the order in which the media files will be received.
Plivo supports sending MMS messages that contain JPEG, PNG, and GIF images, as well as a number of other image, video, and audio types. However, depending on capabilities of the recipient's carrier and device, these messages may not be successfully received. You can review the full list of accepted content types for media that Plivo accepts. Content in files of other types will not be sent successfully.
No, Plivo doesn't support resizing. The total combined message size (for both message text and attachments) must be under 5MB. An API request with combined images larger than 5MB will fail with a Plivo error code of 120. We recommend that images be no larger than 600KB.
Multimedia files that are sent or received with Plivo long codes are stored in your account. Plivo uses a media resource cache to store media files for up to a year. Each file gets a unique, publicly-accessible URL. You may request the one-year storage policy be extended. Extension requests are considered on a case-by-case basis.
For more information on media storage resources, see our MMS documentation.
Digital pictures that were taken with a smartphone often have metadata (such as the date, time, and location) associated with each image. When these images are sent in MMS messages, the metadata is usually stripped from the picture by the sending carrier.
If the metadata is passed to Plivo by the sending carrier, we will preserve the information and pass it along to the intended recipient. Plivo does not modify or manipulate any metadata associated with pictures. If users need to modify or remove metadata from incoming images, they must use a third-party service to do so.
The Plivo SMS API supports sending picture messages (a.k.a. MMS or multimedia messages) by adding a media_urls or media_id parameter to your API request and setting the type parameter to MMS.
Plivo supports media_urls attachments with the following image file formats:
Plivo accepts several additional file formats as media_urls attachments but does not format them for destination device compatibility. See our documentation for a full list of supported media formats.
For multimedia attachments, the file size limit for media_urls attachments depends on the receiving carrier. Here are the attachment size limitations for the top four US-based carriers:
Carrier |
Long Code |
Toll-Free |
Short Code |
Operators |
MMS attachment size |
MMS attachment size |
MMS attachment size |
AT&T |
0.675MB |
0.750MB |
0.600MB |
Sprint |
1.400MB |
0.750MB |
1.400MB |
T-Mobile |
1.500MB |
0.750MB |
1.000MB |
Verizon |
0.675MB |
0.750MB |
1.200MB |
For other carriers, we recommend using attachments no larger than 600KB when sending files that are not JPEG, PNG, or GIF images.
Plivo supports up to 10 attachments (with a combination of media_urls and media_ids) with a maximum of 2MB per attachment, as long as the total size of the message body text and all attachments is less than 5MB. An MMS message body can be up to 1,600 characters long, which equals 4.8KB or roughly 1% of the total size limit.
If your message (including body text and media) is larger than 5MB, your message request will fail with Plivo error code 120.
If you have more than 10 attachments, Plivo will fail your message request with an HTTP status code of 400.
{ |
If your MMS exceeds the file size limit, Plivo will fail the message with a Plivo error code of 120.
Plivo supports up to 10 incoming media attachments, as long as the total size of the message body text and all attachments is less than 7MB. If the total size exceeds this limit, Plivo will not process the message.
Attempting to send an MMS message from non-MMS-enabled numbers will fail at the API level and return an HTTP 400 error response.
Unsupported destinations are destination phone numbers in a country that doesn't support MMS, or a phone number or handset that doesn't support MMS. Requests to send MMS messages to unsupported destinations return an HTTP 400 error response.
You can send and receive MMS messages in the US and Canada by using an MMS-enabled Plivo phone number. Plivo offers MMS-enabled long code phone numbers only in the US and Canada.
MMS-enabled Plivo phone numbers support common image file types PNG, JPEG, and GIF and dozens of other image, audio, and video formats.
Plivo supports sending MMS messages only within the US and Canada. International MMS messaging outside these two countries is not yet supported.
Sending MMS messages is as easy as sending regular text messages. All you need to do is make an HTTP POST request to a message's resource URI and specify an image URL in the media_urls parameter.
You can specify multiple media_urls parameters if you wish to include multiple images in one message. Check out our API documentation for code examples.
If you own an MMS-enabled phone number, your phone number is capable of receiving MMS messages from US and Canada long code phone numbers. Make sure your number is configured to receive messages.
Plivo phone numbers cannot receive messages from short code numbers.
You can send MMS message requests to Plivo at a rapid rate, as long as you don't surpass Plivo’s default API concurrency limit of 100 simultaneous requests. However, there are limits to how quickly Plivo can send messages to carrier networks.
Plivo has two types of rate limits for sending MMS messages: at the long code phone number level and at the account ID level.
The procedure to send MMS messages using Powerpack is similar to the procedure for sending SMS messages, with a few minor changes. To send an MMS message using Powerpack, replace the src parameter in the JSON body with powerpack_uuid and provide the Powerpack UUID to be used to send out the messages.
The Powerpack must have at least one MMS long code or toll-free number associated with it in order to send an MMS using Powerpack.
For Powerpack to identify your long code number as able to send MMS messages, you must add the number as a MMS number by using the command “argument service = mms”. Refer to the Plivo API Reference Doc for more detail.
Some toll-free numbers are capable of sending both MMS and SMS messages. Our system automatically identifies that number type when you add it to Powerpack and will utilize the toll-free number for both MMS and SMS numbers. If the toll-free number is capable of sending only SMS, then the Powerpack will utilize the number only for SMS messages, and not for MMS messages.
curl --location --request POST 'https://api.plivo.com/v1/Account/{{Auth_ID}}/Message/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic xxxxxxxxxxxxxx==' \
--data-raw '{
"powerpack_uuid": "{{powerpack_uuid}}",
"dst": "{{destination_number}}",
"text": "This is a Sample MMS using Powerpack",
"media_urls": ["{{media_url_1}}", "{{media_url_2}}", "{{media_url_3}}"],
"media_ids": "["{{media_id_1}}", "{{media_idl_2}}"]",
"url": "{{callback_url}}",
"type": "mms",
"log": "true"
}'
To send out MMS messages using Powerpack, you must have at least one MMS number in the Powerpack. If the given Powerpack doesn't have any MMS numbers, it will fail to find a source number in the number pool, which will cause your MMS send to fail.
If sending an MMS message fails at the API level, you'll receive the following error: Your message could not be queued at this time. If the problem persists, please contact support@plivo.com.
If your Powerpack has an MMS number, it will be identified and used to send out the message. If the given source number doesn't have MMS capability, sending the MMS message will fail.
If you give an invalid Powerpack UUID, then sending MMS will fail at the API level, with the following error: Your message could not be queued at this time. If the problem persists, please contact support@plivo.com.