> ## Documentation Index
> Fetch the complete documentation index at: https://plivo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Send MMS Messages

> Send outbound MMS messages with images, audio, or video via Plivo

## Overview

This guide shows how to send an MMS message to any phone number. Businesses can make messages more meaningful by using MMS instead of SMS and including images, audio, and video to provide context.

You can start sending MMS messages either by using our PHLO visual workflow builder or our APIs. Follow the instructions in one of the tabs below.

<Tabs>
  <Tab title="Using API">
    Here’s how to use Plivo APIs to send outbound MMS text messages.

    <h2 id="api-how-it-works"> How it works</h2>

    <Frame>
      <img src="https://mintcdn.com/plivo/sqGJ0ONkT5kTuesy/images/send-mms-api.jpg?fit=max&auto=format&n=sqGJ0ONkT5kTuesy&q=85&s=131a37c06b410305b28cbd385646e164" alt="Send MMS" width="1446" height="774" data-path="images/send-mms-api.jpg" />
    </Frame>

    <h2 id="api-prerequisites">Prerequisites</h2>

    To get started, you need a Plivo account —  [sign up](https://cx.plivo.com/signup) with your work email address if you don’t have one already. If this is your first time using Plivo APIs, follow our instructions to [set up a Java development environment](/sdk/server/php-sdk/).

    <h2 id="api-create-the-send-sms-application">Create the send MMS application</h2>

    Once you have the above prerequisites set, You can follow the below instructions to create an app to send an outbound MMS to deliver your message.

    Create a Java class called `SendMMS` and paste into it this code.

    ```java theme={null}
    package com.plivo.api;
    import java.io.IOException;
    import com.plivo.api.exceptions.PlivoRestException;
    import com.plivo.api.models.media.Media;

    public class SendMMS {
        public static void main(String[] args) {
          Plivo.init("<auth_id>", "<auth_token>");
            MessageCreateResponse response = Message.creator("<sender_id>",Collections.singletonList("<destination_number>"),
              "Hello, from Java!").type(MessageType.MMS)
              .media_urls(new String[]{"https://media.giphy.com/media/26gscSULUcfKU7dHq/source.gif"})
              .media_ids(new String[]{"801c2056-33ab-499c-80ef-58b574a462a2"})
              .create();
            System.out.println(response);
          }
       }
    }
    ```

    Replace the auth placeholders with your authentication credentials from the [Plivo console](https://cx.plivo.com/home). Replace the phone number placeholders with actual phone numbers in [E.164 format](https://en.wikipedia.org/wiki/E.164) (for example, +12025551234). In countries other than the US and Canada you can use a [sender ID](/messaging/concepts/sender-id-usage/) for the message source. You must have a Plivo phone number to send messages to the US or Canada; you can buy a Plivo number from Phone Numbers > [Buy Numbers](https://cx.plivo.com/phone-numbers) on the Plivo console or via the [Numbers API](/numbers/api/phone-number/#buy-a-phone-number).

    <Note>
      <strong>Note:</strong>
      We recommend that you store your credentials in the `auth_id` and `auth_token` environment variables to avoid the possibility of accidentally committing them to source control. If you do this, you can initialize the client with no arguments and Plivo will automatically fetch the values from the environment variables. You can use <a href="https://docs.oracle.com/javase/tutorial/essential/environment/env.html">`System.getenv()`</a> to store and retrieve environment variables when initializing the client.
    </Note>

    <h2 id="api-test">Test</h2>
  </Tab>
</Tabs>
