Skip to main content


  • How much does it cost to send and receive MMS messages?

    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.

  • Is MMS supported by all carriers in the US and Canada?

    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

  • What types of multimedia content does Plivo accept?

    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.

    Supported MIME types

    Plivo supports these types of content in the media_urls argument of the Message object.      

    Supported Inbound types:

    Supported Outbound types:


    Supported upload types:


  • What are the size limitations for sending messages with text and images?

    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.

  • What are the MMS upload size limits and file restrictions?

    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.

  • How can I upload media to an MMS message?

    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.

  • How do I retrieve image files from MMS messages?

    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.

  • How can I retrieve Plivo MMS media files?

    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.

  • What do the different MMS delivery statuses mean?

    There are three main stakeholders in the MMS flow:

    • Customer — responsible for sending messages
    • Plivo — responsible for processing and forwarding the messages to the downstream carriers
    • Downstream carriers — responsible for delivering the messages to recipients

    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. 




    The message was received by Plivo and will be sent to downstream carriers.


    The message was successfully sent to the downstream carriers.


    The message could not be sent.


    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.


    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.


  • How does Plivo manage delivery order of multiple media files via one MMS message?

    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.

  • What MMS content types does Plivo support?

    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.

  • Will Plivo automatically resize my images for MMS messaging?

    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.

  • Storing Sent and Received Images with Plivo

    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.

  • Does Plivo do anything with the metadata associated with digital pictures?

    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.

  • What file types does the Plivo SMS API support for MMS media messages?

    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.

    Supported file types

    Plivo supports the following file formats for media_urls attachments:

    • JPEG
    • PNG
    • GIF

    Plivo also accepts several additional file formats as media_urls attachments but does not format them for compatibility with the destination device. For a comprehensive list of supported media formats, please refer to our documentation.

    File size limitations

    For multimedia attachments, the file size limit for media_urls attachments depends on the receiving carrier.

    File Size Guidelines for Top Four US-Based Carriers:


    Long Code


    Short Code


    MMS attachment size

    MMS attachment size

    MMS attachment size


















    For other carriers within the US, we recommend using attachments no larger than 600KB when sending files that are not JPEG, PNG, or GIF images.

    File Size Guidelines for Canadian Carriers:
    In Canada, carriers recommend using MMS attachments smaller than 1MB across all networks. This guideline helps ensure broad compatibility and optimal delivery of multimedia messages across various mobile networks in Canada.

    How many attachments does Plivo support?

    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.

        "api_id": "48f21f48-6c59-11eb-a4b3-0242ac110005",
        "error": "exceeded maximum number of media allowed (10)"


    If your MMS exceeds the file size limit, Plivo will fail the message with a Plivo error code of 120.

    Incoming MMS messages

    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.

  • What happens to MMS messages that are sent from unsupported phone numbers?

    Attempting to send an MMS message from non-MMS-enabled numbers will fail at the API level and return an HTTP 400 error response.

  • What happens to MMS messages that are sent to unsupported destinations?

    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.

  • Sending and Receiving MMS Messages

    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. 

    Supported media types for MMS

    MMS-enabled Plivo phone numbers support common image file types PNG, JPEG, and GIF and dozens of other image, audio, and video formats.

    Sending MMS messages

    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.

    Receiving MMS messages

    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.

  • Plivo MMS Account Rate Limits

    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.

    • Long code phone number: A rate limit on each Plivo long code phone number keeps you compliant with carrier regulations and reduces the risk of messages getting rejected by carriers.
    • Plivo account ID: A rate limit on each unique Plivo account or subaccount protects our network performance and helps to ensure fair service across all customers.
  • MMS in Powerpack

    Sending MMS vs. SMS in Powerpack API

    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.

    MMS number addition in Powerpack

    Long code number 

    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.

    Toll-free number 

    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.

    Sending MMS using Powerpack

    Example from Postman:


    CURL request snippet:

    curl --location --request POST '{{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"


    What if my Powerpack doesn't have any MMS numbers?

    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

    What happens when the default Powerpack is enabled and I try sending MMS with an SMS number from Powerpack?

    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.

    What happens if I give an invalid Powerpack UUID while sending MMS messages?

    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