Skip to main content
This guide covers MMS messaging, supported media types, size limits, and delivery.

Overview

MMS (Multimedia Messaging Service) allows sending images, videos, and audio in addition to text. Availability: US and Canada only

Supported Carriers

Major Carriers

  • AT&T, Verizon, T-Mobile (US)
  • Rogers, Bell, Fido, Telus, Wind Canada

Minor Carriers

365 Wireless, Alaska Communication System (ACS), Alltel Wireless, Bluegrass Cellular, Boost Mobile, and others.

Pricing

DirectionCost per Message
Outbound$0.0160
Inbound$0.0080
Volume discounts available—contact Plivo Sales.

Media Requirements

Supported File Types

CategoryFormats
ImageJPEG, PNG, GIF
VideoMP4, 3GP, MOV
AudioMP3, WAV, AMR
See full list of accepted content types.

Size Limits

LimitValue
Total message size5 MB
Maximum attachments10 files
Text content1,600 characters (~4.8 KB)
Recommended image size< 600 KB
Note: Plivo does not resize images. Messages exceeding 5 MB fail with error code 120.

Content-Type Headers

Media URLs must return valid Content-Type and Content-Length headers. URLs without these headers are rejected.

Send MMS

Via API

curl -X POST "https://api.plivo.com/v1/Account/{auth_id}/Message/" \
  -u "{auth_id}:{auth_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "src": "14151234567",
    "dst": "14157654321",
    "type": "mms",
    "text": "Check out this image!",
    "media_urls": ["https://example.com/image.jpg"]
  }'

Via Powerpack

Replace src with powerpack_uuid:
{
  "powerpack_uuid": "your-powerpack-uuid",
  "dst": "14157654321",
  "type": "mms",
  "media_urls": ["https://example.com/image.jpg"]
}

Multiple Media Files

Send up to 10 files in one message:
{
  "media_urls": [
    "https://example.com/image1.jpg",
    "https://example.com/image2.jpg",
    "https://example.com/image3.jpg"
  ]
}
Note: Media file order is not guaranteed at delivery.

Upload Media

Via Console

  1. Navigate to Messaging > MMS Media Upload
  2. Upload files
  3. Use returned media_id in API requests

Via API

Use the Media API to upload and manage files.

Hosted Media

Host media on any cloud storage (S3, GCS, etc.) and provide the URL in media_urls.

Media Storage

FeatureDetails
Storage durationUp to 1 year
URL typePublicly accessible
ExtensionCase-by-case basis
Media files sent or received are stored in your account with unique URLs.

Receive MMS

Configure Message URL

  1. Set message_url on your Plivo application
  2. Assign MMS-enabled number to application
  3. Plivo POSTs inbound MMS to your URL

Inbound Parameters

In addition to standard SMS parameters:
ParameterDescription
Type”mms” for multimedia messages
Media0, Media1, …URLs of attached media files

Retrieve Media Files

Via SDK: Use the list media method Via API: Use the Media API

Delivery Statuses

StatusMeaning
queuedMessage accepted, waiting to send
sentSent to carrier
deliveredConfirmed delivery to recipient
undeliveredFailed to deliver
failedError occurred
View status in Message Detail Records or via delivery callbacks.

MMS on Toll-Free Numbers

Toll-free numbers support MMS in the US and Canada. Features:
  • Videos up to 40 seconds
  • Audio files
  • Animated GIFs
  • Images and slideshows
  • Automatic message queuing

Rate Limits

Account Level

LimitValue
Default MMS MPS0.25
API concurrency100 simultaneous requests

Per Number

Long code numbers have individual throughput limits.

Error Handling

Common Errors

ErrorCauseSolution
HTTP 400Unsupported numberUse MMS-enabled number
HTTP 400Unsupported destinationVerify recipient supports MMS
Error 120File too largeReduce total size under 5 MB

Unsupported Destinations

MMS to countries or devices without MMS support returns HTTP 400 error.

Image Metadata

  • Metadata (date, time, location) is usually stripped by sending carrier
  • If carrier preserves metadata, Plivo passes it through
  • No modification of received metadata